# Zoho Bug Tracker Integration via LowCodeAPI

## Overview

Bug tracking

## Base Endpoint

```
https://api.lowcodeapi.com/zohobugtracker/
```

## Authentication

LowCodeAPI handles authentication automatically. You only need to:

1. **Sign up** at [Zoho Bug Tracker](https://www.zoho.com/bugtracker)
2. **Get your credentials** from [credential page](https://accounts.zoho.com/developerconsole)
3. **Connect your account** in LowCodeAPI dashboard
4. **Use your `api_token`** in all requests

**Auth Type**: OAUTH2.0

## API Categories

- **Bugs** - 20 endpoints
- **Dashboard** - 3 endpoints
- **Documents and Folders** - 6 endpoints
- **Events** - 4 endpoints
- **Forums** - 16 endpoints
- **Milestones** - 6 endpoints
- **Portals ** - 1 endpoints
- **Projects** - 6 endpoints
- **Tags** - 6 endpoints
- **Timesheets** - 6 endpoints
- **Users** - 10 endpoints

## Common Endpoints

### Category: Bugs

#### All Bugs

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs?index={index}&range={range}&statustype={statustype}&cview_id={cview_id}&sort_column={sort_column}&sort_order={sort_order}&status={status}&severity={severity}&classification={classification}&module={module}&milestone={milestone}&flag={flag}&assignee={assignee}&assignee_zpuid={assignee_zpuid}&escalation={escalation}&reporter={reporter}&affected={affected}&last_modified_time={last_modified_time}&reverse_order={reverse_order}&time={time}&api_token={api_token}
```

**Description**: Gets all the bugs in the given project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`index` | number | No | Start index |
|`range` | number | No | Number of records (bugs) |
|`statustype` | string | No | Accepted values: open/closed |
|`cview_id` | number | No | Custom View ID |
|`sort_column` | string | No | Accepted values: created_time/last_modified_time/end_date |
|`sort_order` | string | No | Accepted Value: ascending/descending |
|`status` | array | No | Status IDs as comma separated array |
|`severity` | array | No | Severity IDs as comma separated array |
|`classification` | array | No | Classification IDs as comma separated array |
|`module` | array | No | Module IDs as comma separated array |
|`milestone` | array | No | Milestons IDs as comma separated array |
|`flag` | string | No | Accepted values: Internal/External |
|`assignee` | array | No | Specify ZUID of the assignee |
|`assignee_zpuid` | array | No | Specify ZPUID of the assignee |
|`escalation` | array | No | Escalation IDs as comma separated array |
|`reporter` | array | No | Reporter IDs as comma separated array |
|`affected` | array | No | Affected milestone IDs as comma separated array |
|`last_modified_time` | number | No | The time when the bug was last updated |
|`reverse_order` | boolean | No | Specify true if the bugs are to be displayed in reverse order, else false |
|`time` | array | No | Sort bugs by due date |

---

#### Bug Details

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/bug_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/bug_id?api_token={api_token}
```

**Description**: Gets the details of the bug

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`bug_id` | string | Yes | Bug ID |

---

#### Create a Bug

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs?api_token={api_token}
```

**Description**: Creates a bug

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Request Body**:
```json
{
  "title": "<string>"
}
```

---

#### Update a Bug

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/bug_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/bug_id?api_token={api_token}
```

**Description**: Updates the bug

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`bug_id` | string | Yes | Bug ID |

**Request Body**:
```json
{
  "key": "value"
}
```

---

#### Delete a Bug

**Method**: `DELETE` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/bug_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/bug_id?api_token={api_token}
```

**Description**: Deletes the bug

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`bug_id` | string | Yes | Bug ID |

---

#### Add Comment

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/bug_id/comments`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/bug_id/comments?api_token={api_token}
```

**Description**: Add comment to a bug

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`bug_id` | string | Yes | Bug ID |

**Request Body**:
```json
{
  "content": "<string>"
}
```

---

#### Get Comment

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/bug_id/comments`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/bug_id/comments?index={index}&range={range}&api_token={api_token}
```

**Description**: Fetch comments for the bug

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`bug_id` | string | Yes | Bug ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`index` | number | No | Start index |
|`range` | number | No | Range of bugs (Max limit 100) |

---

#### Get Comments for Mutiple Bugs

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/comments`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/comments?index={index}&range={range}&bug_ids={bug_ids}&api_token={api_token}
```

**Description**: Fetch comments for multiple bugs

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`index` | number | No | Start index |
|`range` | number | No | Range of comments (Max limit 50) |
|`bug_ids` | number | No | Bug IDs (Max limit is 25 bugs / request. Mandatory parameter) |

---

#### Delete Comment

**Method**: `DELETE` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/bug_id/comments/comment_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/bug_id/comments/comment_id?api_token={api_token}
```

**Description**: Delete a bug's comment

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`bug_id` | string | Yes | Bug ID |
|`comment_id` | string | Yes | Comment ID |

---

#### Get Bug Timer

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/bug_id/timer`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/bug_id/timer?api_token={api_token}
```

**Description**: Get timer details for a bug

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`bug_id` | string | Yes | Bug ID |

---

#### Get Bug Custom Views

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/customviews`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/customviews?index={index}&range={range}&api_token={api_token}
```

**Description**: Get customviews for bugs

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`index` | number | No | Starting index of the bug |
|`range` | number | No | Number of bugs |

---

#### Get Bug Attachments

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/bug_id/attachments`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/bug_id/attachments?api_token={api_token}
```

**Description**: Get details of attachments for a bug

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`bug_id` | string | Yes | Bug ID |

---

#### Get Bug Resolution

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/bug_id/resolution`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/bug_id/resolution?api_token={api_token}
```

**Description**: Get bug's resolution

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`bug_id` | string | Yes | Bug ID |

---

#### Add Bug Follower

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/bug_id/bugfollowers`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/bug_id/bugfollowers?api_token={api_token}
```

**Description**: Add follower to a bug

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`bug_id` | string | Yes | Bug ID |

**Request Body**:
```json
{
  "key": "value"
}
```

---

#### Get Bug Followers

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/bug_id/bugfollowers`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/bug_id/bugfollowers?api_token={api_token}
```

**Description**: Get list of followers for the bug

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`bug_id` | string | Yes | Bug ID |

---

*Note: Showing 15 of 20 endpoints in this category.*

---

### Category: Dashboard

#### Project Activities

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/activities`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/activities?index={index}&range={range}&api_token={api_token}
```

**Description**: List all the recent activities of the project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`index` | number | No | Index number of the project activity |
|`range` | number | No | Range of the project activities |

---

#### Project Status

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/statuses`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/statuses?index={index}&range={range}&api_token={api_token}
```

**Description**: Gets the statuses for the given project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`index` | number | No | Index number of the project status |
|`range` | number | No | Range of the project statuses |

---

#### Add Project Status

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/statuses`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/statuses?api_token={api_token}
```

**Description**: Adds a new status for the given project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Request Body**:
```json
{
  "content": "<string>"
}
```

---

### Category: Documents and Folders

#### All documents

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/documents`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/documents?index={index}&range={range}&folder_id={folder_id}&sort_column={sort_column}&sort_order={sort_order}&category={category}&action={action}&api_token={api_token}
```

**Description**: Gets all the documents in the given project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`index` | number | No | Index number of the document |
|`range` | number | No | Range of the documents |
|`folder_id` | number | No | ID of the project folder |
|`sort_column` | string | No | Sort based on date order, kind or name |
|`sort_order` | string | No | Specify the sorting order(ascending or descending) |
|`category` | string | No | Document category |
|`action` | string | No | Range of the documents |

---

#### Version details of the document

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/documents/document_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/documents/document_id?version={version}&api_token={api_token}
```

**Description**: Fetch the version details of the document

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`document_id` | string | Yes | Document ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`version` | string | No | Version of the document |

---

#### Add document

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/documents`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/documents?api_token={api_token}
```

**Description**: Add a document

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

---

#### Upload a document to the project

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/documents/document_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/documents/document_id?api_token={api_token}
```

**Description**: Uploads a document to the project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`document_id` | string | Yes | Document ID |

**Request Body**:
```json
{
  "uploaddoc": "<file>"
}
```

---

#### Delete document

**Method**: `DELETE` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/documents/document_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/documents/document_id?api_token={api_token}
```

**Description**: Deletes the document

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`document_id` | string | Yes | Document ID |

---

#### All folders

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/folders`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/folders?api_token={api_token}
```

**Description**: Returns all the folders from the project specified

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

---

### Category: Events

#### All Events

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/events`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/events?index={index}&range={range}&status={status}&api_token={api_token}
```

**Description**: Gets all the events in the given project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`index` | number | No | Index number of the event |
|`range` | number | No | Range of the events |
|`status` | string | Yes | Status of the event must be open or closed |

---

#### Add Event

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/events`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/events?api_token={api_token}
```

**Description**: Add event

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Request Body**:
```json
{
  "title": "<string>",
  "date": "<string >",
  "hour": "<string>",
  "minutes": "<string>",
  "ampm": "<string>",
  "duration_hour": "<string>",
  "duration_mins": "<string>",
  "participants": "<number>"
}
```

---

#### Update Event

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/events/event_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/events/event_id?api_token={api_token}
```

**Description**: Update event

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`event_id` | string | Yes | Event ID |

**Request Body**:
```json
{
  "title": "<string>",
  "date": "<string >",
  "hour": "<string>",
  "minutes": "<string>",
  "ampm": "<string>",
  "duration_hour": "<string>",
  "duration_mins": "<string>",
  "participants": "<number>"
}
```

---

#### Delete Event

**Method**: `DELETE` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/events/event_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/events/event_id?api_token={api_token}
```

**Description**: Delete event

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`event_id` | string | Yes | Event ID |

---

### Category: Forums

#### All Forums

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/forums`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/forums?index={index}&range={range}&category_id={category_id}&api_token={api_token}
```

**Description**: Gets all the forums in the given project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`index` | number | No | Index number of the forum |
|`range` | number | No | Range of the forums |
|`category_id` | number | No | ID of the project category |

---

#### Get Forum Details

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/forums/forum_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/forums/forum_id?api_token={api_token}
```

**Description**: Lists the forum details

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`forum_id` | string | Yes | Forum ID |

---

#### Add Forum

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/forums`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/forums?api_token={api_token}
```

**Description**: Adds the forum post

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Request Body**:
```json
{
  "name": "<string>",
  "content": "<string>",
  "category_id": "<number>"
}
```

---

#### Update Forum

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/forums/forum_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/forums/forum_id?api_token={api_token}
```

**Description**: Updates the forum post

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`forum_id` | string | Yes | Forum ID |

**Request Body**:
```json
{
  "name": "<string>",
  "content": "<string>",
  "category_id": "<number>"
}
```

---

#### Delete Forum

**Method**: `DELETE` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/forums/forum_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/forums/forum_id?api_token={api_token}
```

**Description**: Deletes the forum post

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`forum_id` | string | Yes | Forum ID |

---

#### Follow Forum

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/forums/forum_id/follow`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/forums/forum_id/follow?api_token={api_token}
```

**Description**: Follow a forum post

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`forum_id` | string | Yes | Forum ID |

---

#### Unfollow Forum

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/forums/forum_id/unfollow`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/forums/forum_id/unfollow?api_token={api_token}
```

**Description**: Unfollow a forum post

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`forum_id` | string | Yes | Forum ID |

---

#### All Forum Categories

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/categories`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/categories?api_token={api_token}
```

**Description**: Gets all the forum categories

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

---

#### Add Category

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/categories`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/categories?api_token={api_token}
```

**Description**: Adds the forum category

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Request Body**:
```json
{
  "name": "<string>"
}
```

---

#### All Forum Comments

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/forums/forum_id/comments`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/forums/forum_id/comments?index={index}&range={range}&api_token={api_token}
```

**Description**: Gets all the forum comments

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`forum_id` | string | Yes | Forum ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`index` | string | No | Index number of the forum comment |
|`range` | string | No | Range of the forum comments |

---

#### Add Forum Comment

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/forums/forum_id/comments`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/forums/forum_id/comments?api_token={api_token}
```

**Description**: Adds the forum comment

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`forum_id` | string | Yes | Forum ID |

**Request Body**:
```json
{
  "content": "<string>"
}
```

---

#### Update Forum Comment

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/forums/forum_id/comments/comment_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/forums/forum_id/comments/comment_id?api_token={api_token}
```

**Description**: Update a forum comment

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`forum_id` | string | Yes | Forum ID |
|`comment_id` | string | Yes | Comment ID |

**Request Body**:
```json
{
  "content": "<string>"
}
```

---

#### Select As Best Answer

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/forums/forum_id/comments/comment_id/markbestan`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/forums/forum_id/comments/comment_id/markbestan?api_token={api_token}
```

**Description**: Select a comment as best answer

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`forum_id` | string | Yes | Forum ID |
|`comment_id` | string | Yes | Comment ID |

---

#### Unselect As Best Answer

**Method**: `DELETE` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/forums/forum_id/comments/comment_id/markbesta`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/forums/forum_id/comments/comment_id/markbesta?api_token={api_token}
```

**Description**: Unselect a comment as best answer

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`forum_id` | string | Yes | Forum ID |
|`comment_id` | string | Yes | Comment ID |

---

#### Delete Forum Category

**Method**: `DELETE` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/categories/category_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/categories/category_id?api_token={api_token}
```

**Description**: Deletes a specific forum category

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`category_id` | string | Yes | Category ID |

---

*Note: Showing 15 of 16 endpoints in this category.*

---

### Category: Milestones

#### All Milestones

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/milestones`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/milestones?index={index}&range={range}&status={status}&display_type={display_type}&flag={flag}&owner={owner}&owner_zpuid={owner_zpuid}&api_token={api_token}
```

**Description**: Get all the milestones in the given project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`index` | number | No | Index number of the milestone |
|`range` | number | No | Range of the milestones |
|`status` | string | No | Status of the milestone must be all or completed or notcompleted |
|`display_type` | string | No | Milestone type must be all or upcoming or delayed |
|`flag` | string | No | Milestone flag must be allflag or internal or external |
|`owner` | string | No | Specify ZUID of the owner |
|`owner_zpuid` | number | No | Specify ZPUID of the owner |

---

#### Milestone Details

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/milestones/milestone_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/milestones/milestone_id?api_token={api_token}
```

**Description**: Get all the details of the milestone

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`milestone_id` | string | Yes | Milestone ID |

---

#### Create Milestone

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/milestones`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/milestones?api_token={api_token}
```

**Description**: Create Milestone

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Request Body**:
```json
{
  "name": "<string >",
  "start_date": "<string>",
  "end_date": "<string>",
  "owner": "<number>",
  "flag": "<string>"
}
```

---

#### Update Milestone

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/milestones/milestone_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/milestones/milestone_id?api_token={api_token}
```

**Description**: Update Milestone

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`milestone_id` | string | Yes | Milestone ID |

**Request Body**:
```json
{
  "name": "<string >",
  "start_date": "<string>",
  "end_date": "<string>",
  "owner": "<number>",
  "flag": "<string>"
}
```

---

#### Update Milestone Status

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/milestones/milestone_id/status`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/milestones/milestone_id/status?api_token={api_token}
```

**Description**: Update Milestone Status

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`milestone_id` | string | Yes | Milestone ID |

**Request Body**:
```json
{
  "status": "<number>"
}
```

---

#### Delete a Milestone

**Method**: `DELETE` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/milestones/milestone_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/milestones/milestone_id?api_token={api_token}
```

**Description**: Delete Milestone

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`milestone_id` | string | Yes | Milestone ID |

---

### Category: Portals 

#### All Portals

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portals`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portals?api_token={api_token}
```

**Description**: Gets all the portals for the logged-in user

---

### Category: Projects

#### All Projects

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects?index={index}&range={range}&status={status}&sort_column={sort_column}&sort_order={sort_order}&api_token={api_token}
```

**Description**: Get all the projects in the portal for the logged in user

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`index` | number | No | Index number of the project |
|`range` | number | No | Range of the projects |
|`status` | string | No | Status of the project must be active or archived or template |
|`sort_column` | string | No | Sort projects using the last modified time or time of creation |
|`sort_order` | string | No | Sort in ascending / descending order |

---

#### Project Details

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id?api_token={api_token}
```

**Description**: Lists all the details of the project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

---

#### Get Project Custom Fields

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/customfields`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/customfields?api_token={api_token}
```

**Description**: Gets all the project custom fields

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |

---

#### Create a Project

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects?api_token={api_token}
```

**Description**: Create a Project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |

**Request Body**:
```json
{
  "name": "<string >"
}
```

---

#### Update a Project

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id?api_token={api_token}
```

**Description**: Update a Project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Request Body**:
```json
{
  "key": "value"
}
```

---

#### Delete a Project

**Method**: `DELETE` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id?api_token={api_token}
```

**Description**: Delete a Project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

---

### Category: Tags

#### Get All Tags

**Method**: `GET` | **LowCodeAPI Path**: `/api/v3/portal/portal_id/tags`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/api/v3/portal/portal_id/tags?index={index}&range={range}&api_token={api_token}
```

**Description**: Fetches all the tags present in a specific portal

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`index` | number | No | Index number of the tag |
|`range` | number | No | Range of the tags |

---

#### Create Tags

**Method**: `POST` | **LowCodeAPI Path**: `/api/v3/portal/portal_id/tags`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/api/v3/portal/portal_id/tags?api_token={api_token}
```

**Description**: Creates one or more tags for a specific portal

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |

**Request Body**:
```json
{
  "key": "value"
}
```

---

#### Update Tag

**Method**: `PATCH` | **LowCodeAPI Path**: `/api/v3/portal/portal_id/tags/tag_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/api/v3/portal/portal_id/tags/tag_id?api_token={api_token}
```

**Description**: Updates a specific tag present in a specific portal

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`tag_id` | string | Yes | Tag ID |

**Request Body**:
```json
{
  "key": "value"
}
```

---

#### Delete Tag

**Method**: `DELETE` | **LowCodeAPI Path**: `/api/v3/portal/portal_id/tags/tag_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/api/v3/portal/portal_id/tags/tag_id?api_token={api_token}
```

**Description**: Deletes a specific tag from a specific portal

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`tag_id` | string | Yes | Tag ID |

---

#### Dissociate Tag

**Method**: `POST` | **LowCodeAPI Path**: `/api/v3/portal/portal_id/projects/project_id/tags/associate`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/api/v3/portal/portal_id/projects/project_id/tags/associate?api_token={api_token}
```

**Description**: Dissociates a tag from a specific entity in a specific project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Request Body**:
```json
{
  "key": "value"
}
```

---

#### Get Tag Results

**Method**: `GET` | **LowCodeAPI Path**: `/api/v3/portal/portal_id/globaltags/search`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/api/v3/portal/portal_id/globaltags/search?tag_id={tag_id}&index={index}&range={range}&filter={filter}&api_token={api_token}
```

**Description**: Fetches the tag results across the portal

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`tag_id` | number | No | The unique identifier for a tag |
|`index` | number | No | The index number of the tags |
|`range` | number | No | The range of the tags |
|`filter` | string | No | The JSON has the project's name, status, and module |

---

### Category: Timesheets

#### All Time Logs

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/logs`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/logs?index={index}&range={range}&users_list={users_list}&view_type={view_type}&date={date}&bill_status={bill_status}&component_type={component_type}&api_token={api_token}
```

**Description**: Gets all the time logs in the given project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`index` | number | No | Index of the time log |
|`range` | number | No | Range of the time logs |
|`users_list` | number | Yes | User of the time logs must be provided as all or user ID. For multiple users, the user ID must be separated by commas |
|`view_type` | string | Yes | View type of the timesheet must be provided as day or week or month |
|`date` | string | Yes | Date of the timesheet view type |
|`bill_status` | string | Yes | Timesheet billable status must be provided as All or Billable or Non Billable |
|`component_type` | string | Yes | Type of the component must be provided as bug or general |

---

#### Add Time Log for a Bug

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/bug_id/logs`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/bug_id/logs?api_token={api_token}
```

**Description**: Adds the time log to a bug

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`bug_id` | string | Yes | Bug ID |

**Request Body**:
```json
{
  "date": "<string>",
  "bill_status": "<string>",
  "hours": "<string>"
}
```

---

#### Update Time Log for a Bug

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/bug_id/logs/log_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/bug_id/logs/log_id?api_token={api_token}
```

**Description**: Updates the time log for a bug

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`bug_id` | string | Yes | Bug ID |
|`log_id` | string | Yes | Log ID |

**Request Body**:
```json
{
  "date": "<string>",
  "bill_status": "<string>",
  "hours": "<string>"
}
```

---

#### Approve Time Log for a Bug

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/bug_id/logs/log_id/approval`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/bug_id/logs/log_id/approval?api_token={api_token}
```

**Description**: Approve time log for a bug

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`bug_id` | string | Yes | Bug ID |
|`log_id` | string | Yes | Log ID |

**Request Body**:
```json
{
  "key": "value"
}
```

---

#### Delete Time Log for a Bug

**Method**: `DELETE` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/bugs/bug_id/logs/log_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/bugs/bug_id/logs/log_id?api_token={api_token}
```

**Description**: Deletes the time log for a bug

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`bug_id` | string | Yes | Bug ID |
|`log_id` | string | Yes | Log ID |

---

#### Approve Time for a General Log

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/logs/log_id/approval`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/logs/log_id/approval?api_token={api_token}
```

**Description**: Approve general time log

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`log_id` | string | Yes | Log ID |

**Request Body**:
```json
{
  "key": "value"
}
```

---

### Category: Users

#### Get project users

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/users`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/users?user_type={user_type}&api_token={api_token}
```

**Description**: Gets the details of all the users in a specific project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`user_type` | string | No | Availability status of the userAllowed values: active,inactiveallBy default, the active users will be listed |

---

#### Add Users to a Project

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/users`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/users?api_token={api_token}
```

**Description**: Adds users to a specific project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |

**Request Body**:
```json
{
  "key": "value"
}
```

---

#### Add Users to a Portal

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/users`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/users?api_token={api_token}
```

**Description**: Adds users to a portal

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |

**Request Body**:
```json
{
  "key": "value"
}
```

---

#### Update Users in a Project

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/projects/project_id/users/user_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/projects/project_id/users/user_id?api_token={api_token}
```

**Description**: Updates the details of a specific user in a project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`user_id` | string | Yes | User ID |

**Request Body**:
```json
{
  "key": "value"
}
```

---

#### Delete User from a Project

**Method**: `DELETE` | **LowCodeAPI Path**: `/restapi/portal/portal_id/project/project_id/users/user_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/project/project_id/users/user_id?api_token={api_token}
```

**Description**: Deletes the user from a project

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`project_id` | string | Yes | Project ID |
|`user_id` | string | Yes | User ID |

---

#### Get remaining no. of users in a portal

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/users/availcount`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/users/availcount?api_token={api_token}
```

**Description**: Fetches the remaining no. of users to be added in a specific portal

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |

---

#### Get portal users

**Method**: `GET` | **LowCodeAPI Path**: `/restapi/portal/portal_id/users`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/users?user_type={user_type}&api_token={api_token}
```

**Description**: Gets the details of all users in a specific portal

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`user_type` | string | No | Availability status of the user Allowed values: active, inactive, all By default, the active users will be listed |

---

#### Delete User from a Portal

**Method**: `DELETE` | **LowCodeAPI Path**: `/restapi/portal/portal_id/users/user_id`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/users/user_id?api_token={api_token}
```

**Description**: Deletes the user from a portal

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`user_id` | string | Yes | User ID |

---

#### Deactivate user

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/users/activate`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/users/activate?api_token={api_token}
```

**Description**: Deactivates a specific user from a specific portal

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |

**Request Body**:
```json
{
  "key": "value"
}
```

---

#### Add user to a client company

**Method**: `POST` | **LowCodeAPI Path**: `/restapi/portal/portal_id/clients/client_company_id/users`

**Full URL**:
```
https://api.lowcodeapi.com/zohobugtracker/restapi/portal/portal_id/clients/client_company_id/users?api_token={api_token}
```

**Description**: Adds user to an existing client company

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | string | Yes | Portal ID |
|`client_company_id` | string | Yes | Client Company ID |

**Request Body**:
```json
{
  "contact_email": "<string>"
}
```

---

## Complete Endpoint Reference

For a complete list of all 84 endpoints, refer to:
- **OpenAPI Definition**: `https://backend.lowcodeapi.com/zohobugtracker/definition`
- **Official Provider Documentation**: https://www.zoho.com/projects/help/rest-api/bugtracker-portal-api.html