Frames API
Zone-root /frames endpoints (plan v10). Element type sits in the path; no element_kind query, no items[] wrapper.
GET List Frames
GET https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/frames
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| edition_id | string | Required | Unique ID of the edition. |
| space_id | string | Required | Unique ID of the Space. |
| zone_id | string | Required | Unique ID of the Zone. |
Samples
Responses
200
Default
200
With ids filter
200
Partial Success
200
Failure
404
Non-Existent Space
404
Non-Existent Zone
400
Inactive Space
400
Inactive Zone
401
Unauthorized
{
"data": {
"total_count": 5,
"frames": [
{
"meta": {
"name": "Slide Landscape",
"id": "f1f362c6-9a9f-58e5-8f47-149f741c91b8"
},
"type": "CUSTOM",
"properties": {
"layout": {
"width": 1920,
"height": 1080
},
"strokes": [
{
"width": 5,
"fill": {
"solid": {
"color": {
"rgb": {
"red": 17,
"green": 24,
"blue": 39
}
}
}
}
}
],
"fills": [
{
"solid": {
"color": {
"rgb": {
"red": 255,
"green": 255,
"blue": 255
}
}
}
}
]
}
},
{
"meta": {
"name": "Slide Portrait",
"id": "68747720-4a7f-5499-95b8-9ebf4b16fc7e"
},
"type": "CUSTOM",
"properties": {
"layout": {
"left": 2000,
"width": 1080,
"height": 1920
},
"strokes": [
{
"captype": "CAPROUND",
"width": 5,
"type": "DASH",
"fill": {
"solid": {
"color": {
"rgb": {
"red": 29,
"green": 78,
"blue": 216
}
}
}
}
}
],
"fills": [
{
"gradient": {
"stops": [
{
"color": {
"rgb": {
"red": 255,
"green": 248,
"blue": 225
}
}
},
{
"color": {
"rgb": {
"red": 255,
"green": 204,
"blue": 128
}
},
"position": 1
}
]
}
}
]
}
},
{
"meta": {
"name": "A4",
"id": "6d198740-ac2c-5ac1-b7ab-90471f922f2b"
},
"type": "CUSTOM",
"properties": {
"layout": {
"top": 2000,
"width": 794,
"height": 1123
},
"strokes": [
{
"jointype": "MITER",
"width": 4.5,
"position": "INSIDE",
"fill": {
"solid": {
"color": {
"hsb": {
"saturation": 0.85,
"brightness": 0.25,
"hue": 0.0016975309
}
}
}
}
}
],
"fills": [
{
"gradient": {
"stops": [
{
"color": {
"rgb": {
"red": 255,
"green": 255,
"blue": 255
}
}
},
{
"color": {
"rgb": {
"red": 229,
"green": 231,
"blue": 235
}
},
"position": 1
}
],
"type": "RADIAL"
}
}
]
}
},
{
"meta": {
"name": "Phone",
"id": "d2e81218-0c52-5fca-8e9b-bf68bccf38f0"
},
"type": "CUSTOM",
"properties": {
"layout": {
"top": 2000,
"left": 900,
"width": 375,
"height": 812
},
"strokes": [
{
"captype": "CAPROUND",
"width": 7,
"fill": {
"solid": {
"color": {
"rgb": {
"red": 245,
"green": 158,
"blue": 11
}
}
}
}
}
],
"fills": [
{
"gradient": {
"stops": [
{
"color": {
"rgb": {
"red": 227,
"green": 242,
"blue": 253
}
}
},
{
"color": {
"rgb": {
"red": 219,
"green": 234,
"blue": 254
}
},
"position": 0.5
},
{
"color": {
"rgb": {
"red": 147,
"green": 197,
"blue": 253
}
},
"position": 1
}
],
"type": "ANGULAR"
}
}
]
}
},
{
"meta": {
"name": "Custom",
"id": "74b0dfa1-9186-5290-a16c-89b51db3bd31"
},
"type": "CUSTOM",
"properties": {
"layout": {
"top": 2000,
"left": 1400,
"width": 600,
"height": 800
},
"strokes": [
{
"captype": "SQUARE",
"width": 6,
"position": "OUTSIDE",
"type": "SQUARE_DOT",
"fill": {
"solid": {
"color": {
"hsb": {
"saturation": 0.7,
"brightness": 0.65,
"hue": 0.0023148148
}
}
}
}
}
],
"fills": [
{
"noFill": {}
}
]
}
}
]
},
"message": "Frames fetched successfully",
"request_uri": "/vani/api/v1/editions/88136506/spaces/2830000002600126/zones/DEDA88D7-7A93-4D83-B69A-F5218927091C/frames",
"status": "success"
}
Code Examples
cURL
curl -X GET "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/frames" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
POST Insert Frames
POST https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/frames
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| edition_id | string | Required | Unique ID of the edition. |
| space_id | string | Required | Unique ID of the Space. |
| zone_id | string | Required | Unique ID of the Zone. |
Request Body
Interactive structure. Expand fields and select optional schema parts.
Samples
Request Body
JSON
{
"frames": [
{
"meta": {
"id": "a409ffba-f601-54f2-a2b6-57046407aacd",
"name": "Single Frame"
},
"type": "CUSTOM",
"properties": {
"layout": {
"left": 0,
"top": 0,
"width": 1920,
"height": 1080
},
"fills": [
{
"solid": {
"color": {
"rgb": {
"red": 245,
"green": 245,
"blue": 250
}
}
}
}
],
"strokes": [
{
"type": "SOLID",
"width": 1,
"jointype": "ROUND",
"captype": "FLAT",
"position": "CENTER",
"fill": {
"solid": {
"color": {
"hex": {
"value": "#CCCCCC"
}
}
}
}
}
]
}
}
]
}
Responses
200
Single Frame
200
Multiple Frames
404
Non-Existent Space
404
Non-Existent Zone
400
Inactive Zone
400
Empty Body
400
Malformed JSON
400
Missing 'elements' Field
400
Empty 'frames' Array
400
Frames Without Meta
401
Unauthorized
400
Missing 'frames' Field
{
"data": {
"inserted_ids": [
"a409ffba-f601-54f2-a2b6-57046407aacd"
]
},
"message": "Frames inserted successfully",
"request_uri": "/vani/api/v1/editions/88136506/spaces/2830000002600126/zones/DEDA88D7-7A93-4D83-B69A-F5218927091C/frames",
"status": "success"
}
Code Examples
cURL
curl -X POST "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/frames" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
PUT Update Frames
PUT https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/frames
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| edition_id | string | Required | Unique ID of the edition. |
| space_id | string | Required | Unique ID of the Space. |
| zone_id | string | Required | Unique ID of the Zone. |
Request Body
Interactive structure. Expand fields and select optional schema parts.
Samples
Request Body
JSON
{
"frames": [
{
"id": "f1f362c6-9a9f-58e5-8f47-149f741c91b8",
"properties": {
"layout": {
"left": 600,
"top": 400,
"width": 960,
"height": 540,
"rotate": 30,
"fliph": true,
"flipv": false
},
"fills": [
{
"solid": {
"color": {
"hex": {
"value": "#7B1F2B"
}
}
},
"alpha": 0
}
],
"strokes": [
{
"type": "DASH",
"width": 12,
"jointype": "ROUND",
"captype": "CAPROUND",
"position": "CENTER",
"fill": {
"solid": {
"color": {
"hex": {
"value": "#FF0000"
}
}
}
}
}
]
}
}
]
}
Responses
200
Single Frame
200
Multiple Frames
200
Partial Success
200
Failure
404
Non-Existent Space
404
Non-Existent Zone
400
Inactive Space
400
Inactive Zone
400
Empty Body
400
Malformed JSON
400
Missing 'frames' Field
400
Empty 'frames' Array
400
Frames Without ID
400
No Facet
401
Unauthorized
{
"data": {
"results": [
{
"id": "f1f362c6-9a9f-58e5-8f47-149f741c91b8",
"status": "success"
}
]
},
"message": "Frames updated successfully",
"request_uri": "/vani/api/v1/editions/88136506/spaces/2830000002600126/zones/051E5823-1E79-4841-BB26-31329FB388CD/frames",
"status": "success"
}
Code Examples
cURL
curl -X PUT "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/frames" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"frames": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"properties": {
"layout": {
"left": 50,
"top": 50,
"width": 240,
"height": 140
}
}
}
]
}'
DELETE Delete Frames
DELETE https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/frames
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| edition_id | string | Required | Unique ID of the edition. |
| space_id | string | Required | Unique ID of the Space. |
| zone_id | string | Required | Unique ID of the Zone. |
Request Body
Interactive structure. Expand fields and select optional schema parts.
Samples
Request Body
JSON
{
"ids": [
"a409ffba-f601-54f2-a2b6-57046407aacd"
]
}
Responses
200
Single Frame
200
Multiple Frames
200
Partial Success
200
Failure
404
Non-Existent Space
404
Non-Existent Zone
400
Inactive Space
400
Inactive Zone
400
Empty Body
400
Malformed JSON
400
Missing 'ids' Field
400
Empty 'ids' Array
401
Unauthorized
{
"data": {
"results": [
{
"frame_id": "a409ffba-f601-54f2-a2b6-57046407aacd",
"status": "success"
}
]
},
"message": "Frames deleted successfully",
"request_uri": "/vani/api/v1/editions/88136506/spaces/2830000002600126/zones/051E5823-1E79-4841-BB26-31329FB388CD/frames",
"status": "success"
}
Code Examples
cURL
curl -X DELETE "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/frames" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"ids": [
"f1f362c6-9a9f-58e5-8f47-149f741c91b8",
"68747720-4a7f-5499-95b8-9ebf4b16fc7e",
"6d198740-ac2c-5ac1-b7ab-90471f922f2b",
"d2e81218-0c52-5fca-8e9b-bf68bccf38f0",
"74b0dfa1-9186-5290-a16c-89b51db3bd31"
]
}'