Layouts API
Manage layouts (slide templates owned by a master) in a presentation. Insert, list, update, and delete layouts.
GET List Layouts
GET https://show.zoho.com/api/v1/presentation/{rid}/layouts
Required Scopes:
Lists layouts in a presentation. Use this endpoint to discover the slide templates available in the deck before creating slides or changing a slide's layout. Pass ids to fetch specific layouts, or page through all layouts with from and count. Layout ids returned here can be used in slide insert and slide update requests.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| rid | string | Required | Resource id of the presentation. The caller must have the appropriate permission on this presentation. |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ids | string | Optional | Comma-separated layout ids to fetch. Omit this parameter to list all layouts in the selected presentation. |
| from | integer | Optional | Zero-based offset for pagination. |
| count | integer | Optional | Maximum number of records to return. Allowed range: 1-99. |
Samples
Responses
{
"data": {
"layouts": [
{
"layout_id": "10bd9a76-0b72-4f5a-8afe-b3beec80db3e",
"content": {
"layout_id": "e8f90363-905a-4d13-840f-504efd08c626",
"graphic_objects": [
{
"shape": {
"text": {
"paragraphs": [
{
"style": {
"halign": "CENTER"
},
"portions": [
{
"style": {}
}
]
}
],
"properties": {}
},
"basic": {
"snip_rectangle": {},
"type": "SNIP_RECTANGLE"
},
"properties": {
"layout": {
"top": 69,
"left": 52.444622,
"width": 854.2216,
"flipv": true,
"height": 597.4444
},
"strokes": [
{
"jointype": "MITER",
"fill": {}
}
],
"fills": [
{
"solid": {
"color": {
"rgb": {}
}
}
}
]
}
},
"id": "6ef5579e-1b5f-4777-9662-8726c2dc481a"
},
{
"id": "22c61ebe-6acc-4962-b980-2c61f3c266c0",
"picture": {
"media": {
"local_id": "55d70acf-23f3-47c5-a70e-49c8c9d27a09"
},
"properties": {
"layout": {
"top": 69.33365,
"left": 53,
"width": 852,
"height": 597.3334
}
}
}
},
{
"shape": {
"text": {
"paragraphs": [
{
"portions": [
{
"style": {},
"text": "Click to edit Master title style"
}
]
}
],
"properties": {
"valign": "BOTTOM"
}
},
"properties": {
"layout": {
"top": 229.77754,
"left": 114.33291,
"width": 720.0325,
"height": 312.88913
}
}
},
"id": "afee2455-b12f-4a6f-909b-f60611c56e49"
},
{
"shape": {
"text": {
"paragraphs": [
{
"portions": [
{
"style": {},
"text": "Click to edit Master subtitle style"
}
]
}
],
"properties": {
"valign": "BOTTOM"
}
},
"properties": {
"layout": {
"top": 112.33312,
"left": 114.33291,
"width": 720.0004,
"height": 62.22226
}
}
},
"id": "a2011fd6-fe93-41df-b4d1-3db160aca3c2"
},
{
"shape": {
"text": {
"paragraphs": [
{
"style": {
"halign": "CENTER"
},
"portions": [
{
"style": {}
}
]
}
],
"properties": {}
},
"basic": {},
"properties": {
"layout": {
"top": 54.333332,
"left": 52.444725,
"width": 854.222,
"height": 14.666666
},
"strokes": [
{
"jointype": "MITER",
"fill": {}
}
],
"fills": [
{
"solid": {
"color": {
"rgb": {}
}
}
}
]
}
},
"id": "17888a5c-6fad-408e-a622-278eb8b2f992"
},
{
"connector": {
"type": "LINE",
"stroke": {
"jointype": "MITER",
"width": 4,
"fill": {
"solid": {
"color": {
"rgb": {}
}
}
}
}
},
"id": "737d0a05-aeff-418d-a478-24ab1d4314f9"
},
{
"connector": {
"type": "LINE",
"stroke": {
"jointype": "MITER",
"width": 4,
"fill": {
"solid": {
"color": {
"rgb": {}
}
}
}
}
},
"id": "306b85b1-b37e-464d-83b8-fd11be9a1e12"
},
{
"shape": {
"text": {
"paragraphs": [
{
"style": {
"halign": "CENTER"
},
"portions": [
{
"style": {}
}
]
}
],
"properties": {}
},
"basic": {
"type": "TRIANGLE",
"triangle": {
"type": "RIGHT_ANGLED"
}
},
"properties": {
"layout": {
"rotate": 90,
"top": 625.3328,
"left": 865.66626,
"width": 41.333755,
"height": 41.333755
},
"strokes": [
{
"jointype": "MITER",
"fill": {}
}
],
"fills": [
{
"solid": {
"color": {
"rgb": {}
}
}
}
]
}
},
"id": "063d9e5b-d3ab-452e-bcf4-e0c712a2f0af"
},
{
"id": "90cb7ff0-6b0b-428d-aaab-d90261d1fc7e",
"picture": {
"media": {
"local_id": "81f11948-0410-41d0-a667-d181434b86bd"
},
"properties": {
"layout": {
"top": 624,
"left": 865.3328,
"width": 40.333755,
"height": 40.333755
}
}
}
},
{
"shape": {
"text": {
"paragraphs": [
{
"portions": [
{
"style": {},
"text": "<#>"
}
]
}
],
"properties": {
"inset": {
"top": 4.8,
"left": 9.6,
"bottom": 4.8,
"right": 9.6
}
}
},
"basic": {},
"properties": {
"layout": {
"top": 666.4444,
"left": 675.6667,
"width": 224,
"height": 38.333332
}
}
},
"id": "09C9996C-AC55-4D5F-8750-40F33EFF12F7"
},
{
"shape": {
"text": {
"paragraphs": [
{
"portions": [
{
"style": {},
"text": "Footer"
}
]
}
],
"properties": {
"inset": {
"top": 4.8,
"left": 9.6,
"bottom": 4.8,
"right": 9.6
}
}
},
"basic": {},
"properties": {
"layout": {
"top": 666.4444,
"left": 328,
"width": 304,
"height": 38.333332
}
}
},
"id": "FD47F05C-8029-496E-BC30-6BA8998056B4"
},
{
"shape": {
"text": {
"paragraphs": [
{
"portions": [
{
"style": {},
"text": "Date"
}
]
}
],
"properties": {
"inset": {
"top": 4.8,
"left": 9.6,
"bottom": 4.8,
"right": 9.6
}
}
},
"basic": {},
"properties": {
"layout": {
"top": 666.4444,
"left": 60.333332,
"width": 224,
"height": 38.333332
}
}
},
"id": "4465414B-6EFC-4207-8701-77116EFDDFBB"
}
]
}
},
{
"layout_id": "a00c3344-7fa3-4350-8df2-d8e4455eabea",
"content": {
"layout_id": "e8f90363-905a-4d13-840f-504efd08c626",
"graphic_objects": [
{
"shape": {
"text": {
"paragraphs": [
{
"portions": [
{
"style": {},
"text": "Click to edit Master title style"
}
]
}
],
"properties": {}
},
"properties": {}
},
"id": "c19ad51a-9927-4e03-9e3d-62019ff5e6d3"
},
{
"shape": {
"text": {
"paragraphs": [
{
"portions": [
{
"style": {},
"text": "Date"
}
]
}
],
"properties": {}
},
"properties": {
"layout": {
"top": 666.4444,
"left": 60.999893,
"width": 224,
"height": 38.333332
}
}
},
"id": "340bcbb4-0a8b-43ff-ba1f-fbca14df2f95"
},
{
"shape": {
"text": {
"paragraphs": [
{
"portions": [
{
"style": {},
"text": "Footer"
}
]
}
],
"properties": {}
},
"properties": {}
},
"id": "9c85a06e-13d2-49df-8da0-3fb18d725fde"
},
{
"shape": {
"text": {
"paragraphs": [
{
"portions": [
{
"style": {},
"text": "<#>"
}
]
}
],
"properties": {}
},
"properties": {}
},
"id": "695fc1ec-44cf-437b-b7bc-f2b0d6749a34"
},
{
"shape": {
"text": {
"paragraphs": [
{
"style": {
"level": 1
},
"portions": [
{
"style": {},
"text": "Click to edit Master text styles"
}
]
},
{
"style": {
"level": 2
},
"portions": [
{
"style": {},
"text": "Second level"
}
]
},
{
"style": {
"level": 3
},
"portions": [
{
"style": {},
"text": "Third level"
}
]
},
{
"style": {
"level": 4
},
"portions": [
{
"style": {},
"text": "Fourth level"
}
]
},
{
"style": {
"level": 5
},
"portions": [
{
"style": {},
"text": "Fifth level"
}
]
}
],
"properties": {}
},
"properties": {
"layout": {
"top": 162.89764,
"left": 61.228348,
"width": 832,
"height": 440
}
}
},
"id": "4af6ae95-a716-4df1-929a-4448b205b92f"
}
]
}
},
{
"layout_id": "9b3be7bb-025e-45a3-a4ee-91a308d4332d",
"content": {
"layout_id": "e8f90363-905a-4d13-840f-504efd08c626",
"graphic_objects": [
{
"shape": {
"text": {
"paragraphs": [
{
"style": {
"halign": "CENTER"
},
"portions": [
{
"style": {}
}
]
}
],
"properties": {}
},
"basic": {
"snip_rectangle": {},
"type": "SNIP_RECTANGLE"
},
"properties": {
"layout": {
"rotate": 180,
"top": 53.888294,
"left": 52.444622,
"width": 854.2216,
"flipv": true,
"height": 597.4444
},
"strokes": [
{
"jointype": "MITER",
"fill": {}
}
],
"fills": [
{
"solid": {
"color": {
"rgb": {}
}
}
}
]
}
},
"id": "aaf469c2-1cc5-488b-a861-5e5526840188"
},
{
"id": "5fcff541-5b75-4b3b-83f2-f1520495ad67",
"picture": {
"media": {
"local_id": "71c5c774-539e-4d76-b0f1-fbe286ff0e6e"
},
"properties": {
"layout": {
"rotate": 180,
"top": 54.22194,
"left": 53.111183,
"width": 852,
"height": 597.3334
}
}
}
},
{
"shape": {
"text": {
"paragraphs": [
{
"portions": [
{
"style": {},
"text": "Click to edit Master title style"
}
]
}
],
"properties": {
"valign": "BOTTOM"
}
},
"properties": {
"layout": {
"top": 156.19044,
"left": 112,
"width": 721.44446,
"height": 307.47653
}
}
},
"id": "fc66fdb0-e420-4f9c-b158-53a00bf0ca49"
},
{
"shape": {
"text": {
"paragraphs": [
{
"style": {
"level": 1
},
"portions": [
{
"style": {},
"text": "Click to edit Master text styles"
}
]
}
],
"properties": {
"valign": "TOP"
}
},
"properties": {
"layout": {
"top": 515.38403,
"left": 114.66676,
"width": 721.44446,
"height": 80.4442
}
}
},
"id": "de82acb9-f790-4e75-afc3-44e6fe4a9e92"
},
{
"shape": {
"text": {
"paragraphs": [
{
"style": {
"halign": "CENTER"
},
"portions": [
{
"style": {}
}
]
}
],
"properties": {}
},
"basic": {},
"properties": {
"layout": {
"top": 651.7777,
"left": 52.444725,
"width": 854.222,
"height": 14.666666
},
"strokes": [
{
"jointype": "MITER",
"fill": {}
}
],
"fills": [
{
"solid": {
"color": {
"rgb": {}
}
}
}
]
}
},
"id": "abacf849-5611-4c1f-94fe-e8c5b638c4ff"
},
{
"shape": {
"text": {
"paragraphs": [
{
"style": {
"halign": "CENTER"
},
"portions": [
{
"style": {}
}
]
}
],
"properties": {}
},
"basic": {
"type": "TRIANGLE",
"triangle": {
"type": "RIGHT_ANGLED"
}
},
"properties": {
"layout": {
"rotate": 270,
"top": 53.554962,
"left": 52.111393,
"width": 41.333755,
"height": 41.333755
},
"strokes": [
{
"jointype": "MITER",
"fill": {}
}
],
"fills": [
{
"solid": {
"color": {
"rgb": {}
}
}
}
]
}
},
"id": "afbed037-e622-442c-a06d-86df0b6f5934"
},
{
"id": "d87ffd90-b10d-4760-8335-31fb1ade83bb",
"picture": {
"media": {
"local_id": "5236e91a-8184-407d-a010-0a00c21ddec1"
},
"properties": {
"layout": {
"rotate": 180,
"top": 55.666138,
"left": 53.11139,
"width": 40.333755,
"height": 40.333755
}
}
}
},
{
"connector": {
"type": "LINE",
"stroke": {
"jointype": "MITER",
"width": 4,
"fill": {
"solid": {
"color": {
"rgb": {}
}
}
}
}
},
"id": "ebe088d2-8b5d-4085-a6ae-b5781323bce0"
},
{
"shape": {
"text": {
"paragraphs": [
{
"portions": [
{
"style": {},
"text": "<#>"
}
]
}
],
"properties": {
"inset": {
"top": 4.8,
"left": 9.6,
"bottom": 4.8,
"right": 9.6
}
}
},
"basic": {},
"properties": {
"layout": {
"top": 666.4444,
"left": 675.6667,
"width": 224,
"height": 38.333332
}
}
},
"id": "4BD15D0C-6A7D-402B-8EB1-2D063540D5CE"
},
{
"shape": {
"text": {
"paragraphs": [
{
"portions": [
{
"style": {},
"text": "Footer"
}
]
}
],
"properties": {
"inset": {
"top": 4.8,
"left": 9.6,
"bottom": 4.8,
"right": 9.6
}
}
},
"basic": {},
"properties": {
"layout": {
"top": 666.4444,
"left": 328,
"width": 304,
"height": 38.333332
}
}
},
"id": "B9B09D6D-6131-4A6F-BF5E-765CF650AE9C"
},
{
"shape": {
"text": {
"paragraphs": [
{
"portions": [
{
"style": {},
"text": "Date"
}
]
}
],
"properties": {
"inset": {
"top": 4.8,
"left": 9.6,
"bottom": 4.8,
"right": 9.6
}
}
},
"basic": {},
"properties": {
"layout": {
"top": 666.4444,
"left": 60.333332,
"width": 224,
"height": 38.333332
}
}
},
"id": "FFB4F7F6-350B-4E35-AD0A-BCC3458E2DD0"
}
]
}
}
]
},
"message": "Layout(s) content retrieved successfully",
"request_uri": "/api/v1/presentation/8i4vv3f345fcf907446a2bdc4e2c871fc585e/layouts",
"status": "success"
}
Code Examples
curl -X GET "https://show.zoho.com/api/v1/presentation/{rid}/layouts?ids={{ids}}&from=0&count=20" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
POST Insert Layouts
POST https://show.zoho.com/api/v1/presentation/{rid}/layouts
Required Scopes:
Creates one or more layouts in a presentation. Use this endpoint to create reusable slide templates, custom placeholders, or layout-level objects that future slides can reference. Each layout entry describes a MasterLayout. Do not send an id field in insert requests. The URL only needs the presentation id. Provide a layout type or layout body appropriate for the template you want to add.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| rid | string | Required | Resource id of the presentation. The caller must have the appropriate permission on this presentation. |
Request Body
Interactive structure. Expand fields and select optional schema parts.
Samples
Request Body
{
"layouts": [
{
"name": "Title + Content",
"layout": {
"titleContent": {
"stack": {
"type": "STACK_VERTICAL_TITLE_CONTENT"
}
}
},
"graphic_objects": [
{
"shape": {
"properties": {
"placeholder": {
"type": "TITLE"
},
"layout": {
"left": 40,
"top": 30,
"width": 880,
"height": 90
}
},
"text": {
"paragraphs": [
{
"portions": [
{
"text": "Title placeholder"
}
]
}
]
}
}
},
{
"shape": {
"properties": {
"placeholder": {
"type": "CONTENT"
},
"layout": {
"left": 40,
"top": 140,
"width": 880,
"height": 360
}
}
}
}
]
}
]
}
Responses
{
"data": {
"success_count": "1",
"failure_count": "0",
"results": [
{
"layout_id": "8e22d394-454d-4fc8-b2e2-2a93335cb863"
}
]
},
"message": "Layout(s) inserted successfully",
"request_uri": "/api/v1/presentation/8i4vv3f345fcf907446a2bdc4e2c871fc585e/layouts",
"status": "success"
}
Code Examples
curl -X POST "https://show.zoho.com/api/v1/presentation/{rid}/layouts" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"layouts": [
{
"name": "Title + Content",
"layout": {
"titleContent": {
"stack": {
"type": "STACK_VERTICAL_TITLE_CONTENT"
}
}
},
"graphic_objects": [
{
"shape": {
"properties": {
"placeholder": {
"type": "TITLE"
},
"layout": {
"left": 40,
"top": 30,
"width": 880,
"height": 90
}
},
"text": {
"paragraphs": [
{
"portions": [
{
"text": "Title placeholder"
}
]
}
]
}
}
},
{
"shape": {
"properties": {
"placeholder": {
"type": "CONTENT"
},
"layout": {
"left": 40,
"top": 140,
"width": 880,
"height": 360
}
}
}
}
]
}
]
}'
PUT Update Layouts
PUT https://show.zoho.com/api/v1/presentation/{rid}/layouts
Required Scopes:
Updates one or more existing layouts. Use this endpoint to rename layouts, change their layout definition, or adjust layout-level object structure used by slides. Each update entry must include the layout id. Changing a layout can affect slides that reference it, so list dependent slides or refresh slide previews after successful updates.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| rid | string | Required | Resource id of the presentation. The caller must have the appropriate permission on this presentation. |
Request Body
Interactive structure. Expand fields and select optional schema parts.
Samples
Request Body
{
"layouts": [
{
"id": "11111111-1111-4111-8111-111111111111",
"name": "Renamed Layout"
}
]
}
Responses
{
"data": {
"success_count": "1",
"failure_count": "0",
"results": [
{
"layout_ids": [
"10bd9a76-0b72-4f5a-8afe-b3beec80db3e"
],
"layout_id": "10bd9a76-0b72-4f5a-8afe-b3beec80db3e"
}
]
},
"message": "Layout(s) updated successfully",
"request_uri": "/api/v1/presentation/8i4vv3f345fcf907446a2bdc4e2c871fc585e/layouts",
"status": "success"
}
Code Examples
curl -X PUT "https://show.zoho.com/api/v1/presentation/{rid}/layouts" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"layouts": [
{
"id": "11111111-1111-4111-8111-111111111111",
"name": "Renamed Layout"
}
]
}'
DELETE Remove Layouts
DELETE https://show.zoho.com/api/v1/presentation/{rid}/layouts
Required Scopes:
Deletes one or more layouts from a presentation. Use this endpoint to remove unused custom layouts from a deck. Pass layout UUIDs through the ids query parameter. Delete only layouts that are safe to remove; slides referencing a deleted layout may need to be reassigned to another layout.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| rid | string | Required | Resource id of the presentation. The caller must have the appropriate permission on this presentation. |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ids | string | Required | Comma-separated layout 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": [
{
"layout_index": "32",
"layout_id": "ac09133f-f587-4b60-9c71-92a4c9868a85",
"master_index": "0",
"last_saved_version": "38"
}
]
},
"message": "Layout(s) deleted successfully",
"request_uri": "/api/v1/presentation/8i4vv3f345fcf907446a2bdc4e2c871fc585e/layouts",
"status": "success"
}
Code Examples
curl -X DELETE "https://show.zoho.com/api/v1/presentation/{rid}/layouts?ids={{layout_id}}" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"