# Zoho Tables Integration via LowCodeAPI

## Overview

Online database

## Base Endpoint

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

## Authentication

LowCodeAPI handles authentication automatically. You only need to:

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

- **Base** - 4 endpoints
- **Data** - 2 endpoints
- **Export** - 1 endpoints
- **Fields** - 7 endpoints
- **Import** - 1 endpoints
- **Portal** - 1 endpoints
- **Record** - 4 endpoints
- **Tables** - 4 endpoints
- **Views** - 1 endpoints
- **Workspaces** - 7 endpoints

## Common Endpoints

### Category: Base

#### List Base

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1/bases`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/bases?portal_id={portal_id}&workspace_id={workspace_id}&api_token={api_token}
```

**Description**: List all the Bases of a Workspace

**Query Parameters**:

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

---

#### Duplicate Base

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1/bases`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/bases?api_token={api_token}
```

**Description**: Duplicate a new Base in a Workspace

**Request Body**:
```json
{
  "portal_id": "<number>",
  "workspace_id": "<string>",
  "base_id": "<string>",
  "base_name": "<string>",
  "base_color": "<string>",
  "base_icon": "<number>"
}
```

---

#### Update Base

**Method**: `PUT` | **LowCodeAPI Path**: `/api/v1/bases`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/bases?api_token={api_token}
```

**Description**: Update name, icon and color of a Base in the Workspace

**Request Body**:
```json
{
  "portal_id": "<number>",
  "base_id": "<string>",
  "base_name": "<string>",
  "base_color": "<string>",
  "base_icon": "<number>"
}
```

---

#### Search Base

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1/searchbases`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/searchbases?search_string={search_string}&workspace_id={workspace_id}&api_token={api_token}
```

**Description**: Get all the Bases whose names are matched with the search_string

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`search_string` | string | Yes | String to Search |
|`workspace_id` | string | No | WorkspaceID to search inside a particular workspace |

---

### Category: Data

#### List Data

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1/records`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/records?base_id={base_id}&table_id={table_id}&view_id={view_id}&record_id={record_id}&count={count}&selection_option_color={selection_option_color}&api_token={api_token}
```

**Description**: Get the list of all records and its data for a specific Table in a Base

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`base_id` | string | Yes | Base Id |
|`table_id` | string | Yes | Table Id |
|`view_id` | string | No | View Id |
|`record_id` | string | No | Reference record id |
|`count` | number | No | Selection Option Name |
|`selection_option_color` | string | No | No of records to fetch |

---

#### Update Data

**Method**: `PUT` | **LowCodeAPI Path**: `/api/v1/data`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/data?api_token={api_token}
```

**Description**: Update a field's value of a Record in a Table in a Base

**Request Body**:
```json
{
  "base_id": "<string>",
  "table_id": "<string>",
  "record_id": "<string>",
  "field_id": "<number>"
}
```

---

### Category: Export

#### Export

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1/exports`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/exports?base_id={base_id}&table_id={table_id}&view_id={view_id}&scope={scope}&file_type={file_type}&password={password}&api_token={api_token}
```

**Description**: Use this API to export the base/table/view

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`base_id` | string | Yes | Base Id |
|`table_id` | string | No | Table Id |
|`view_id` | string | No | View Id |
|`scope` | string | Yes | base|table|view |
|`file_type` | string | Yes | csv|xls|xlsx|tsv|ics |
|`password` | string | Yes | To get Password protected file |

---

### Category: Fields

#### List Fields

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1/fields`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/fields?base_id={base_id}&table_id={table_id}&view_id={view_id}&api_token={api_token}
```

**Description**: Get all the fields and its details for a specific Table in a Base

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`base_id` | string | Yes | Base Id |
|`table_id` | string | Yes | Table Id |
|`view_id` | string | No | When a view ID is provided, additional information, such as height and visibility, is included in the response |

---

#### Create Field

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1/fields`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/fields?api_token={api_token}
```

**Description**: Add a new field to a Table in a Base

**Request Body**:
```json
{
  "base_id": "<string>",
  "table_id": "<string>"
}
```

---

#### Update Field

**Method**: `PUT` | **LowCodeAPI Path**: `/api/v1/fields`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/fields?api_token={api_token}
```

**Description**: Change name, type and/or type components of the field in a Table

**Request Body**:
```json
{
  "base_id": "<string>",
  "table_id": "<string>"
}
```

---

#### Delete Field

**Method**: `DELETE` | **LowCodeAPI Path**: `/api/v1/fields`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/fields?base_id={base_id}&table_id ={table_id }&field_id={field_id}&api_token={api_token}
```

**Description**: Remove a field from a Table in a Base

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`base_id` | string | Yes | Base Id |
|`table_id ` | string | Yes | Table Id |
|`field_id` | string | No | Field Id |

---

#### Create Selection Options

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1/selectionoptions`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/selectionoptions?api_token={api_token}
```

**Description**: Add a new selection option in a Field

**Request Body**:
```json
{
  "base_id": "<string>",
  "table_id ": "<string>"
}
```

---

#### Delete Selection Options

**Method**: `DELETE` | **LowCodeAPI Path**: `/api/v1/selectionoptions`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/selectionoptions?base_id={base_id}&table_id={table_id}&field_id={field_id}&selection_option_id={selection_option_id}&api_token={api_token}
```

**Description**: Delete the selection option in a Field

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`base_id` | string | Yes | Base Id |
|`table_id` | string | Yes | Table Id |
|`field_id` | string | No | Field Id |
|`selection_option_id` | string | No | Selection Option Id |

---

#### Update Selection Options

**Method**: `PUT` | **LowCodeAPI Path**: `/api/v1/selectionoptions`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/selectionoptions?api_token={api_token}
```

**Description**: Update the name and color of a selection option in a Field

**Request Body**:
```json
{
  "base_id": "<string>",
  "table_id": "<string>"
}
```

---

### Category: Import

#### Import

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1/import`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/import?api_token={api_token}
```

**Description**: Use this API to import the base/table from the files

**Request Body**:
```json
{
  "import_scope": "<string>",
  "portal_id ": "<string>",
  "workspace_id": "<string>",
  "base_id": "<string>",
  "import_file": "<file>"
}
```

---

### Category: Portal

#### List Portal

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1/portals`

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

**Description**: List Portals

---

### Category: Record

#### Create Record With Data

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1/records`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/records?api_token={api_token}
```

**Description**: Add a new record to a Table in a Base


**Request Body**:
```json
{
  "base_id": "<string>",
  "table_id": "<string>"
}
```

---

#### Delete Record

**Method**: `DELETE` | **LowCodeAPI Path**: `/api/v1/records`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/records?base_id={base_id}&table_id={table_id}&record_id={record_id}&api_token={api_token}
```

**Description**: Remove a record from a Table in a Base

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`base_id` | string | Yes | Base Id |
|`table_id` | string | Yes | Table Id |
|`record_id` | string | No | Record Id |

---

#### Update Records with Criteria

**Method**: `PUT` | **LowCodeAPI Path**: `/api/v1/records`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/records?api_token={api_token}
```

**Description**: Update the records of a Table in the Base, that matches the given criteria or record IDs

**Request Body**:
```json
{
  "base_id": "<string>",
  "table_id": "<string>",
  "data": "<string>"
}
```

---

#### Fetch Records with Criteria

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1/fetchrecordswithcriteria`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/fetchrecordswithcriteria?api_token={api_token}
```

**Description**: Fetch the records of a Table in the Base, that matches the given criteria or record IDs

**Request Body**:
```json
{
  "base_id": "<string>",
  "table_id": "<string>",
  "view_id": "<string>"
}
```

---

### Category: Tables

#### List Tables

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1/tables`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/tables?base_id={base_id}&api_token={api_token}
```

**Description**: Get all the tables of a Base

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`base_id` | string | Yes | Base Id |

---

#### Duplicate Table

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1/tables`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/tables?api_token={api_token}
```

**Description**: Duplicate a Table in a Base

**Request Body**:
```json
{
  "base_id": "<string>",
  "table_id": "<string>",
  "table_name": "<string>",
  "is_duplicate_with_records": "<boolean>"
}
```

---

#### Update Table

**Method**: `PUT` | **LowCodeAPI Path**: `/api/v1/tables`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/tables?api_token={api_token}
```

**Description**: Update the name of a Table in the Base

**Request Body**:
```json
{
  "base_id": "<string>",
  "table_id": "<string>",
  "table_name": "<string>"
}
```

---

#### Delete Table

**Method**: `DELETE` | **LowCodeAPI Path**: `/api/v1/tables`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/tables?base_id={base_id}&table_id={table_id}&api_token={api_token}
```

**Description**: Remove a specific Table in a Base

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`base_id` | string | Yes | Base Id |
|`table_id` | string | Yes | Table Id |

---

### Category: Views

#### List Views

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1/views`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/views?base_id={base_id}&table_id={table_id}&api_token={api_token}
```

**Description**: Get the details of all views for a specific Table in a Base

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`base_id` | string | Yes | Base Id |
|`table_id` | string | Yes | Table Id |

---

### Category: Workspaces

#### List Workspaces

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1/workspaces`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/workspaces?portal_id={portal_id}&api_token={api_token}
```

**Description**: Get all the Workspaces of a Portal

**Query Parameters**:

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

---

#### Create Workspace

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1/workspaces`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/workspaces?api_token={api_token}
```

**Description**: Add a new Workspace in a Portal

**Request Body**:
```json
{
  "portal_id": "<number>",
  "Workspace_name": "<string>"
}
```

---

#### Update Workspace

**Method**: `PUT` | **LowCodeAPI Path**: `/api/v1/workspaces`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/workspaces?api_token={api_token}
```

**Description**: Update the name of a Workspace in the Portal

**Request Body**:
```json
{
  "portal_id": "<number>",
  "Workspace_name": "<string>",
  "workspace_id": "<string>"
}
```

---

#### Delete Workspace

**Method**: `DELETE` | **LowCodeAPI Path**: `/api/v1/workspaces`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/workspaces?portal_id={portal_id}&workspace_id={workspace_id}&api_token={api_token}
```

**Description**: Remove a specific Workspace in a Portal

**Query Parameters**:

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

---

#### List Workspace Members

**Method**: `GET` | **LowCodeAPI Path**: `/api/v1/workspacemembers`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/workspacemembers?portal_id={portal_id}&workspace_id={workspace_id}&api_token={api_token}
```

**Description**: Use this API to list down all the members of a Workspace

**Query Parameters**:

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

---

#### Add Workspace Member

**Method**: `POST` | **LowCodeAPI Path**: `/api/v1/workspacemembers`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/workspacemembers?api_token={api_token}
```

**Description**: Add a member in the Workspace

**Request Body**:
```json
{
  "portal_id": "<number>",
  "workspace_id": "<string>",
  "email_id": "<string>",
  "role": "<string>"
}
```

---

#### Delete Workspace Members

**Method**: `DELETE` | **LowCodeAPI Path**: `/api/v1/workspacemembers`

**Full URL**:
```
https://api.lowcodeapi.com/zohotables/api/v1/workspacemembers?portal_id={portal_id}&workspace_id={workspace_id}&email_id={email_id}&api_token={api_token}
```

**Description**: Remove members from a specific Workspace

**Query Parameters**:

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
|`portal_id` | number | Yes | Portal ID |
|`workspace_id` | string | Yes | Workspace ID |
|`email_id` | string | Yes | Email ID |

---

## Complete Endpoint Reference

For a complete list of all 32 endpoints, refer to:
- **OpenAPI Definition**: `https://backend.lowcodeapi.com/zohotables/definition`
- **Official Provider Documentation**: https://tables.zoho.com/help/api/v1