Zone Operations / Data
Data
Low-level batch read and mutation escape hatch over zones, frames, and objects.
GET
/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/list
List zones, frames, zone-slots or objects
List zones, frames, zone-slots or objects
Lists data entities with optional pagination. Accepts either a single operation or an operations array for a batch request.
OperationREAD
Rate limit120 requests / minute · per user
OAuth scopes
Vani.spaces.READPath parameters edition_id · space_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| space_idREQUIRED | string | The unique identifier of the space |
Query parameters revision_id · operation · operations
| Name | Type | Description |
|---|---|---|
| revision_idOPTIONAL | string | Optional: specific revision to fetch; latest if empty |
| operationOPTIONAL | string (JSON) |
JSON-encoded single ListOperation document: {operation_id?, list_zones:{start_index?, max_results?, page_token?} | list_frames:{zone_id, start_index?, max_results?, page_token?} | list_zone_slots:{zone_id, start_index?, max_results?, page_token?} | list_objects:{container:{zone:{zone_id} | frame:{zone_id, frame_id}}, start_index?, max_results?, page_token?}}. Send this value as a JSON string, not as a JSON object — URL-encode the encoded JSON.
STRING CARRYING JSON URL-encode before sending
Decoded
{
"list_objects": {
"container": {
"zone": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
},
"frame": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"frame_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}
},
"start_index": 1,
"page_token": "1",
"max_results": 1
},
"list_frames": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"start_index": 1,
"page_token": "1",
"max_results": 1
},
"list_zones": {
"start_index": 1,
"page_token": "1",
"max_results": 1
},
"operation_id": "60712000000123456",
"list_zone_slots": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"start_index": 1,
"page_token": "1",
"max_results": 1
}
}
URL-encoded, as sent
%7B%22list_objects%22%3A%7B%22container%22%3A%7B%22zone%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%2C%22frame%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22frame_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%7D%2C%22start_index%22%3A1%2C%22page_token%22%3A%221%22%2C%22max_results%22%3A1%7D%2C%22list_frames%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22start_index%22%3A1%2C%22page_token%22%3A%221%22%2C%22max_results%22%3A1%7D%2C%22list_zones%22%3A%7B%22start_index%22%3A1%2C%22page_token%22%3A%221%22%2C%22max_results%22%3A1%7D%2C%22operation_id%22%3A%2260712000000123456%22%2C%22list_zone_slots%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22start_index%22%3A1%2C%22page_token%22%3A%221%22%2C%22max_results%22%3A1%7D%7D |
| operationsOPTIONAL | string (JSON) |
`operations` — JSON-encoded array of ListOperation documents for a batch request. Each element follows the same structure as the single operation param. Send this value as a JSON string, not as a JSON object — URL-encode the encoded JSON.
STRING CARRYING JSON URL-encode before sending
Decoded
[
{
"list_objects": {
"container": {
"zone": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
},
"frame": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"frame_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}
},
"start_index": 1,
"page_token": "1",
"max_results": 1
},
"list_frames": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"start_index": 1,
"page_token": "1",
"max_results": 1
},
"list_zones": {
"start_index": 1,
"page_token": "1",
"max_results": 1
},
"operation_id": "60712000000123456",
"list_zone_slots": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"start_index": 1,
"page_token": "1",
"max_results": 1
}
}
]
URL-encoded, as sent
%5B%7B%22list_objects%22%3A%7B%22container%22%3A%7B%22zone%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%2C%22frame%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22frame_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%7D%2C%22start_index%22%3A1%2C%22page_token%22%3A%221%22%2C%22max_results%22%3A1%7D%2C%22list_frames%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22start_index%22%3A1%2C%22page_token%22%3A%221%22%2C%22max_results%22%3A1%7D%2C%22list_zones%22%3A%7B%22start_index%22%3A1%2C%22page_token%22%3A%221%22%2C%22max_results%22%3A1%7D%2C%22operation_id%22%3A%2260712000000123456%22%2C%22list_zone_slots%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22start_index%22%3A1%2C%22page_token%22%3A%221%22%2C%22max_results%22%3A1%7D%7D%5D |
Request
GET
curl -X GET "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/list" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"import requests
url = "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/list"
headers = {
"Authorization": "Zoho-oauthtoken YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
data = response.json()
print(data)const https = require('https');
const url = require('url');
const options = {
...url.parse('https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/list'),
method: 'GET',
headers: {
'Authorization': 'Zoho-oauthtoken YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => data += chunk);
res.on('end', () => {
const result = JSON.parse(data);
// Process the response data
});
});
req.end();import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
public class ApiClient {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/list"))
.header("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN")
.timeout(Duration.ofSeconds(30));
.header("Content-Type", "application/json")
HttpRequest request = requestBuilder
.GET(HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}info "Making API request to: https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/list";
headers = Map();
headers.put("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN");
headers.put("Content-Type", "application/json");
response = invokeurl
[
url: "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/list"
type: GET
headers: headers
];
if (response.get("status_code") == 200) {
info "Request successful";
responseData = response.get("response");
info responseData;
} else {
info "Request failed with status: " + response.get("status_code");
info response.get("response");
}
Response
Successful response
{
"status": "success",
"data": {},
"message": "Request completed successfully",
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/list"
}
Invalid request - validation failed
{
"error": {
"details": {
"error_code": "IAM1031",
"message": "Invalid request - validation failed"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/list",
"status": "error"
}
Unauthorized - missing or invalid access token
{
"error": {
"details": {
"error_code": "IAM1100",
"message": "Unauthorized - missing or invalid access token"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/list",
"status": "error"
}
Not found - a resource named in the path does not exist, or is not visible to the caller
{
"error": {
"details": {
"error_code": "IAM1001",
"message": "Not found - a resource named in the path does not exist, or is not visible to the caller"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/list",
"status": "error"
}
Rate limit exceeded - this operation allows 120 requests per minute per user
{
"error": {
"details": {
"error_code": "IAM1055",
"message": "Rate limit exceeded - this operation allows 120 requests per minute per user"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/list",
"status": "error"
}
Internal server error - the request was well-formed but could not be completed
{
"error": {
"details": {
"error_code": "U1001",
"message": "Internal server error - the request was well-formed but could not be completed"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/list",
"status": "error"
}
Errors
5 status codes
400 Invalid request - validation failed 401 Unauthorized - missing or invalid access token 404 Not found - a resource named in the path does not exist, or is not visible to the caller 429 Rate limit exceeded - this operation allows 120 requests per minute per user 500 Internal server error - the request was well-formed but could not be completed
GET
/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/get
Get zones, frames, objects, facets or zone-slots
Get zones, frames, objects, facets or zone-slots
Reads one or more data entities \u2014 zone, frame, object, object facet, space or zone-slot \u2014 through a structured operation. Accepts either a single operation or an operations array for a batch request.
OperationREAD
Rate limit120 requests / minute · per user
OAuth scopes
Vani.spaces.READPath parameters edition_id · space_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| space_idREQUIRED | string | The unique identifier of the space |
Query parameters revision_id · operation · operations
| Name | Type | Description |
|---|---|---|
| revision_idOPTIONAL | string | Optional: specific revision to fetch; latest if empty |
| operationOPTIONAL | string (JSON) |
JSON-encoded single GetOperation document: {operation_id?, get_space:{} | get_zone:{zone_id} | get_frame:{zone_id, frame_id} | get_zone_slot:{zone_slot:{zone_id, index}} | get_object:{object:{zone_object:{zone_id, object_id} | frame_object:{zone_id, frame_id, object_id}}} | get_object_facet:{object:{...}, facet_type}}. Send this value as a JSON string, not as a JSON object — URL-encode the encoded JSON.
STRING CARRYING JSON URL-encode before sending
Decoded
{
"get_zone": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
},
"get_frame": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"frame_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
},
"operation_id": "60712000000123456",
"get_space": {},
"get_object_facet": {
"facet_type": "OBJECT_FACET_TYPE_UNSPECIFIED",
"object": {
"zone_object": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
},
"frame_object": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"frame_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}
}
},
"get_object": {
"object": {
"zone_object": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
},
"frame_object": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"frame_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}
}
},
"get_zone_slot": {
"zone_slot": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"index": 1
}
}
}
URL-encoded, as sent
%7B%22get_zone%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%2C%22get_frame%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22frame_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%2C%22operation_id%22%3A%2260712000000123456%22%2C%22get_space%22%3A%7B%7D%2C%22get_object_facet%22%3A%7B%22facet_type%22%3A%22OBJECT_FACET_TYPE_UNSPECIFIED%22%2C%22object%22%3A%7B%22zone_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%2C%22frame_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22frame_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%7D%7D%2C%22get_object%22%3A%7B%22object%22%3A%7B%22zone_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%2C%22frame_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22frame_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%7D%7D%2C%22get_zone_slot%22%3A%7B%22zone_slot%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22index%22%3A1%7D%7D%7D |
| operationsOPTIONAL | string (JSON) |
`operations` — JSON-encoded array of GetOperation documents for a batch request. Each element follows the same structure as the single operation param. Send this value as a JSON string, not as a JSON object — URL-encode the encoded JSON.
STRING CARRYING JSON URL-encode before sending
Decoded
[
{
"get_zone": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
},
"get_frame": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"frame_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
},
"operation_id": "60712000000123456",
"get_space": {},
"get_object_facet": {
"facet_type": "OBJECT_FACET_TYPE_UNSPECIFIED",
"object": {
"zone_object": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
},
"frame_object": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"frame_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}
}
},
"get_object": {
"object": {
"zone_object": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
},
"frame_object": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"frame_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}
}
},
"get_zone_slot": {
"zone_slot": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"index": 1
}
}
}
]
URL-encoded, as sent
%5B%7B%22get_zone%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%2C%22get_frame%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22frame_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%2C%22operation_id%22%3A%2260712000000123456%22%2C%22get_space%22%3A%7B%7D%2C%22get_object_facet%22%3A%7B%22facet_type%22%3A%22OBJECT_FACET_TYPE_UNSPECIFIED%22%2C%22object%22%3A%7B%22zone_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%2C%22frame_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22frame_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%7D%7D%2C%22get_object%22%3A%7B%22object%22%3A%7B%22zone_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%2C%22frame_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22frame_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%7D%7D%7D%2C%22get_zone_slot%22%3A%7B%22zone_slot%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22index%22%3A1%7D%7D%7D%5D |
Request
GET
curl -X GET "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/get" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"import requests
url = "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/get"
headers = {
"Authorization": "Zoho-oauthtoken YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
data = response.json()
print(data)const https = require('https');
const url = require('url');
const options = {
...url.parse('https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/get'),
method: 'GET',
headers: {
'Authorization': 'Zoho-oauthtoken YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => data += chunk);
res.on('end', () => {
const result = JSON.parse(data);
// Process the response data
});
});
req.end();import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
public class ApiClient {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/get"))
.header("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN")
.timeout(Duration.ofSeconds(30));
.header("Content-Type", "application/json")
HttpRequest request = requestBuilder
.GET(HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}info "Making API request to: https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/get";
headers = Map();
headers.put("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN");
headers.put("Content-Type", "application/json");
response = invokeurl
[
url: "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/get"
type: GET
headers: headers
];
if (response.get("status_code") == 200) {
info "Request successful";
responseData = response.get("response");
info responseData;
} else {
info "Request failed with status: " + response.get("status_code");
info response.get("response");
}
Response
Successful response
{
"status": "success",
"data": {},
"message": "Request completed successfully",
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/get"
}
Invalid request - validation failed
{
"error": {
"details": {
"error_code": "IAM1031",
"message": "Invalid request - validation failed"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/get",
"status": "error"
}
Unauthorized - missing or invalid access token
{
"error": {
"details": {
"error_code": "IAM1100",
"message": "Unauthorized - missing or invalid access token"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/get",
"status": "error"
}
Not found - a resource named in the path does not exist, or is not visible to the caller
{
"error": {
"details": {
"error_code": "IAM1001",
"message": "Not found - a resource named in the path does not exist, or is not visible to the caller"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/get",
"status": "error"
}
Rate limit exceeded - this operation allows 120 requests per minute per user
{
"error": {
"details": {
"error_code": "IAM1055",
"message": "Rate limit exceeded - this operation allows 120 requests per minute per user"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/get",
"status": "error"
}
Internal server error - the request was well-formed but could not be completed
{
"error": {
"details": {
"error_code": "U1001",
"message": "Internal server error - the request was well-formed but could not be completed"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/get",
"status": "error"
}
Errors
5 status codes
400 Invalid request - validation failed 401 Unauthorized - missing or invalid access token 404 Not found - a resource named in the path does not exist, or is not visible to the caller 429 Rate limit exceeded - this operation allows 120 requests per minute per user 500 Internal server error - the request was well-formed but could not be completed
POST
/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/update
Apply a single deterministic mutation operation to a Space
Apply a single deterministic mutation operation to a Space
OperationCREATE
Rate limit60 requests / minute · per user
OAuth scopes
Vani.spaces.CREATEPath parameters edition_id · space_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| space_idREQUIRED | string | The unique identifier of the space |
Request body application/json
Tick a field to put it in the sample payload, and set what it carries in the Value column. Every field is optional unless it is marked REQUIRED, and those are always sent.
| Field | Type | Description | Value |
|---|---|---|---|
| base_revision_id | string | Optimistic-concurrency revision token | |
| space_id | string | Target space identifier (echoed from URL path; optional in body) | |
| operation REQUIRED | string (JSON) | Stringified JSON of a single SpaceOperation proto: {operation_id?, and exactly one of update_space_meta | insert_zone | update_zone_meta | delete_zone | insert_frame | update_frame_meta | delete_frame | insert_zone_slot | update_zone_slot | delete_zone_slot | insert_object | update_object | delete_object | update_object_facet} (max length 500000) | |
| insert_frame | object | — one of op — choosing this clears the others | |
| zone_id | string | — | |
| frame | object | — | |
| meta | object | — | |
| name | string | — | |
| id | string | — | |
| graphic_objects | array of VaniGraphicObject | — | |
| shape | object |
—
one of graphic_object_type — choosing this clears the others
nests further into VaniShape — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| sticky_note | object |
—
one of graphic_object_type — choosing this clears the others
nests further into VaniGraphicObject_StickyNote — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| group_shape | object |
—
one of graphic_object_type — choosing this clears the others
nests further into VaniGraphicObject_GroupShape — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| database_table | object |
—
one of graphic_object_type — choosing this clears the others
nests further into DatabaseTable — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| picture | object |
—
one of graphic_object_type — choosing this clears the others
nests further into Picture — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| structure | object |
—
one of graphic_object_type — choosing this clears the others
nests further into Structure — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| domain_diagram | object |
—
one of graphic_object_type — choosing this clears the others
nests further into DomainDiagram — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| diagram | object | — one of graphic_object_type — choosing this clears the others | |
| connector | object |
—
one of graphic_object_type — choosing this clears the others
nests further into Connector — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| name | string | — | |
| database_table_view | object |
—
one of graphic_object_type — choosing this clears the others
nests further into DatabaseTableView — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| id | string | — | |
| chart | object |
—
one of graphic_object_type — choosing this clears the others
nests further into Chart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| table | object |
—
one of graphic_object_type — choosing this clears the others
nests further into Table — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| type | string |
—
FRAME_TYPE_UNSPECIFIEDA4A3A5A6A7SLIDE_LANDSCAPESLIDE_PORTRAITDEVICE_PHONEDEVICE_TABLETDEVICE_DESKTOPDEVICE_TVDEVICE_WATCHSM_TWITTER_POSTSM_TWITTER_HEADERSM_FB_POSTSM_FB_COVERSM_INSTAGRAM_POSTSM_INSTAGRAM_STORYSM_LINKEDIN_POSTSM_LINKEDIN_COVERCUSTOM
|
|
| properties | object | — | |
| strokes | array of Stroke |
—
nests further into Stroke — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| stroke_style | object |
—
nests further into AssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| shadow | object |
—
nests further into Shadow — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| reflection | object |
—
nests further into Reflection — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| effect_style | object |
—
nests further into AssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| region_id | string | — | |
| fill_style | object |
—
nests further into AssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| spacing_style | object |
—
nests further into AssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| data_binding | string | — | |
| layer_style | object |
—
nests further into AssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| layout | object |
—
nests further into Layout — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| image_style | object |
—
nests further into AssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| placeholder | object |
—
nests further into Placeholder — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| fills | array of Fill |
—
nests further into Fill — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| frame_id | string | — | |
| update_space_meta | object | — one of op — choosing this clears the others | |
| update_mask | object | — | |
| paths | array of string | — | |
| space | object | — | |
| zone_ids | array of string | — | |
| spec_version | object | — | |
| patch | string | — | |
| major | string | — | |
| minor | string | — | |
| manifest | object | — | |
| zone_refs | array of ResourceRef |
—
nests further into ResourceRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| media_refs | array of ResourceRef |
—
nests further into ResourceRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| frame_refs | array of ResourceRef |
—
nests further into ResourceRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| name | string | — | |
| id | string | — | |
| style_manifest_id | string | — | |
| delete_zone_slot | object | — one of op — choosing this clears the others | |
| zone_slot_ref | object | — | |
| zone_id | string | — | |
| index | string | — | |
| delete_zone | object | — one of op — choosing this clears the others | |
| zone_id | string | — | |
| insert_zone_slot | object | — one of op — choosing this clears the others | |
| zone_id | string | — | |
| insert_index | string | — | |
| zone_slot | object | — | |
| graphic_object | object | — one of object — choosing this clears the others | |
| shape | object |
—
one of graphic_object_type — choosing this clears the others
nests further into VaniShape — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| sticky_note | object |
—
one of graphic_object_type — choosing this clears the others
nests further into VaniGraphicObject_StickyNote — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| group_shape | object |
—
one of graphic_object_type — choosing this clears the others
nests further into VaniGraphicObject_GroupShape — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| database_table | object |
—
one of graphic_object_type — choosing this clears the others
nests further into DatabaseTable — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| picture | object |
—
one of graphic_object_type — choosing this clears the others
nests further into Picture — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| structure | object |
—
one of graphic_object_type — choosing this clears the others
nests further into Structure — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| domain_diagram | object |
—
one of graphic_object_type — choosing this clears the others
nests further into DomainDiagram — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| diagram | object | — one of graphic_object_type — choosing this clears the others | |
| connector | object |
—
one of graphic_object_type — choosing this clears the others
nests further into Connector — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| name | string | — | |
| database_table_view | object |
—
one of graphic_object_type — choosing this clears the others
nests further into DatabaseTableView — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| id | string | — | |
| chart | object |
—
one of graphic_object_type — choosing this clears the others
nests further into Chart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| table | object |
—
one of graphic_object_type — choosing this clears the others
nests further into Table — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| frame_id | string | — one of object — choosing this clears the others | |
| update_object_facet | object | — one of op — choosing this clears the others | |
| picture_filters | object | — one of facet — choosing this clears the others | |
| brightness | string | — | |
| color_mode | object | — | |
| sepia | object | — one of mode — choosing this clears the others | |
| gray_scale | object | — one of mode — choosing this clears the others | |
| duotone | object |
—
one of mode — choosing this clears the others
nests further into PictureFilters_ColorMode_Duotone — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| bilevel | object |
—
one of mode — choosing this clears the others
nests further into PictureFilters_ColorMode_Bilevel — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| contrast | string | — | |
| text_properties | object | — one of facet — choosing this clears the others | |
| text_style | object | — | |
| library | object |
—
one of source — choosing this clears the others
nests further into LibraryAssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| local_id | string | — one of source — choosing this clears the others | |
| inset | object | — | |
| top | string | — | |
| left | string | — | |
| bottom | string | — | |
| right | string | — | |
| auto_fit | string |
—
NONETEXTSHAPE
|
|
| valign | string |
—
MIDDLETOPBOTTOM
|
|
| para_style | object | — | |
| spacing | object |
—
nests further into ParaStyle_Spacing — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| level | string | — | |
| portion_style | object |
—
nests further into PortionStyle — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| halign | string |
—
LEFTCENTERRIGHTJUSTIFY
|
|
| list_style | object |
—
nests further into ParaStyle_ListStyle — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| update_mask | object | — one of one of these — choosing this clears the others | |
| paths | array of string | — | |
| properties | object | — one of facet — choosing this clears the others | |
| strokes | array of Stroke | — | |
| captype | string |
—
FLATCAPROUNDSQUARE
|
|
| jointype | string |
—
ROUNDBEVELMITER
|
|
| width | string | — | |
| position | string |
—
CENTERINSIDEOUTSIDE
|
|
| type | string |
—
SOLIDDASHROUND_DOTSQUARE_DOTLONG_DASHDASHDOTLONG_DASH_DOTLONG_DASH_DOT_DOTDASH_PATTERN
|
|
| fill | object |
—
nests further into Fill — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| dash_pattern | array of string | — | |
| stroke_style | object | — | |
| library | object |
—
one of source — choosing this clears the others
nests further into LibraryAssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| local_id | string | — one of source — choosing this clears the others | |
| shadow | object | — | |
| distance | string | — | |
| color | object |
—
nests further into Color — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| transparency | string | — | |
| angle | string | — | |
| blur | string | — | |
| type | string |
—
INNEROUTER
|
|
| reflection | object | — | |
| alpha_start | string | — | |
| distance | string | — | |
| alpha_end | string | — | |
| position_end | string | — | |
| position_start | string | — | |
| effect_style | object | — | |
| library | object |
—
one of source — choosing this clears the others
nests further into LibraryAssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| local_id | string | — one of source — choosing this clears the others | |
| region_id | string | — | |
| fill_style | object | — | |
| library | object |
—
one of source — choosing this clears the others
nests further into LibraryAssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| local_id | string | — one of source — choosing this clears the others | |
| spacing_style | object | — | |
| library | object |
—
one of source — choosing this clears the others
nests further into LibraryAssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| local_id | string | — one of source — choosing this clears the others | |
| data_binding | string | — | |
| layer_style | object | — | |
| library | object |
—
one of source — choosing this clears the others
nests further into LibraryAssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| local_id | string | — one of source — choosing this clears the others | |
| layout | object | — | |
| rotate | string | — | |
| top | string | — | |
| vertical_layout | string |
—
FILLFIXED
|
|
| left | string | — | |
| width | string | — | |
| flipv | boolean | — | |
| fliph | boolean | — | |
| constraints | object |
—
nests further into Layout_Constraints — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| height | string | — | |
| horizontal_layout | string |
—
FILLFIXED
|
|
| image_style | object | — | |
| library | object |
—
one of source — choosing this clears the others
nests further into LibraryAssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| local_id | string | — one of source — choosing this clears the others | |
| placeholder | object | — | |
| type | string |
—
TITLESUBTITLECONTENTIMAGECHARTTABLECALL_TO_ACTIONLOGO
|
|
| fills | array of Fill | — | |
| no_fill | object | — one of fill_type — choosing this clears the others | |
| solid | object |
—
one of fill_type — choosing this clears the others
nests further into Fill_SolidFill — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| gradient | object |
—
one of fill_type — choosing this clears the others
nests further into Fill_GradientFill — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| alpha | string | — | |
| picture | object |
—
one of fill_type — choosing this clears the others
nests further into Fill_PictureFill — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| object | object | — one of one of these — choosing this clears the others | |
| zone_id | string | — | |
| object_id | string | — | |
| frame_id | string | — | |
| insert_zone | object | — one of op — choosing this clears the others | |
| insert_index | string | — | |
| zone | object | — | |
| meta | object | — | |
| name | string | — | |
| id | string | — | |
| objects | array of Zone_ZoneObjectSlot | — | |
| graphic_object | object |
—
one of object — choosing this clears the others
nests further into VaniGraphicObject — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| frame_id | string | — one of object — choosing this clears the others | |
| update_frame_meta | object | — one of op — choosing this clears the others | |
| zone_id | string | — | |
| frame_meta | object | — | |
| name | string | — | |
| id | string | — | |
| update_mask | object | — | |
| paths | array of string | — | |
| frame_id | string | — | |
| delete_object | object | — one of op — choosing this clears the others | |
| object | object | — | |
| zone_id | string | — | |
| object_id | string | — | |
| frame_id | string | — | |
| update_object | object | — one of op — choosing this clears the others | |
| update_mask | object | — one of one of these — choosing this clears the others | |
| paths | array of string | — | |
| value | object | — one of one of these — choosing this clears the others | |
| shape | object | — one of graphic_object_type — choosing this clears the others | |
| shape | object |
—
one of shape_type — choosing this clears the others
nests further into Shape — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| kit | object |
—
one of shape_type — choosing this clears the others
nests further into KitShape — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| sticky_note | object | — one of graphic_object_type — choosing this clears the others | |
| layout | object |
—
nests further into Layout — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| type | string |
—
STICKY_NOTE_TYPE_UNSPECIFIEDARROWFLAGRINGPLAINCLIPPINFOLDED
|
|
| group_shape | object | — one of graphic_object_type — choosing this clears the others | |
| layout | object |
—
nests further into Layout — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| auto_layout | object |
—
nests further into AutoLayout — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| objects | array of VaniGraphicObject_GroupShape_GroupObject |
—
nests further into VaniGraphicObject_GroupShape_GroupObject — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| database_table | object | — one of graphic_object_type — choosing this clears the others | |
| layout | object |
—
nests further into Layout — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| columns | array of DatabaseTable_DatabaseColumn |
—
nests further into DatabaseTable_DatabaseColumn — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| name | string | — | |
| view_config | object |
—
nests further into ViewConfig — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| id | string | — | |
| rows | array of DatabaseTable_DatabaseRow |
—
nests further into DatabaseTable_DatabaseRow — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| picture | object | — one of graphic_object_type — choosing this clears the others | |
| media | object |
—
one of one of these — choosing this clears the others
nests further into AssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| filters | object |
—
one of one of these — choosing this clears the others
nests further into PictureFilters — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| properties | object |
—
one of one of these — choosing this clears the others
nests further into GraphicObjectProperties — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| structure | object | — one of graphic_object_type — choosing this clears the others | |
| stack | object |
—
one of structure_type — choosing this clears the others
nests further into Structure_Stack — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| kanban | object |
—
one of structure_type — choosing this clears the others
nests further into Structure_Kanban — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| mindmap | object |
—
one of structure_type — choosing this clears the others
nests further into Structure_Mindmap — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| title | string | — | |
| domain_diagram | object | — one of graphic_object_type — choosing this clears the others | |
| layout | string |
—
LAYOUT_UNSPECIFIEDTOP_DOWNLEFT_RIGHT
|
|
| dfd | object |
—
one of diagram_type — choosing this clears the others
nests further into DomainDiagram_DfdDiagram — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| uml | object |
—
one of diagram_type — choosing this clears the others
nests further into DomainDiagram_UmlDiagram — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| erd | object |
—
one of diagram_type — choosing this clears the others
nests further into DomainDiagram_ErdDiagram — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| type | string |
—
UMLDFDERD
|
|
| diagram | object | — one of graphic_object_type — choosing this clears the others | |
| connector | object | — one of graphic_object_type — choosing this clears the others | |
| connected | object |
—
nests further into Connector_ConnectedShape — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| text | object |
—
nests further into Text — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| type | string |
—
LINEELBOWCURVE
|
|
| stroke | object |
—
nests further into Stroke — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| name | string | — | |
| database_table_view | object | — one of graphic_object_type — choosing this clears the others | |
| layout | object |
—
nests further into Layout — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| grid | object | — one of form — choosing this clears the others | |
| kanban | object | — one of form — choosing this clears the others | |
| name | string | — | |
| view_config | object |
—
nests further into ViewConfig — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| id | string | — | |
| table_id | string | — | |
| id | string | — | |
| chart | object | — one of graphic_object_type — choosing this clears the others | |
| layout | object |
—
nests further into Layout — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| area | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_AreaChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| bar | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_BarChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| bubble | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_BubbleChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| line | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_LineChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| scatter | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_ScatterChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| column | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_BarChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| axes | array of Chart_ChartAxis |
—
nests further into Chart_ChartAxis — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| chart_title | object |
—
nests further into Chart_ChartTitle — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| pie | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_PieChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| table | object |
—
nests further into Table — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| doughnut | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_DoughnutChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| table | object | — one of graphic_object_type — choosing this clears the others | |
| layout | object |
—
nests further into Layout — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| columns | array of Table_TableColumn |
—
nests further into Table_TableColumn — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| style_ref | object |
—
nests further into AssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| style | object |
—
nests further into TableStyle — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| rows | array of Table_TableRow |
—
nests further into Table_TableRow — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| object | object | — one of one of these — choosing this clears the others | |
| zone_id | string | — | |
| object_id | string | — | |
| frame_id | string | — | |
| update_zone_slot | object | — one of op — choosing this clears the others | |
| zone_slot | object | — | |
| graphic_object | object | — one of object — choosing this clears the others | |
| shape | object |
—
one of graphic_object_type — choosing this clears the others
nests further into VaniShape — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| sticky_note | object |
—
one of graphic_object_type — choosing this clears the others
nests further into VaniGraphicObject_StickyNote — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| group_shape | object |
—
one of graphic_object_type — choosing this clears the others
nests further into VaniGraphicObject_GroupShape — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| database_table | object |
—
one of graphic_object_type — choosing this clears the others
nests further into DatabaseTable — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| picture | object |
—
one of graphic_object_type — choosing this clears the others
nests further into Picture — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| structure | object |
—
one of graphic_object_type — choosing this clears the others
nests further into Structure — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| domain_diagram | object |
—
one of graphic_object_type — choosing this clears the others
nests further into DomainDiagram — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| diagram | object | — one of graphic_object_type — choosing this clears the others | |
| connector | object |
—
one of graphic_object_type — choosing this clears the others
nests further into Connector — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| name | string | — | |
| database_table_view | object |
—
one of graphic_object_type — choosing this clears the others
nests further into DatabaseTableView — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| id | string | — | |
| chart | object |
—
one of graphic_object_type — choosing this clears the others
nests further into Chart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| table | object |
—
one of graphic_object_type — choosing this clears the others
nests further into Table — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| frame_id | string | — one of object — choosing this clears the others | |
| zone_slot_ref | object | — | |
| zone_id | string | — | |
| index | string | — | |
| operation_id | string | — | |
| update_zone_meta | object | — one of op — choosing this clears the others | |
| zone_id | string | — | |
| zone_meta | object | — | |
| name | string | — | |
| id | string | — | |
| update_mask | object | — | |
| paths | array of string | — | |
| delete_frame | object | — one of op — choosing this clears the others | |
| zone_id | string | — | |
| frame_id | string | — | |
| insert_object | object | — one of op — choosing this clears the others | |
| container | object | — | |
| zone | object | — one of container — choosing this clears the others | |
| zone_id | string | — | |
| index_path | object |
—
nests further into IndexPath — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| object_id | string | — | |
| frame | object | — one of container — choosing this clears the others | |
| zone_id | string | — | |
| index_path | object |
—
nests further into IndexPath — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| object_id | string | — | |
| frame_id | string | — | |
| insert_index | string | — | |
| object | object | — | |
| shape | object | — one of graphic_object_type — choosing this clears the others | |
| shape | object |
—
one of shape_type — choosing this clears the others
nests further into Shape — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| kit | object |
—
one of shape_type — choosing this clears the others
nests further into KitShape — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| sticky_note | object | — one of graphic_object_type — choosing this clears the others | |
| layout | object |
—
nests further into Layout — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| type | string |
—
STICKY_NOTE_TYPE_UNSPECIFIEDARROWFLAGRINGPLAINCLIPPINFOLDED
|
|
| group_shape | object | — one of graphic_object_type — choosing this clears the others | |
| layout | object |
—
nests further into Layout — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| auto_layout | object |
—
nests further into AutoLayout — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| objects | array of VaniGraphicObject_GroupShape_GroupObject |
—
nests further into VaniGraphicObject_GroupShape_GroupObject — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| database_table | object | — one of graphic_object_type — choosing this clears the others | |
| layout | object |
—
nests further into Layout — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| columns | array of DatabaseTable_DatabaseColumn |
—
nests further into DatabaseTable_DatabaseColumn — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| name | string | — | |
| view_config | object |
—
nests further into ViewConfig — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| id | string | — | |
| rows | array of DatabaseTable_DatabaseRow |
—
nests further into DatabaseTable_DatabaseRow — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| picture | object | — one of graphic_object_type — choosing this clears the others | |
| media | object |
—
one of one of these — choosing this clears the others
nests further into AssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| filters | object |
—
one of one of these — choosing this clears the others
nests further into PictureFilters — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| properties | object |
—
one of one of these — choosing this clears the others
nests further into GraphicObjectProperties — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| structure | object | — one of graphic_object_type — choosing this clears the others | |
| stack | object |
—
one of structure_type — choosing this clears the others
nests further into Structure_Stack — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| kanban | object |
—
one of structure_type — choosing this clears the others
nests further into Structure_Kanban — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| mindmap | object |
—
one of structure_type — choosing this clears the others
nests further into Structure_Mindmap — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| title | string | — | |
| domain_diagram | object | — one of graphic_object_type — choosing this clears the others | |
| layout | string |
—
LAYOUT_UNSPECIFIEDTOP_DOWNLEFT_RIGHT
|
|
| dfd | object |
—
one of diagram_type — choosing this clears the others
nests further into DomainDiagram_DfdDiagram — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| uml | object |
—
one of diagram_type — choosing this clears the others
nests further into DomainDiagram_UmlDiagram — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| erd | object |
—
one of diagram_type — choosing this clears the others
nests further into DomainDiagram_ErdDiagram — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| type | string |
—
UMLDFDERD
|
|
| diagram | object | — one of graphic_object_type — choosing this clears the others | |
| connector | object | — one of graphic_object_type — choosing this clears the others | |
| connected | object |
—
nests further into Connector_ConnectedShape — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| text | object |
—
nests further into Text — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| type | string |
—
LINEELBOWCURVE
|
|
| stroke | object |
—
nests further into Stroke — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| name | string | — | |
| database_table_view | object | — one of graphic_object_type — choosing this clears the others | |
| layout | object |
—
nests further into Layout — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| grid | object | — one of form — choosing this clears the others | |
| kanban | object | — one of form — choosing this clears the others | |
| name | string | — | |
| view_config | object |
—
nests further into ViewConfig — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| id | string | — | |
| table_id | string | — | |
| id | string | — | |
| chart | object | — one of graphic_object_type — choosing this clears the others | |
| layout | object |
—
nests further into Layout — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| area | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_AreaChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| bar | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_BarChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| bubble | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_BubbleChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| line | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_LineChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| scatter | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_ScatterChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| column | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_BarChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| axes | array of Chart_ChartAxis |
—
nests further into Chart_ChartAxis — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| chart_title | object |
—
nests further into Chart_ChartTitle — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| pie | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_PieChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| table | object |
—
nests further into Table — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| doughnut | object |
—
one of chart_type — choosing this clears the others
nests further into Chart_DoughnutChart — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| table | object | — one of graphic_object_type — choosing this clears the others | |
| layout | object |
—
nests further into Layout — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| columns | array of Table_TableColumn |
—
nests further into Table_TableColumn — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| style_ref | object |
—
nests further into AssetRef — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| style | object |
—
nests further into TableStyle — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
|
| rows | array of Table_TableRow |
—
nests further into Table_TableRow — this shape is recursive; see the Schema Catalog or the OpenAPI document
|
Request
POST
curl -X POST "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/update" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"operation": "{\"update_space_meta\":{\"update_mask\":{\"paths\":[\"string\"]},\"space\":{\"zone_ids\":[\"string\"],\"spec_version\":{\"patch\":\"42\",\"major\":\"42\",\"minor\":\"42\"},\"manifest\":{\"zone_refs\":[{\"content_type\":\"string\",\"id\":\"string\",\"uri\":\"string\"}],\"media_refs\":[{\"content_type\":\"string\",\"id\":\"string\",\"uri\":\"string\"}],\"frame_refs\":[{\"content_type\":\"string\",\"id\":\"string\",\"uri\":\"string\"}]},\"name\":\"Sample name\",\"id\":\"60712000000123456\",\"style_manifest_id\":\"60712000000123456\"}},\"operation_id\":\"60712000000123456\"}",
"base_revision_id": "60712000000123456",
"space_id": "60712000000123456"
}'import requests
url = "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/update"
headers = {
"Authorization": "Zoho-oauthtoken YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
}
data = {
"operation": "{\"update_space_meta\":{\"update_mask\":{\"paths\":[\"string\"]},\"space\":{\"zone_ids\":[\"string\"],\"spec_version\":{\"patch\":\"42\",\"major\":\"42\",\"minor\":\"42\"},\"manifest\":{\"zone_refs\":[{\"content_type\":\"string\",\"id\":\"string\",\"uri\":\"string\"}],\"media_refs\":[{\"content_type\":\"string\",\"id\":\"string\",\"uri\":\"string\"}],\"frame_refs\":[{\"content_type\":\"string\",\"id\":\"string\",\"uri\":\"string\"}]},\"name\":\"Sample name\",\"id\":\"60712000000123456\",\"style_manifest_id\":\"60712000000123456\"}},\"operation_id\":\"60712000000123456\"}",
"base_revision_id": "60712000000123456",
"space_id": "60712000000123456"
}
response = requests.post(url, headers=headers, json=data)
data = response.json()
print(data)const https = require('https');
const url = require('url');
const options = {
...url.parse('https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/update'),
method: 'POST',
headers: {
'Authorization': 'Zoho-oauthtoken YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => data += chunk);
res.on('end', () => {
const result = JSON.parse(data);
// Process the response data
});
});
req.write(JSON.stringify({
"operation": "{\"update_space_meta\":{\"update_mask\":{\"paths\":[\"string\"]},\"space\":{\"zone_ids\":[\"string\"],\"spec_version\":{\"patch\":\"42\",\"major\":\"42\",\"minor\":\"42\"},\"manifest\":{\"zone_refs\":[{\"content_type\":\"string\",\"id\":\"string\",\"uri\":\"string\"}],\"media_refs\":[{\"content_type\":\"string\",\"id\":\"string\",\"uri\":\"string\"}],\"frame_refs\":[{\"content_type\":\"string\",\"id\":\"string\",\"uri\":\"string\"}]},\"name\":\"Sample name\",\"id\":\"60712000000123456\",\"style_manifest_id\":\"60712000000123456\"}},\"operation_id\":\"60712000000123456\"}",
"base_revision_id": "60712000000123456",
"space_id": "60712000000123456"
}));
req.end();import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
public class ApiClient {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/update"))
.header("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN")
.timeout(Duration.ofSeconds(30));
.header("Content-Type", "application/json")
String requestBody = "{\"operation\":\"{\\"update_space_meta\\":{\\"update_mask\\":{\\"paths\\":[\\"string\\"]},\\"space\\":{\\"zone_ids\\":[\\"string\\"],\\"spec_version\\":{\\"patch\\":\\"42\\",\\"major\\":\\"42\\",\\"minor\\":\\"42\\"},\\"manifest\\":{\\"zone_refs\\":[{\\"content_type\\":\\"string\\",\\"id\\":\\"string\\",\\"uri\\":\\"string\\"}],\\"media_refs\\":[{\\"content_type\\":\\"string\\",\\"id\\":\\"string\\",\\"uri\\":\\"string\\"}],\\"frame_refs\\":[{\\"content_type\\":\\"string\\",\\"id\\":\\"string\\",\\"uri\\":\\"string\\"}]},\\"name\\":\\"Sample name\\",\\"id\\":\\"60712000000123456\\",\\"style_manifest_id\\":\\"60712000000123456\\"}},\\"operation_id\\":\\"60712000000123456\\"}\",\"base_revision_id\":\"60712000000123456\",\"space_id\":\"60712000000123456\"}";
HttpRequest request = requestBuilder
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}info "Making API request to: https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/update";
headers = Map();
headers.put("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN");
headers.put("Content-Type", "application/json");
requestData = {"operation": "{\"update_space_meta\":{\"update_mask\":{\"paths\":[\"string\"]},\"space\":{\"zone_ids\":[\"string\"],\"spec_version\":{\"patch\":\"42\",\"major\":\"42\",\"minor\":\"42\"},\"manifest\":{\"zone_refs\":[{\"content_type\":\"string\",\"id\":\"string\",\"uri\":\"string\"}],\"media_refs\":[{\"content_type\":\"string\",\"id\":\"string\",\"uri\":\"string\"}],\"frame_refs\":[{\"content_type\":\"string\",\"id\":\"string\",\"uri\":\"string\"}]},\"name\":\"Sample name\",\"id\":\"60712000000123456\",\"style_manifest_id\":\"60712000000123456\"}},\"operation_id\":\"60712000000123456\"}", "base_revision_id": "60712000000123456", "space_id": "60712000000123456"};
response = invokeurl
[
url: "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/update"
type: POST
headers: headers
parameters: requestData
];
if (response.get("status_code") == 200) {
info "Request successful";
responseData = response.get("response");
info responseData;
} else {
info "Request failed with status: " + response.get("status_code");
info response.get("response");
}{
"operation": "{\"update_space_meta\":{\"update_mask\":{\"paths\":[\"string\"]},\"space\":{\"zone_ids\":[\"string\"],\"spec_version\":{\"patch\":\"42\",\"major\":\"42\",\"minor\":\"42\"},\"manifest\":{\"zone_refs\":[{\"content_type\":\"string\",\"id\":\"string\",\"uri\":\"string\"}],\"media_refs\":[{\"content_type\":\"string\",\"id\":\"string\",\"uri\":\"string\"}],\"frame_refs\":[{\"content_type\":\"string\",\"id\":\"string\",\"uri\":\"string\"}]},\"name\":\"Sample name\",\"id\":\"60712000000123456\",\"style_manifest_id\":\"60712000000123456\"}},\"operation_id\":\"60712000000123456\"}",
"base_revision_id": "60712000000123456",
"space_id": "60712000000123456"
}
Response
Successful response
{
"status": "string",
"data": {},
"message": "string",
"request_uri": "string"
}
Invalid request - validation failed
{
"error": {
"details": {
"error_code": "IAM1031",
"message": "Invalid request - validation failed"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/update",
"status": "error"
}
Unauthorized - missing or invalid access token
{
"error": {
"details": {
"error_code": "IAM1100",
"message": "Unauthorized - missing or invalid access token"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/update",
"status": "error"
}
Not found - a resource named in the path does not exist, or is not visible to the caller
{
"error": {
"details": {
"error_code": "IAM1001",
"message": "Not found - a resource named in the path does not exist, or is not visible to the caller"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/update",
"status": "error"
}
Rate limit exceeded - this operation allows 60 requests per minute per user
{
"error": {
"details": {
"error_code": "IAM1055",
"message": "Rate limit exceeded - this operation allows 60 requests per minute per user"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/update",
"status": "error"
}
Internal server error - the request was well-formed but could not be completed
{
"error": {
"details": {
"error_code": "U1001",
"message": "Internal server error - the request was well-formed but could not be completed"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/update",
"status": "error"
}
Errors
5 status codes
400 Invalid request - validation failed 401 Unauthorized - missing or invalid access token 404 Not found - a resource named in the path does not exist, or is not visible to the caller 429 Rate limit exceeded - this operation allows 60 requests per minute per user 500 Internal server error - the request was well-formed but could not be completed
POST
/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/batchUpdate
Apply multiple deterministic mutation operations to a Space in order
Apply multiple deterministic mutation operations to a Space in order
OperationCREATE
Rate limit30 requests / minute · per user
OAuth scopes
Vani.spaces.CREATEPath parameters edition_id · space_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| space_idREQUIRED | string | The unique identifier of the space |
Request body application/json
Tick a field to put it in the sample payload, and set what it carries in the Value column. Every field is optional unless it is marked REQUIRED, and those are always sent.
| Field | Type | Description | Value |
|---|---|---|---|
| operations REQUIRED | array of string | Array of SpaceOperation proto JSON objects (min 1, max 1) | |
| apply_mode | string |
Batch execution strategy; defaults to BEST_EFFORT when omitted (max length 50)
BATCH_APPLY_MODE_UNSPECIFIEDATOMICBEST_EFFORT
|
|
| base_revision_id | string | Optimistic-concurrency revision token | |
| space_id | string | Target space identifier (echoed from URL path; optional in body) |
Request
POST
curl -X POST "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/batchUpdate" \
-H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"operations": [
"{\"update_space_meta\":{\"update_mask\":{\"paths\":[\"string\"]},\"space\":{\"zone_ids\":[\"string\"],\"spec_version\":{\"patch\":\"42\",\"major\":\"42\",\"minor\":\"42\"},\"manifest\":{\"zone_refs\":[{}],\"media_refs\":[{}],\"frame_refs\":[{}]},\"name\":\"Sample name\",\"id\":\"60712000000123456\",\"style_manifest_id\":\"60712000000123456\"}},\"operation_id\":\"60712000000123456\"}"
],
"apply_mode": "BEST_EFFORT",
"base_revision_id": "60712000000123456",
"space_id": "60712000000123456"
}'import requests
url = "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/batchUpdate"
headers = {
"Authorization": "Zoho-oauthtoken YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
}
data = {
"operations": [
"{\"update_space_meta\":{\"update_mask\":{\"paths\":[\"string\"]},\"space\":{\"zone_ids\":[\"string\"],\"spec_version\":{\"patch\":\"42\",\"major\":\"42\",\"minor\":\"42\"},\"manifest\":{\"zone_refs\":[{}],\"media_refs\":[{}],\"frame_refs\":[{}]},\"name\":\"Sample name\",\"id\":\"60712000000123456\",\"style_manifest_id\":\"60712000000123456\"}},\"operation_id\":\"60712000000123456\"}"
],
"apply_mode": "BEST_EFFORT",
"base_revision_id": "60712000000123456",
"space_id": "60712000000123456"
}
response = requests.post(url, headers=headers, json=data)
data = response.json()
print(data)const https = require('https');
const url = require('url');
const options = {
...url.parse('https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/batchUpdate'),
method: 'POST',
headers: {
'Authorization': 'Zoho-oauthtoken YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
}
};
const req = https.request(options, (res) => {
let data = '';
res.on('data', (chunk) => data += chunk);
res.on('end', () => {
const result = JSON.parse(data);
// Process the response data
});
});
req.write(JSON.stringify({
"operations": [
"{\"update_space_meta\":{\"update_mask\":{\"paths\":[\"string\"]},\"space\":{\"zone_ids\":[\"string\"],\"spec_version\":{\"patch\":\"42\",\"major\":\"42\",\"minor\":\"42\"},\"manifest\":{\"zone_refs\":[{}],\"media_refs\":[{}],\"frame_refs\":[{}]},\"name\":\"Sample name\",\"id\":\"60712000000123456\",\"style_manifest_id\":\"60712000000123456\"}},\"operation_id\":\"60712000000123456\"}"
],
"apply_mode": "BEST_EFFORT",
"base_revision_id": "60712000000123456",
"space_id": "60712000000123456"
}));
req.end();import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.time.Duration;
public class ApiClient {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/batchUpdate"))
.header("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN")
.timeout(Duration.ofSeconds(30));
.header("Content-Type", "application/json")
String requestBody = "{\"operations\":[\"{\\"update_space_meta\\":{\\"update_mask\\":{\\"paths\\":[\\"string\\"]},\\"space\\":{\\"zone_ids\\":[\\"string\\"],\\"spec_version\\":{\\"patch\\":\\"42\\",\\"major\\":\\"42\\",\\"minor\\":\\"42\\"},\\"manifest\\":{\\"zone_refs\\":[{}],\\"media_refs\\":[{}],\\"frame_refs\\":[{}]},\\"name\\":\\"Sample name\\",\\"id\\":\\"60712000000123456\\",\\"style_manifest_id\\":\\"60712000000123456\\"}},\\"operation_id\\":\\"60712000000123456\\"}\"],\"apply_mode\":\"BEST_EFFORT\",\"base_revision_id\":\"60712000000123456\",\"space_id\":\"60712000000123456\"}";
HttpRequest request = requestBuilder
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}info "Making API request to: https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/batchUpdate";
headers = Map();
headers.put("Authorization", "Zoho-oauthtoken YOUR_ACCESS_TOKEN");
headers.put("Content-Type", "application/json");
requestData = {"operations": {"{\"update_space_meta\":{\"update_mask\":{\"paths\":[\"string\"]},\"space\":{\"zone_ids\":[\"string\"],\"spec_version\":{\"patch\":\"42\",\"major\":\"42\",\"minor\":\"42\"},\"manifest\":{\"zone_refs\":[{}],\"media_refs\":[{}],\"frame_refs\":[{}]},\"name\":\"Sample name\",\"id\":\"60712000000123456\",\"style_manifest_id\":\"60712000000123456\"}},\"operation_id\":\"60712000000123456\"}"}, "apply_mode": "BEST_EFFORT", "base_revision_id": "60712000000123456", "space_id": "60712000000123456"};
response = invokeurl
[
url: "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/batchUpdate"
type: POST
headers: headers
parameters: requestData
];
if (response.get("status_code") == 200) {
info "Request successful";
responseData = response.get("response");
info responseData;
} else {
info "Request failed with status: " + response.get("status_code");
info response.get("response");
}{
"operations": [
"{\"update_space_meta\":{\"update_mask\":{\"paths\":[\"string\"]},\"space\":{\"zone_ids\":[\"string\"],\"spec_version\":{\"patch\":\"42\",\"major\":\"42\",\"minor\":\"42\"},\"manifest\":{\"zone_refs\":[{}],\"media_refs\":[{}],\"frame_refs\":[{}]},\"name\":\"Sample name\",\"id\":\"60712000000123456\",\"style_manifest_id\":\"60712000000123456\"}},\"operation_id\":\"60712000000123456\"}"
],
"apply_mode": "BEST_EFFORT",
"base_revision_id": "60712000000123456",
"space_id": "60712000000123456"
}
Response
Successful response
{
"status": "string",
"data": {},
"message": "string",
"request_uri": "string"
}
Invalid request - validation failed
{
"error": {
"details": {
"error_code": "IAM1031",
"message": "Invalid request - validation failed"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/batchUpdate",
"status": "error"
}
Unauthorized - missing or invalid access token
{
"error": {
"details": {
"error_code": "IAM1100",
"message": "Unauthorized - missing or invalid access token"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/batchUpdate",
"status": "error"
}
Not found - a resource named in the path does not exist, or is not visible to the caller
{
"error": {
"details": {
"error_code": "IAM1001",
"message": "Not found - a resource named in the path does not exist, or is not visible to the caller"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/batchUpdate",
"status": "error"
}
Rate limit exceeded - this operation allows 30 requests per minute per user
{
"error": {
"details": {
"error_code": "IAM1055",
"message": "Rate limit exceeded - this operation allows 30 requests per minute per user"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/batchUpdate",
"status": "error"
}
Internal server error - the request was well-formed but could not be completed
{
"error": {
"details": {
"error_code": "U1001",
"message": "Internal server error - the request was well-formed but could not be completed"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/data/batchUpdate",
"status": "error"
}
Errors
5 status codes
400 Invalid request - validation failed 401 Unauthorized - missing or invalid access token 404 Not found - a resource named in the path does not exist, or is not visible to the caller 429 Rate limit exceeded - this operation allows 30 requests per minute per user 500 Internal server error - the request was well-formed but could not be completed