# Zoho Sprints Integration via LowCodeAPI
**Last Updated**: February 10, 2026
## Overview
Zoho Sprints is an agile project management tool that helps teams plan, track, and deliver projects using Scrum methodology. It provides comprehensive features for sprint planning, backlog management, work items (tasks, bugs, stories), epics, checklists, and team collaboration.
**Main Features:**
- Sprint and backlog management
- Work items (tasks, bugs, stories) with subitems
- Epic creation and association
- Checklist groups and items within work items
- Custom layouts and fields
- Activity tracking
- Team collaboration and automation
## Base Endpoint
https://api.lowcodeapi.com/zohosprints
**Important**: Always include the provider name `zohosprints` in the URL path after `api.lowcodeapi.com/`
## Authentication
**Type**: OAuth 2.0
To connect to Zoho Sprints via LowCodeAPI:
1. Go to [Zoho API Console](https://api-console.zoho.com/)
2. Create a Zoho Sprints application
3. Get your OAuth 2.0 Client ID and Client Secret
4. Configure your Zoho Region (e.g., `https://www.zohoapis.com` or `https://www.zohoapis.in`)
5. Configure your Zoho Auth Region (e.g., `https://accounts.zoho.com` or `https://accounts.zoho.in`)
6. Add your credentials to LowCodeAPI's Zoho Sprints integration
LowCodeAPI automatically handles authentication by mapping your credentials to the Zoho Sprints API for each request.
## URL Format
LowCodeAPI supports two URL formats for endpoints with path parameters. Always try the **New Format first**, and only fall back to the **Old Format** if it doesn't work.
### New Format (Priority) - Dynamic Path Parameters
Path parameters stay in the URL path. Do NOT convert them to query parameters.
**Pattern:**
```
https://api.lowcodeapi.com/zohosprints/{path_with_params}?api_token={api_token}
```
**Example:**
```bash
# New Format - Path parameter stays in the URL path
https://api.lowcodeapi.com/zohosprints/zsapi/team/{teamId}/projects/{projectId}/sprints/{sprintId}/item/{itemId}/clgroup?api_token=YOUR_API_TOKEN
```
### Old Format (Fallback) - Sanitized Path + Query Parameters
Path parameters become query parameters with a sanitized path.
**Pattern:**
```
https://api.lowcodeapi.com/zohosprints/{sanitized_path}?{path_params}&api_token={api_token}
```
**Example:**
```bash
# Old Format - Path parameter becomes a query parameter
https://api.lowcodeapi.com/zohosprints/zsapi/team/teamid/projects/projectid/sprints/sprintid/item/itemid/clgroup?teamId={teamId}&projectId={projectId}&sprintId={sprintId}&itemId={itemId}&api_token=YOUR_API_TOKEN
```
### Decision Flow for AI Agents
1. **Always use New Format first** - Keep path parameters in the URL path
2. If you get a 404 or error, try **Old Format** with sanitized path
3. Log which format worked for future requests to this provider
### Multiple Path Parameters Handling
For endpoints with multiple path parameters:
```bash
# New Format (Priority)
https://api.lowcodeapi.com/zohosprints/zsapi/team/{teamId}/projects/{projectId}/sprints/{sprintId}/item/{itemId}/clgroup/{clgroupId}/clitem?api_token=XXX
# Old Format (Fallback)
https://api.lowcodeapi.com/zohosprints/zsapi/team/teamid/projects/projectid/sprints/sprintid/item/itemid/clgroup/clgroupid/clitem?teamId={teamId}&projectId={projectId}&sprintId={sprintId}&itemId={itemId}&clgroupId={clgroupId}&api_token=XXX
```
## API Categories
- **Checklist** - Manage checklist groups and items within work items
- **Custom Functions** - Execute standalone custom functions
- **Custom layouts and fields** - Manage default modules, layouts, and custom fields
- **Epic** - Create and manage epics, associate work items
- **Items** - Manage work items (tasks, bugs, stories) and their activities
- **Project** - Project management operations
- **Sprint** - Sprint and backlog operations
- **Team** - Team-related operations
## Common Endpoints
### Checklist Operations
#### Get Checklist Groups
Fetch the list of checklist groups available in your work item.
**Method**: `GET`
| LowCodeAPI Path | Method |
|----------------|--------|
| `/zsapi/team/{teamId}/projects/{projectId}/sprints/{sprintId}/item/{itemId}/clgroup` | GET |
**New Format URL:**
```
https://api.lowcodeapi.com/zohosprints/zsapi/team/{teamId}/projects/{projectId}/sprints/{sprintId}/item/{itemId}/clgroup?api_token={api_token}
```
**Old Format URL:**
```
https://api.lowcodeapi.com/zohosprints/zsapi/team/teamid/projects/projectid/sprints/sprintid/item/itemid/clgroup?teamId={teamId}&projectId={projectId}&sprintId={sprintId}&itemId={itemId}&api_token={api_token}
```
**Path Parameters:**
| Parameter | Type | Required | Description |
|-----------|-------|----------|-------------|
| `teamId` | string | Yes | Team ID |
| `projectId` | string | Yes | Project ID |
| `sprintId` | string | Yes | Sprint ID |
| `itemId` | string | Yes | Item ID |
**Query Parameters:**
| Parameter | Type | Required | Description |
|-----------|-------|----------|-------------|
| `index` | number | Yes | Index from which the listing has to start |
| `range` | number | Yes | No. of records that have to be listed |
**Example Request (New Format):**
```bash
curl -X GET "https://api.lowcodeapi.com/zohosprints/zsapi/team/12345/projects/67890/sprints/11111/item/22222/clgroup?index=1&range=20&api_token=YOUR_API_TOKEN"
```
**Example Response:**
```json
{
"data": {
"checklistGroups": [
{
"clgroupId": "33333",
"clgroupName": "Testing Tasks",
"itemCount": 5
}
]
}
}
```
**Official Documentation**: [Get checklist groups](https://sprints.zoho.com/apidoc.html#Getchecklistgroups)
---
#### Add Checklist Group
Add a checklist group to your work item.
**Method**: `POST`
| LowCodeAPI Path | Method |
|----------------|--------|
| `/zsapi/team/{teamId}/projects/{projectId}/sprints/{sprintId}/item/{itemId}/clgroup` | POST |
**New Format URL:**
```
https://api.lowcodeapi.com/zohosprints/zsapi/team/{teamId}/projects/{projectId}/sprints/{sprintId}/item/{itemId}/clgroup?api_token={api_token}
```
**Old Format URL:**
```
https://api.lowcodeapi.com/zohosprints/zsapi/team/teamid/projects/projectid/sprints/sprintid/item/itemid/clgroup?teamId={teamId}&projectId={projectId}&sprintId={sprintId}&itemId={itemId}&api_token={api_token}
```
**Path Parameters:**
| Parameter | Type | Required | Description |
|-----------|-------|----------|-------------|
| `teamId` | string | Yes | Team ID |
| `projectId` | string | Yes | Project ID |
| `sprintId` | string | Yes | Sprint ID |
| `itemId` | string | Yes | Item ID |
**Request Body:**
| Parameter | Type | Required | Description |
|-----------|-------|----------|-------------|
| `action` | string | Yes | Set value as `addclgroup` |
| `clgroupname` | string | Yes | Name you define to your checklist group |
**Example Request (New Format):**
```bash
curl -X POST "https://api.lowcodeapi.com/zohosprints/zsapi/team/12345/projects/67890/sprints/11111/item/22222/clgroup?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"action": "addclgroup",
"clgroupname": "Testing Tasks"
}'
```
**Official Documentation**: [Add checklist group](https://sprints.zoho.com/apidoc.html#Addchecklistgroup)
---
### Epic Operations
#### Get All Epics
Fetch the list of all the epics present inside a specific project.
**Method**: `GET`
| LowCodeAPI Path | Method |
|----------------|--------|
| `/zsapi/team/{teamId}/projects/{projectId}/epic` | GET |
**New Format URL:**
```
https://api.lowcodeapi.com/zohosprints/zsapi/team/{teamId}/projects/{projectId}/epic?api_token={api_token}
```
**Old Format URL:**
```
https://api.lowcodeapi.com/zohosprints/zsapi/team/teamid/projects/projectid/epic?teamId={teamId}&projectId={projectId}&api_token={api_token}
```
**Path Parameters:**
| Parameter | Type | Required | Description |
|-----------|-------|----------|-------------|
| `teamId` | string | Yes | Team ID |
| `projectId` | string | Yes | Project ID |
**Query Parameters:**
| Parameter | Type | Required | Description |
|-----------|-------|----------|-------------|
| `action` | string | Yes | Set value as `data` |
| `index` | number | No | Index from which the listing has to start |
| `range` | number | No | No. of records that have to be listed |
| `viewtype` | number | No | Mention the type of epic to fetch. Skip this param to fetch epics of all types |
**Example Request (New Format):**
```bash
curl -X GET "https://api.lowcodeapi.com/zohosprints/zsapi/team/12345/projects/67890/epic?action=data&index=1&range=20&api_token=YOUR_API_TOKEN"
```
**Official Documentation**: [Get all epics](https://sprints.zoho.com/apidoc.html#Getallepics)
---
#### Create Epic
Create an epic in a specific project.
**Method**: `POST`
| LowCodeAPI Path | Method |
|----------------|--------|
| `/zsapi/team/{teamId}/projects/{projectId}/epic` | POST |
**New Format URL:**
```
https://api.lowcodeapi.com/zohosprints/zsapi/team/{teamId}/projects/{projectId}/epic?api_token={api_token}
```
**Old Format URL:**
```
https://api.lowcodeapi.com/zohosprints/zsapi/team/teamid/projects/projectid/epic?teamId={teamId}&projectId={projectId}&api_token={api_token}
```
**Path Parameters:**
| Parameter | Type | Required | Description |
|-----------|-------|----------|-------------|
| `teamId` | string | Yes | Team ID |
| `projectId` | string | Yes | Project ID |
**Request Body:**
| Parameter | Type | Required | Description |
|-----------|-------|----------|-------------|
| `name` | string | Yes | Name of the epic |
| `owner` | number | Yes | User who will manage the epic |
| `desc` | string | No | Short description of the epic |
| `color` | string | No | Color code that you define to your epic |
| `UDF_BOOLEAN[1-10]` | number | No | Boolean field |
| `UDF_CHAR[1-20]` | string | No | Single-line field |
| `UDF_CHKBOX[1-10]` | array | No | Checkbox field |
| `UDF_DATETIME[1-10]` | string | No | Datetime field |
| `UDF_DATE[1-10]` | string | No | Date field |
| `UDF_DOUBLE[1-10]` | number | No | Double field |
| `UDF_EMAIL[1-10]` | String | No | Email field |
| `UDF_LONG[1-10]` | number | No | Long field |
| `UDF_MULTIPKL[1-10]` | array | No | Multi picklist field |
| `UDF_PKL[1-10]` | number | No | Picklist field |
| `UDF_RADIO[1-10]` | number | No | Radio button field |
| `UDF_RTEXT[1-20]` | string | No | Html field |
| `UDF_TEXT[1-20]` | string | No | Text area field |
| `UDF_URI[1-10]` | string | No | Url field |
| `UDF_USERPKL[1-20]` | number | No | User picklist field |
**Example Request (New Format):**
```bash
curl -X POST "https://api.lowcodeapi.com/zohosprints/zsapi/team/12345/projects/67890/epic?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Q4 Product Launch",
"owner": 987654321,
"desc": "Complete all tasks for Q4 product launch",
"color": "#FF5733"
}'
```
**Official Documentation**: [Create epic](https://sprints.zoho.com/apidoc.html#Createepic)
---
### Item Operations
#### Get Items
Fetch the list of all the items associated with a sprint.
**Method**: `GET`
| LowCodeAPI Path | Method |
|----------------|--------|
| `/zsapi/team/{teamId}/projects/{projectId}/sprints/{backlogId|sprintId}/item` | GET |
**New Format URL:**
```
https://api.lowcodeapi.com/zohosprints/zsapi/team/{teamId}/projects/{projectId}/sprints/{backlogId|sprintId}/item?api_token={api_token}
```
**Old Format URL:**
```
https://api.lowcodeapi.com/zohosprints/zsapi/team/teamid/projects/projectid/sprints/backlogid|sprintid/item?teamId={teamId}&projectId={projectId}&backlogId|sprintId={backlogId|sprintId}&api_token={api_token}
```
**Path Parameters:**
| Parameter | Type | Required | Description |
|-----------|-------|----------|-------------|
| `teamId` | string | Yes | Team ID |
| `projectId` | string | Yes | Project ID |
| `sprintId` | string | Yes | Sprint ID (or backlog ID) |
**Query Parameters:**
| Parameter | Type | Required | Description |
|-----------|-------|----------|-------------|
| `action` | string | Yes | Set value as `boarditems` |
| `index` | number | Yes | Index from which the listing has to start |
| `range` | number | Yes | No. of records that have to be listed |
| `subitem` | boolean | No | Set value as true to get subitems |
**Example Request (New Format):**
```bash
curl -X GET "https://api.lowcodeapi.com/zohosprints/zsapi/team/12345/projects/67890/sprints/11111/item?action=boarditems&index=1&range=20&subitem=true&api_token=YOUR_API_TOKEN"
```
**Official Documentation**: [Get items](https://sprints.zoho.com/apidoc.html#Getitems)
---
### Custom Functions
#### Execute Custom Function
Execute a particular standalone custom function.
**Method**: `POST`
| LowCodeAPI Path | Method |
|----------------|--------|
| `/zsapi/team/{teamId}/customfunction/{functionId}/execute` | POST |
**New Format URL:**
```
https://api.lowcodeapi.com/zohosprints/zsapi/team/{teamId}/customfunction/{functionId}/execute?api_token={api_token}
```
**Old Format URL:**
```
https://api.lowcodeapi.com/zohosprints/zsapi/team/teamid/customfunction/functionid/execute?teamId={teamId}&functionId={functionId}&api_token={api_token}
```
**Path Parameters:**
| Parameter | Type | Required | Description |
|-----------|-------|----------|-------------|
| `teamId` | string | Yes | Team ID |
| `functionId` | string | Yes | Function ID |
**Request Body:**
| Parameter | Type | Required | Description |
|-----------|-------|----------|-------------|
| `arguments` | object | No | Pass function parameters and its value as key-value pairs |
**Example Request (New Format):**
```bash
curl -X POST "https://api.lowcodeapi.com/zohosprints/zsapi/team/12345/customfunction/func123/execute?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"arguments": {
"param1": "value1",
"param2": "value2"
}
}'
```
**Official Documentation**: [Custom Functions](https://sprints.zoho.com/apidoc.html#CustomFunctions)
---
## Response Format
All responses from LowCodeAPI are wrapped in a `data` key:
```json
{
"data": {
// Actual response from provider API
}
}
```
The `data` key contains the raw response from the provider's API.
## Complete Endpoint Reference
| Category | Method | LowCodeAPI Path (New Format) | Description |
|----------|---------|---------------------------|-------------|
| Checklist | GET | `/zsapi/team/{teamId}/projects/{projectId}/sprints/{sprintId}/item/{itemId}/clgroup` | Get checklist groups |
| Checklist | GET | `/zsapi/team/{teamId}/projects/{projectId}/sprints/{backlogId|sprintId}/item/{itemId}/clgroup/{clgroupId}/clitem` | Get checklist items |
| Checklist | POST | `/zsapi/team/{teamId}/projects/{projectId}/sprints/{sprintId}/item/{itemId}/clgroup/{clgroupId}/clitem/{clitemId}` | Change checklist item status |
| Checklist | POST | `/zsapi/team/{teamId}/projects/{projectId}/sprints/{sprintId}/item/{itemId}/clgroup` | Add checklist group |
| Checklist | POST | `/zsapi/team/{teamId}/projects/{projectId}/sprints/{sprintId}/item/{itemId}/clgroup/{clgroupId}/clitem` | Add checklist item |
| Checklist | POST | `/zsapi/team/{teamId}/projects/{projectId}/sprints/{sprintId}/item/{itemId}/clgroup/{clgroupId}` | Edit checklist group |
| Checklist | POST | `/zsapi/team/{teamId}/projects/{projectId}/sprints/{sprintId}/item/clgroup/{clgroupId}/clitem/{clitemId}` | Edit checklist item |
| Checklist | DELETE | `/zsapi/team/{teamId}/projects/{projectId}/sprints/{sprintId}/item/{itemId}/clgroup/{clgroupId}/clitem/{clitemId}` | Delete checklist item |
| Checklist | DELETE | `/zsapi/team/{teamId}/projects/{projectId}/sprints/{sprintId}/item/{itemId}/clgroup/{clgroupId}` | Delete checklist group |
| Custom Functions | POST | `/zsapi/team/{teamId}/customfunction/{functionId}/execute` | Execute Custom Function |
| Custom layouts | GET | `/zsapi/team/{teamId}/settings/customization/modules` | Get default modules |
| Custom layouts | GET | `/zsapi/team/{teamId}/settings/customization/modules/{moduleId}/layout` | Get custom layouts |
| Custom layouts | GET | `/zsapi/team/{teamId}/settings/customization/layout/{layoutId}/fields` | Get custom fields |
| Epic | GET | `/zsapi/team/{teamId}/projects/{projectId}/epic` | Get all epics |
| Epic | GET | `/zsapi/team/{teamId}/projects/{projectId}/epic/{epicId}` | Get epic details |
| Epic | GET | `/zsapi/team/{teamId}/projects/{projectId}/epic/{epicId}/sprints` | Get associated sprints |
| Epic | GET | `/zsapi/team/{teamId}/projects/{projectId}/epic/{epicId}/item` | Get associated items |
| Epic | POST | `/zsapi/team/{teamId}/projects/{projectId}/epic` | Create epic |
| Epic | POST | `/zsapi/team/{teamId}/projects/{projectId}/sprints/{sprintId}/item/associate` | Associate items with epic |
| Epic | POST | `/zsapi/team/{teamId}/projects/{projectId}/epic/{epicId}` | Update epic |
| Epic | DELETE | `/zsapi/team/{teamId}/projects/{projectId}/epic/{epicId}` | Delete epic |
| Items | GET | `/zsapi/team/{teamId}/projects/{projectId}/sprints/{backlogId|sprintId}/item` | Get items |
| Items | GET | `/zsapi/team/{teamId}/projects/{projectId}/sprints/{backlogId|sprintId}/item/{itemId}` | Get item details |
| Items | GET | `/zsapi/team/{teamId}/projects/{projectId}/sprints/{backlogId|sprintId}/item/{itemId}/activity` | Get item activity |
---
## API Definition Endpoints
To discover all available endpoints for Zoho Sprints:
| Format | URL Pattern | Description |
|--------|-------------|-------------|
| **New Format** | `https://backend.lowcodeapi.com/zohosprints/openapi` | OpenAPI spec with dynamic path parameters |
| **Old Format** | `https://backend.lowcodeapi.com/zohosprints/definition` | API definition with sanitized paths |
**Examples:**
```bash
# Get OpenAPI spec (New Format)
curl -X GET "https://backend.lowcodeapi.com/zohosprints/openapi"
# Get API definition (Old Format)
curl -X GET "https://backend.lowcodeapi.com/zohosprints/definition"
```
---
## Usage Examples
### Example 1: Create an Epic and Associate Work Items
```bash
# Step 1: Create an epic (no ID needed - new item)
curl -X POST "https://api.lowcodeapi.com/zohosprints/zsapi/team/12345/projects/67890/epic?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Q4 Product Launch",
"owner": 987654321,
"desc": "Complete all tasks for Q4 product launch"
}'
# Response includes the new epic ID, e.g., "epicId": "99999"
# Use this epicId in the next step
# Step 2: Get items from a sprint (sprintId returned from previous calls)
curl -X GET "https://api.lowcodeapi.com/zohosprints/zsapi/team/12345/projects/67890/sprints/11111/item?action=boarditems&index=1&range=20&api_token=YOUR_API_TOKEN"
# Response includes item IDs to associate with the epic
# Step 3: Associate work items with the epic (uses epicId from Step 1)
curl -X POST "https://api.lowcodeapi.com/zohosprints/zsapi/team/12345/projects/67890/sprints/11111/item/associate?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"epicid": 99999,
"rootitemidarr": ["22222", "33333", "44444"]
}'
```
### Example 2: Manage Checklists in a Work Item
```bash
# Step 1: Add a checklist group to an item (uses itemId from previous calls)
curl -X POST "https://api.lowcodeapi.com/zohosprints/zsapi/team/12345/projects/67890/sprints/11111/item/22222/clgroup?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"action": "addclgroup",
"clgroupname": "Testing Tasks"
}'
# Response includes clgroupId, e.g., "clgroupId": "55555"
# Step 2: Add checklist items to the group
curl -X POST "https://api.lowcodeapi.com/zohosprints/zsapi/team/12345/projects/67890/sprints/11111/item/22222/clgroup/55555/clitem?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"clitemname": "Unit tests",
"ownerid": 987654321,
"priority": 2,
"visibility": 0
}'
# Step 3: Mark checklist item as complete
curl -X POST "https://api.lowcodeapi.com/zohosprints/zsapi/team/12345/projects/67890/sprints/11111/item/22222/clgroup/55555/clitem/66666?api_token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"action": "changestatus",
"status": 1
}'
```
---
## Error Handling
| Status Code | Description |
|-------------|-------------|
| 200 | Success |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid or missing credentials |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Resource doesn't exist |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error |
---
## Official Documentation
For complete API details, parameter descriptions, and examples, visit the [Zoho Sprints API Documentation](https://www.zoho.com/sprints/help/api/).
**Setup Credentials**: [Zoho API Console](https://api-console.zoho.com/)