Tables API
Manage table elements on a slide, master, or layout. Insert, list, update, and delete tables.
GET List Tables
GET https://show.zoho.com/api/v1/presentation/{rid}/{container}/{container_id}/tables
Required Scopes:
Returns table objects from a slide, master, or layout container. Use this endpoint to inspect table ids, geometry, row and column counts, cell text, and styling before applying table updates. Omit ids to list all tables in the container, or pass comma-separated UUIDs to fetch selected tables. Pagination applies when listing multiple table objects. Rate limit: 100 requests/minute, with a 5-minute lockout after that.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| rid | string | Required | Resource id of the presentation. The caller must have the appropriate permission on this presentation. |
| container | string | Required | Container type that owns the object. Allowed values: slides, masters, layouts. |
| container_id | string | Required | Id of the selected container. Provide slide_id when container is slides, master_id when container is masters, or layout_id when container is layouts. |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ids | string | Optional | Comma-separated table object ids to fetch. Omit this parameter to list all table objects in the selected presentation or container. |
| from | integer | Optional | Zero-based offset for pagination. |
| count | integer | Optional | Maximum number of records to return. Allowed range: 1-99. |
Samples
Responses
{
"data": {
"objects": [
{
"object_id": "c9006b05-4b98-4ae9-84ce-45536ecf4100",
"content": {
"id": "c9006b05-4b98-4ae9-84ce-45536ecf4100",
"table": {
"layout": {
"width": 80,
"height": 50
},
"columns": [
{
"width": 80
}
],
"style": {
"first_col": true,
"band_col": true,
"first_row": true
},
"style_ref": {
"local_id": "1"
},
"rows": [
{
"cells": [
{
"border": {
"top": {},
"left": {},
"bottom": {},
"right": {}
},
"text": {
"paragraphs": [
{
"style": {
"spacing": {
"line": 1.2
},
"level": 1
},
"id": "600202c3-bae7-4e8d-b0be-e0b274df6fd6",
"portions": [
{
"style": {
"size": 14,
"color": {
"rgb": {
"red": 255,
"green": 255,
"blue": 255
}
},
"font_name": {
"name": "Open Sans"
}
}
}
]
}
],
"properties": {
"inset": {
"top": 5,
"left": 10,
"bottom": 5,
"right": 10
}
}
}
}
],
"height": 25
},
{
"cells": [
{
"border": {
"top": {},
"left": {},
"bottom": {},
"right": {}
},
"text": {
"paragraphs": [
{
"style": {
"spacing": {
"line": 1.2
},
"level": 1
},
"id": "e11a945d-5cb1-4289-93d8-27acbbf57455",
"portions": [
{
"style": {
"size": 14,
"color": {
"rgb": {}
},
"font_name": {
"name": "Open Sans"
}
}
}
]
}
],
"properties": {
"inset": {
"top": 5,
"left": 10,
"bottom": 5,
"right": 10
}
}
}
}
],
"height": 25
}
]
}
}
},
{
"object_id": "3dc6e43d-06f4-4144-82e9-fb0e99eaa5cd",
"content": {
"id": "3dc6e43d-06f4-4144-82e9-fb0e99eaa5cd",
"table": {
"layout": {
"width": 200,
"height": 30
},
"columns": [
{
"width": 100
},
{
"width": 100
}
],
"style": {
"first_col": true,
"band_col": true,
"first_row": true
},
"style_ref": {
"local_id": "1"
},
"rows": [
{
"cells": [
{
"border": {
"top": {},
"left": {},
"bottom": {},
"right": {}
},
"text": {
"paragraphs": [
{
"style": {
"spacing": {
"line": 1.2
},
"level": 1
},
"id": "5468f832-3c72-4a37-991b-013c57088aa2",
"portions": [
{
"style": {
"size": 14,
"color": {
"rgb": {
"red": 255,
"green": 255,
"blue": 255
}
},
"font_name": {
"name": "Open Sans"
}
}
}
]
}
],
"properties": {
"inset": {
"top": 5,
"left": 10,
"bottom": 5,
"right": 10
}
}
}
},
{
"border": {
"top": {},
"left": {},
"bottom": {},
"right": {}
},
"text": {
"paragraphs": [
{
"style": {
"spacing": {
"line": 1.2
},
"level": 1
},
"id": "f1a3a2c5-2e39-4eaa-a9c1-3eb4e48e0f4f",
"portions": [
{
"style": {
"size": 14,
"color": {
"rgb": {
"red": 255,
"green": 255,
"blue": 255
}
},
"font_name": {
"name": "Open Sans"
}
}
}
]
}
],
"properties": {
"inset": {
"top": 5,
"left": 10,
"bottom": 5,
"right": 10
}
}
}
}
],
"height": 30
}
]
}
}
},
{
"object_id": "e48343d2-0f4f-4fa6-a8cb-61f349c22673",
"content": {
"id": "e48343d2-0f4f-4fa6-a8cb-61f349c22673",
"table": {
"layout": {
"width": 120,
"height": 30
},
"columns": [
{
"width": 120
}
],
"style": {
"first_col": true,
"band_col": true,
"first_row": true
},
"style_ref": {
"local_id": "1"
},
"rows": [
{
"cells": [
{
"border": {
"top": {},
"left": {},
"bottom": {},
"right": {}
},
"text": {
"paragraphs": [
{
"style": {
"spacing": {
"line": 1.2
},
"level": 1
},
"id": "1bad2728-b54d-4b30-9e25-517ad1f0ae13",
"portions": [
{
"style": {
"size": 14,
"color": {
"rgb": {
"red": 255,
"green": 255,
"blue": 255
}
},
"font_name": {
"name": "Open Sans"
}
}
}
]
}
],
"properties": {
"inset": {
"top": 5,
"left": 10,
"bottom": 5,
"right": 10
}
}
}
}
],
"height": 30
}
]
}
}
},
{
"object_id": "abe3c43e-f92d-4a31-8370-1ec6fa65933a",
"content": {
"id": "abe3c43e-f92d-4a31-8370-1ec6fa65933a",
"table": {
"layout": {
"top": 80,
"left": 60,
"width": 400,
"height": 160
},
"columns": [
{
"width": 200
},
{
"width": 200
}
],
"style": {
"first_col": true,
"band_col": true,
"first_row": true
},
"style_ref": {
"local_id": "1"
},
"rows": [
{
"cells": [
{
"border": {
"top": {},
"left": {},
"bottom": {},
"right": {}
},
"text": {
"paragraphs": [
{
"style": {
"spacing": {
"line": 1.2
},
"level": 1
},
"id": "3ce72c58-0537-52f0-bcac-8239fb7975fc",
"portions": [
{
"style": {
"fontweight": "NORMAL",
"color": {
"rgb": {
"red": 255,
"green": 255,
"blue": 255
}
},
"font_name": {
"name": "Open Sans"
}
},
"text": "Name"
}
]
}
],
"properties": {
"inset": {
"top": 5,
"left": 10,
"bottom": 5,
"right": 10
}
}
}
},
{
"border": {
"top": {},
"left": {},
"bottom": {},
"right": {}
},
"text": {
"paragraphs": [
{
"style": {
"spacing": {
"line": 1.2
},
"level": 1
},
"id": "3d8f1e0a-2eb0-5adc-9452-4dc3ef1ce3cd",
"portions": [
{
"style": {
"fontweight": "NORMAL",
"color": {
"rgb": {
"red": 255,
"green": 255,
"blue": 255
}
},
"font_name": {
"name": "Open Sans"
}
},
"text": "Value"
}
]
}
],
"properties": {
"inset": {
"top": 5,
"left": 10,
"bottom": 5,
"right": 10
}
}
}
}
],
"height": 40
},
{
"cells": [
{
"border": {
"top": {},
"left": {},
"bottom": {},
"right": {}
},
"text": {
"paragraphs": [
{
"style": {
"spacing": {
"line": 1.2
},
"level": 1
},
"id": "0f1ff96c-9596-5196-b296-a149d9c8e4b3",
"portions": [
{
"style": {
"fontweight": "NORMAL",
"font_name": {
"name": "Open Sans"
}
},
"text": "Alpha"
}
]
}
],
"properties": {
"inset": {
"top": 5,
"left": 10,
"bottom": 5,
"right": 10
}
}
}
},
{
"border": {
"top": {},
"left": {},
"bottom": {},
"right": {}
},
"text": {
"paragraphs": [
{
"style": {
"spacing": {
"line": 1.2
},
"level": 1
},
"id": "2e4d2fcd-fe25-5e76-a6f3-24352e5a6b37",
"portions": [
{
"style": {
"fontweight": "NORMAL",
"font_name": {
"name": "Open Sans"
}
},
"text": "1"
}
]
}
],
"properties": {
"inset": {
"top": 5,
"left": 10,
"bottom": 5,
"right": 10
}
}
}
}
],
"height": 40
}
]
}
}
},
{
"object_id": "b5b05b26-51b4-431d-87ee-ef7b77f38d77",
"content": {
"id": "b5b05b26-51b4-431d-87ee-ef7b77f38d77",
"table": {
"layout": {
"top": 100,
"left": 80,
"width": 360,
"height": 120
},
"columns": [
{
"width": 180
},
{
"width": 180
}
],
"style": {
"band_row": true,
"first_row": true
},
"style_ref": {
"local_id": "b0000000-0000-4000-8000-0000000000ff"
},
"rows": [
{
"cells": [
{
"border": {
"top": {},
"left": {},
"bottom": {},
"right": {}
},
"text": {
"paragraphs": [
{
"style": {
"spacing": {
"line": 1.2
},
"level": 1
},
"id": "a987a1cf-d60e-5103-9f70-0d8d1f6d2a45",
"portions": [
{
"style": {
"fontweight": "NORMAL",
"color": {
"rgb": {
"red": 255,
"green": 255,
"blue": 255
}
},
"font_name": {
"name": "Open Sans"
}
},
"text": "Quarter"
}
]
}
],
"properties": {
"inset": {
"top": 5,
"left": 10,
"bottom": 5,
"right": 10
}
}
}
},
{
"border": {
"top": {},
"left": {},
"bottom": {},
"right": {}
},
"text": {
"paragraphs": [
{
"style": {
"spacing": {
"line": 1.2
},
"level": 1
},
"id": "c8c7710c-ccd8-5648-8280-c4cfb15bf757",
"portions": [
{
"style": {
"fontweight": "NORMAL",
"color": {
"rgb": {
"red": 255,
"green": 255,
"blue": 255
}
},
"font_name": {
"name": "Open Sans"
}
},
"text": "Revenue"
}
]
}
],
"properties": {
"inset": {
"top": 5,
"left": 10,
"bottom": 5,
"right": 10
}
}
}
}
],
"height": 36
},
{
"cells": [
{
"border": {
"top": {},
"left": {},
"bottom": {},
"right": {}
},
"text": {
"paragraphs": [
{
"style": {
"spacing": {
"line": 1.2
},
"level": 1
},
"id": "01e0006d-f346-5d71-9640-8b94d84c6900",
"portions": [
{
"style": {
"fontweight": "NORMAL",
"font_name": {
"name": "Open Sans"
}
},
"text": "Q1"
}
]
}
],
"properties": {
"inset": {
"top": 5,
"left": 10,
"bottom": 5,
"right": 10
}
}
}
},
{
"border": {
"top": {},
"left": {},
"bottom": {},
"right": {}
},
"text": {
"paragraphs": [
{
"style": {
"spacing": {
"line": 1.2
},
"level": 1
},
"id": "958ec7d2-de86-5f18-933b-8d17a61306fc",
"portions": [
{
"style": {
"fontweight": "NORMAL",
"font_name": {
"name": "Open Sans"
}
},
"text": "100"
}
]
}
],
"properties": {
"inset": {
"top": 5,
"left": 10,
"bottom": 5,
"right": 10
}
}
}
}
],
"height": 36
}
]
}
}
}
],
"container_id": "54ca442b-63d1-43df-bda9-9f8cd2654e70"
},
"message": "Table(s) content retrieved successfully",
"request_uri": "/api/v1/presentation/8i4vv3f345fcf907446a2bdc4e2c871fc585e/slides/54ca442b-63d1-43df-bda9-9f8cd2654e70/tables",
"status": "success"
}
Code Examples
curl -X GET "https://show.zoho.com/api/v1/presentation/{rid}/{container}/{container_id}/tables?ids={{ids}}&from=0&count=20" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
POST Insert Tables
POST https://show.zoho.com/api/v1/presentation/{rid}/{container}/{container_id}/tables
Required Scopes:
Creates one or more table objects in a slide, master, or layout. Use this endpoint to place tabular content such as comparison grids, schedules, pricing tables, or structured reports on a canvas. Each entry is a GraphicObject wrapper that uses the table branch. Define columns and rows to establish table size, and optionally include layout, style, cell text, fills, borders, and merge information. Do not send unrelated GraphicObject branches for this route. Rate limit: 30 requests/minute, with a 10-minute lockout after that.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| rid | string | Required | Resource id of the presentation. The caller must have the appropriate permission on this presentation. |
| container | string | Required | Container type that owns the object. Allowed values: slides, masters, layouts. |
| container_id | string | Required | Id of the selected container. Provide slide_id when container is slides, master_id when container is masters, or layout_id when container is layouts. |
Request Body
Interactive structure. Expand fields and select optional schema parts.
Samples
Request Body
{
"elements": [
{
"name": "Simple table",
"table": {
"layout": {
"left": 60,
"top": 80,
"width": 400,
"height": 160
},
"columns": [
{
"width": 200
},
{
"width": 200
}
],
"rows": [
{
"height": 40,
"cells": [
{
"text": {
"paragraphs": [
{
"portions": [
{
"text": "Name"
}
]
}
]
}
},
{
"text": {
"paragraphs": [
{
"portions": [
{
"text": "Value"
}
]
}
]
}
}
]
},
{
"height": 40,
"cells": [
{
"text": {
"paragraphs": [
{
"portions": [
{
"text": "Alpha"
}
]
}
]
}
},
{
"text": {
"paragraphs": [
{
"portions": [
{
"text": "1"
}
]
}
]
}
}
]
}
]
}
}
]
}
Responses
{
"data": {
"success_count": "1",
"failure_count": "0",
"results": [
{
"insert_object": {
"final_index": "140",
"object": {
"slide_object": {
"slide_id": "54ca442b-63d1-43df-bda9-9f8cd2654e70",
"object_id": "b5b05b26-51b4-431d-87ee-ef7b77f38d77"
}
}
}
}
]
},
"message": "Table(s) added successfully",
"request_uri": "/api/v1/presentation/8i4vv3f345fcf907446a2bdc4e2c871fc585e/slides/54ca442b-63d1-43df-bda9-9f8cd2654e70/tables",
"status": "success"
}
Code Examples
curl -X POST "https://show.zoho.com/api/v1/presentation/{rid}/{container}/{container_id}/tables" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"elements": [
{
"name": "Simple table",
"table": {
"layout": {
"left": 60,
"top": 80,
"width": 400,
"height": 160
},
"columns": [
{
"width": 200
},
{
"width": 200
}
],
"rows": [
{
"height": 40,
"cells": [
{
"text": {
"paragraphs": [
{
"portions": [
{
"text": "Name"
}
]
}
]
}
},
{
"text": {
"paragraphs": [
{
"portions": [
{
"text": "Value"
}
]
}
]
}
}
]
},
{
"height": 40,
"cells": [
{
"text": {
"paragraphs": [
{
"portions": [
{
"text": "Alpha"
}
]
}
]
}
},
{
"text": {
"paragraphs": [
{
"portions": [
{
"text": "1"
}
]
}
]
}
}
]
}
]
}
}
]
}'
PUT Update Tables
PUT https://show.zoho.com/api/v1/presentation/{rid}/{container}/{container_id}/tables
Required Scopes:
Updates existing table objects in the selected container. Use this endpoint to move or resize a table, change banding or table style, or patch table-level properties. Each element must include the target table id. Send only supported table facets, such as layout and style. For fine-grained cell operations, prefer the dedicated table cell, row, column, merge, or text endpoints when available. Rate limit: 60 requests/minute, with a 10-minute lockout after that.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| rid | string | Required | Resource id of the presentation. The caller must have the appropriate permission on this presentation. |
| container | string | Required | Container type that owns the object. Allowed values: slides, masters, layouts. |
| container_id | string | Required | Id of the selected container. Provide slide_id when container is slides, master_id when container is masters, or layout_id when container is layouts. |
Request Body
Interactive structure. Expand fields and select optional schema parts.
Samples
Request Body
{
"elements": [
{
"id": "a1000000-0000-4000-8000-000000000002",
"properties": {
"style": {
"first_row": true,
"last_row": true,
"band_col": true,
"fill": {
"solid": {
"color": {
"rgb": {
"red": 245,
"green": 245,
"blue": 245
}
}
}
},
"stroke": {
"type": "SOLID",
"width": 1
}
}
}
}
]
}
Responses
{
"data": {
"success_count": "1",
"failure_count": "0",
"results": [
{
"id": "71e2e9e4-996b-498a-aa4d-fd027992c47d",
"properties": {
"style": {
"table_id": "71e2e9e4-996b-498a-aa4d-fd027992c47d",
"document_id": "5000000282907",
"status": "success",
"last_saved_version": "287"
}
}
}
]
},
"message": "Table(s) updated successfully",
"request_uri": "/api/v1/presentation/8i4vv3f345fcf907446a2bdc4e2c871fc585e/slides/54ca442b-63d1-43df-bda9-9f8cd2654e70/tables",
"status": "success"
}
Code Examples
curl -X PUT "https://show.zoho.com/api/v1/presentation/{rid}/{container}/{container_id}/tables" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"elements": [
{
"id": "a1000000-0000-4000-8000-000000000002",
"properties": {
"style": {
"first_row": true,
"last_row": true,
"band_col": true,
"fill": {
"solid": {
"color": {
"rgb": {
"red": 245,
"green": 245,
"blue": 245
}
}
}
},
"stroke": {
"type": "SOLID",
"width": 1
}
}
}
}
]
}'
DELETE Remove Tables
DELETE https://show.zoho.com/api/v1/presentation/{rid}/{container}/{container_id}/tables
Required Scopes:
Deletes one or more table objects from a slide, master, or layout. Use this when the entire table should be removed from the canvas. Pass target table ids as comma-separated UUIDs in ids. Deleting a table removes all row, column, cell text, merge, and styling data attached to that object. Rate limit: 60 requests/minute, with a 5-minute lockout after that.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| rid | string | Required | Resource id of the presentation. The caller must have the appropriate permission on this presentation. |
| container | string | Required | Container type that owns the object. Allowed values: slides, masters, layouts. |
| container_id | string | Required | Id of the selected container. Provide slide_id when container is slides, master_id when container is masters, or layout_id when container is layouts. |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ids | string | Required | Comma-separated table object ids to delete. These ids select the objects to remove; the path parameters identify the container that holds them. |
Samples
Responses
{
"data": {
"success_count": "1",
"failure_count": "0",
"results": [
{
"new_revision_id": "294",
"object_id": "8d8bdb3d-d058-46d2-8df4-d3f09d30dd9f"
}
]
},
"message": "Table(s) deleted successfully",
"request_uri": "/api/v1/presentation/8i4vv3f345fcf907446a2bdc4e2c871fc585e/slides/54ca442b-63d1-43df-bda9-9f8cd2654e70/tables",
"status": "success"
}
Code Examples
curl -X DELETE "https://show.zoho.com/api/v1/presentation/{rid}/{container}/{container_id}/tables?ids={{object_id}}" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"