# Zoho Sheet Integration via LowCodeAPI

**Last Updated**: February 11, 2026

## Overview

Spreadsheet application

The Zoho Sheet API provides access to:

- **Zoho Suite** - Related functionality

## Base Endpoint

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

**Important**: Always include the provider name in the URL path after `api.lowcodeapi.com/`

## Authentication

LowCodeAPI handles authentication automatically. You only need to:

1. **Sign up** at [Zoho Sheet](https://www.zoho.com/sheet)
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

The `api_token` is your LowCodeAPI authentication token. LowCodeAPI will automatically:
- Fetch your provider credentials (API keys, OAuth tokens, etc.)
- Apply them to each request
- Handle token refresh for OAuth providers

**Auth Type**: OAUTH2.0

## URL Format (Important)

LowCodeAPI supports **two URL formats** for endpoints with path parameters. **Always try New Format first**, and only fall back to Old Format if it doesn't work.

### New Format (Priority) - Dynamic Path Parameters

- **Path parameters stay in the URL path** - Do NOT convert to query parameters
- **Provider name is always in the URL path** after `api.lowcodeapi.com/`
- Pattern: `https://api.lowcodeapi.com/{provider}/{path_with_params}?api_token={api_token}`

**Example**:
```bash
# New Format - Path parameter stays in the URL path
https://api.lowcodeapi.com/zohosheet/resource/{RESOURCE_ID}?api_token=YOUR_API_TOKEN
```

### Old Format (Fallback) - Sanitized Path + Query Parameters

- **Path parameters become query parameters**
- **Provider name is always in the URL path**
- Pattern: `https://api.lowcodeapi.com/{provider}/{sanitized_path}?{path_params}&api_token={api_token}`

**Example**:
```bash
# Old Format - Path parameter becomes a query parameter
https://api.lowcodeapi.com/zohosheet/resource/id?id=RESOURCE_ID&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

## API Categories

- **Utility API's** - 1 endpoints
- **Workbook** - 11 endpoints
- **Worksheet** - 1 endpoints

## Common Endpoints

### Category: Utility API's

#### Convert Index to Range

**Method**: `POST` | **LowCodeAPI Path**: `/api/v2/utils`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/utils?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/utils?api_token={api_token}
```

**Description**: used to convert start row, start column, end row, end column indexes respectively to a Range

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

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `method` | string | No | range.address.get |
| `end_column` | number | No | End column index of the range |
| `end_row` | number | No | End row index of the range |
| `start_column` | number | No | Start column index of the range |
| `start_row` | number | No | Start row index of the range |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohosheet/api/v2/utils?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Convert Index to Range](https://www.zoho.com/sheet/help/api/v2/#UTILITY-Convert-Index-to-Range)

---

### Category: Workbook

#### List all workbooks

**Method**: `POST` | **LowCodeAPI Path**: `/api/v2/workbooks`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/workbooks?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/workbooks?api_token={api_token}
```

**Description**: List all workbooks of the user

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

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `method` | string | No | workbook.list |
| `count` | number | No | It denotes the number of resources in response |
| `sort_option` | enum | No | Supported options are 'recently_opened', 'recently_modified', 'recently_created', 'ascending', and 'descending' |
| `start_index` | string | No | This parameter can be used to get a few resources if there are too many |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohosheet/api/v2/workbooks?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [List all workbooks](https://www.zoho.com/sheet/help/api/v2/#WORKBOOK-List-all-workbooks)

---

#### List all templates

**Method**: `POST` | **LowCodeAPI Path**: `/api/v2/templates`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/templates?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/templates?api_token={api_token}
```

**Description**: List all templates of the user

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

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `method` | list | No | template.list |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohosheet/api/v2/templates?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [List all templates](https://www.zoho.com/sheet/help/api/v2/#WORKBOOK-List-all-templates)

---

#### Create workbook

**Method**: `POST` | **LowCodeAPI Path**: `/api/v2/create`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/create?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/create?api_token={api_token}
```

**Description**: Create workbook used to add a new workbook

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

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `method` | string | No | workbook.create |
| `workbook_name` | string | No | Name of the new workbook |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohosheet/api/v2/create?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Create workbook](https://www.zoho.com/sheet/help/api/v2/#WORKBOOK-Create-workbook)

---

#### Create workbook from template

**Method**: `POST` | **LowCodeAPI Path**: `/api/v2/createfromtemplate`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/createfromtemplate?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/createfromtemplate?api_token={api_token}
```

**Description**: Create a new workbook from a template

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

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `method` | string | No | workbook.createfromtemplate |
| `resource_id` | string | No | The resource id of the template |
| `workbook_name` | string | No | Name of the new workbook |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohosheet/api/v2/createfromtemplate?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Create workbook from template](https://www.zoho.com/sheet/help/api/v2/#WORKBOOK-Create-workbook-from-template)

---

#### Upload workbook

**Method**: `POST` | **LowCodeAPI Path**: `/api/v2/upload`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/upload?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/upload?api_token={api_token}
```

**Description**: Upload workbook

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

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `method` | string | No | workbook.upload |
| `date_format` | file | No | Optional parameter and it is used only for CSV file type |
| `delimiter` | file | No | Optional parameter and it is used only for CSV file type |
| `file` | file | No | Local file that needs to be uploaded |
| `file_url` | string | No | If the user wants to upload file from a url this parameter can be used instead of file parameter |
| `workbook_name` | string | No | Name of the new workbook |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohosheet/api/v2/upload?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Upload workbook](https://www.zoho.com/sheet/help/api/v2/#WORKBOOK-Upload-workbook)

---

#### Download workbook

**Method**: `POST` | **LowCodeAPI Path**: `/api/v2/download/{resource_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/download/{resource_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/download/resource_id?resource_id={resource_id}&api_token={api_token}
```

**Description**: Used to download an existing workbook

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `resource_id` | string | No | Resource Id |

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

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `method` | string | No | workbook.upload |
| `format` | enum | No | Supported formats are xls, xlsx, csv, tsv, ods and pdf |
| `page_settings` | file | No | This is an optional parameter and can be used only with PDF file |
| `range` | file | No | A particular range can also be downloaded in CSV, TSV and PDF file format |
| `workbook_name` | string | No | Name of the new workbook |
| `worksheet_name` | string | No | Name of the worksheet when a particular sheet needs to be downloaded |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohosheet/api/v2/download/{resource_id}?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Download workbook](https://www.zoho.com/sheet/help/api/v2/#WORKBOOK-Download-workbook)

---

#### Insert images

**Method**: `POST` | **LowCodeAPI Path**: `/api/v2/insertimages`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/insertimages?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/insertimages?api_token={api_token}
```

**Description**: Insert images into a workbook

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

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `method` | string | No | workbook.images.insert |
| `image_json` | array | No | JSON Array |
| `imagefiles` | file | No | Local image files that needs to be uploaded |
| `resource_id` | string | No | The resource id of the workbook where the images needs to be inserted |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohosheet/api/v2/insertimages?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Insert images](https://www.zoho.com/sheet/help/api/v2/#WORKBOOK-Insert-images)

---

#### Copy workbook

**Method**: `POST` | **LowCodeAPI Path**: `/api/v2/copy`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/copy?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/copy?api_token={api_token}
```

**Description**: Used to make a new copy of an existing workbook

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

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `method` | string | No | workbook.copy |
| `resource_id` | string | No | The resource id of the workbook that needs to be copied |
| `workbook_name` | string | No | Name of the copied workbook |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohosheet/api/v2/copy?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Copy workbook](https://www.zoho.com/sheet/help/api/v2/#WORKBOOK-Copy-workbook)

---

#### Share workbook

**Method**: `POST` | **LowCodeAPI Path**: `/api/v2/share`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/share?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/share?api_token={api_token}
```

**Description**: Used to share a workbook with a user

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

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `method` | string | No | workbook.share |
| `resource_id` | string | No | The resource id of the workbook that needs to be shared |
| `share_json` | array | No | JSON Array consisting of the user's email id and the access level with which the user will be able to view the shared workbook |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohosheet/api/v2/share?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Share workbook](https://www.zoho.com/sheet/help/api/v2/#WORKBOOK-Share-workbook)

---

#### Trash workbook

**Method**: `POST` | **LowCodeAPI Path**: `/api/v2/trash`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/trash?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/trash?resource_id={resource_id}&api_token={api_token}
```

**Description**: Used to create a new version

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `resource_id` | string | No | Resource Id |

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

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `method` | string | No | workbook.version.create |
| `version_description` | string | No | Name of the new version |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohosheet/api/v2/trash?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Trash workbook](https://www.zoho.com/sheet/help/api/v2/#WORKBOOK-Create-version)

---

#### Restore workbook

**Method**: `POST` | **LowCodeAPI Path**: `/api/v2/restore`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/restore?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/restore?resource_id={resource_id}&api_token={api_token}
```

**Description**: Used to revert to an older version

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `resource_id` | string | No | Resource Id |

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

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `method` | string | No | workbook.version.revert |
| `version_number` | number | No | Version_number of the version to be reverted |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohosheet/api/v2/restore?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Restore workbook](https://www.zoho.com/sheet/help/api/v2/#WORKBOOK-Revert-version)

---

### Category: Worksheet

#### Delete worksheet

**Method**: `POST` | **LowCodeAPI Path**: `/api/v2/{resource_id}`

**New Format (Priority)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/{resource_id}?api_token=YOUR_API_TOKEN
```

**Old Format (Fallback)**:
```bash
https://api.lowcodeapi.com/zohosheet/api/v2/resource_id?resource_id={resource_id}&api_token={api_token}
```

**Description**: Delete worksheet

**Path Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `resource_id` | string | No | Resource Id |

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

**Request Body Fields**:

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `method` | string | No | worksheet.delete |
| `worksheet_id` | string | No | Alternatively worksheet_id can be used instead of worksheet_name |
| `worksheet_name` | string | No | Name of the worksheet that needs to be deleted |

**Example Request**:
```bash
# NEW FORMAT (PRIORITY) - Path parameters stay in URL
curl -X POST "https://api.lowcodeapi.com/zohosheet/api/v2/{resource_id}?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key": "value"}'
```

**Example Response**:
```json
{
  "data": {
    // Provider response here
  }
}
```

**Official Documentation**: [Delete worksheet](https://www.zoho.com/sheet/help/api/v2/#WORKSHEET-Delete-worksheet)

---

## API Definition Endpoints

You can retrieve the complete OpenAPI specification for this provider using these endpoints:

**New Format (OpenAPI spec with dynamic path parameters):**
```bash
curl -X GET "https://backend.lowcodeapi.com/zohosheet/openapi"
```

**Old Format (API definition with sanitized paths):**
```bash
curl -X GET "https://backend.lowcodeapi.com/zohosheet/definition"
```

## 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

For a complete list of all 13 endpoints, refer to:
- **Official Provider Documentation**: https://www.zoho.com/sheet/help/api/v2/

## Usage Examples

### Example 1: Basic API Request (New Format)

Making a simple request to Zoho Sheet:

```bash
# Replace RESOURCE_ID with an actual resource ID from your Zoho Sheet account
curl -X GET "https://api.lowcodeapi.com/zohosheet/resource/{RESOURCE_ID}?api_token=YOUR_API_TOKEN"
```

### Example 2: Request with Query Parameters (New Format)

Request with specific parameters:

```bash
# Include query parameters for filtering
curl -X GET "https://api.lowcodeapi.com/zohosheet/resources?filter=value&api_token=YOUR_API_TOKEN"
```

## Error Handling

Standard HTTP status codes apply. All responses are wrapped in a `data` key:
```json
{
  "data": {
    // Actual response from provider
  }
}
```