Zone Operations / Navigation & Relationships
Navigation & Relationships
Traverse the zone hierarchy, resolve relationships, and navigate visually between objects.
GET
/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/relationships/find
Find related objects using deterministic relation filters and optional semantic hint
Find related objects using deterministic relation filters and optional semantic hint
OperationREAD
Rate limit60 requests / minute · per user
OAuth scopes
Vani.spaces.READPath parameters edition_id · space_id · zone_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| space_idREQUIRED | string | The unique identifier of the space |
| zone_idREQUIRED | string | The unique identifier of the zone |
Query parameters relationship_query
| Name | Type | Description |
|---|---|---|
| relationship_queryREQUIRED | string (JSON) |
`relationship_query` — JSON-encoded FindRelatedObjects request: anchor, optional scope, relation_types, relation_context, relation_query, max_depth, max_results. 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
{
"anchor": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "60712000000123456",
"frame_id": "60712000000123456"
},
"relation_context": {
"containment_context_type": "CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED"
},
"relation_query": "string",
"max_depth": "42",
"scope": {
"container_scope": {
"scope_type": "SCOPE_TYPE_UNSPECIFIED"
}
},
"relation_types": [
"RELATION_TYPE_UNSPECIFIED"
],
"max_results": "42"
}
URL-encoded, as sent
%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22relation_context%22%3A%7B%22containment_context_type%22%3A%22CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED%22%7D%2C%22relation_query%22%3A%22string%22%2C%22max_depth%22%3A%2242%22%2C%22scope%22%3A%7B%22container_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%7D%2C%22relation_types%22%3A%5B%22RELATION_TYPE_UNSPECIFIED%22%5D%2C%22max_results%22%3A%2242%22%7D |
Request
GET
curl -X GET "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/relationships/find?relationship_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22relation_context%22%3A%7B%22containment_context_type%22%3A%22CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED%22%7D%2C%22relation_query%22%3A%22string%22%2C%22max_depth%22%3A%2242%22%2C%22scope%22%3A%7B%22container_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%7D%2C%22relation_types%22%3A%5B%22RELATION_TYPE_UNSPECIFIED%22%5D%2C%22max_results%22%3A%2242%22%7D" \
-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}/zones/{zone_id}/relationships/find?relationship_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22relation_context%22%3A%7B%22containment_context_type%22%3A%22CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED%22%7D%2C%22relation_query%22%3A%22string%22%2C%22max_depth%22%3A%2242%22%2C%22scope%22%3A%7B%22container_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%7D%2C%22relation_types%22%3A%5B%22RELATION_TYPE_UNSPECIFIED%22%5D%2C%22max_results%22%3A%2242%22%7D"
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}/zones/{zone_id}/relationships/find?relationship_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22relation_context%22%3A%7B%22containment_context_type%22%3A%22CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED%22%7D%2C%22relation_query%22%3A%22string%22%2C%22max_depth%22%3A%2242%22%2C%22scope%22%3A%7B%22container_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%7D%2C%22relation_types%22%3A%5B%22RELATION_TYPE_UNSPECIFIED%22%5D%2C%22max_results%22%3A%2242%22%7D'),
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}/zones/{zone_id}/relationships/find?relationship_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22relation_context%22%3A%7B%22containment_context_type%22%3A%22CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED%22%7D%2C%22relation_query%22%3A%22string%22%2C%22max_depth%22%3A%2242%22%2C%22scope%22%3A%7B%22container_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%7D%2C%22relation_types%22%3A%5B%22RELATION_TYPE_UNSPECIFIED%22%5D%2C%22max_results%22%3A%2242%22%7D"))
.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}/zones/{zone_id}/relationships/find?relationship_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22relation_context%22%3A%7B%22containment_context_type%22%3A%22CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED%22%7D%2C%22relation_query%22%3A%22string%22%2C%22max_depth%22%3A%2242%22%2C%22scope%22%3A%7B%22container_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%7D%2C%22relation_types%22%3A%5B%22RELATION_TYPE_UNSPECIFIED%22%5D%2C%22max_results%22%3A%2242%22%7D";
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}/zones/{zone_id}/relationships/find?relationship_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22relation_context%22%3A%7B%22containment_context_type%22%3A%22CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED%22%7D%2C%22relation_query%22%3A%22string%22%2C%22max_depth%22%3A%2242%22%2C%22scope%22%3A%7B%22container_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%7D%2C%22relation_types%22%3A%5B%22RELATION_TYPE_UNSPECIFIED%22%5D%2C%22max_results%22%3A%2242%22%7D"
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": "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}/zones/{zone_id}/relationships/find",
"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}/zones/{zone_id}/relationships/find",
"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}/zones/{zone_id}/relationships/find",
"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}/zones/{zone_id}/relationships/find",
"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}/zones/{zone_id}/relationships/find",
"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
GET
/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/relationships/descendants
Get hierarchical descendants of a container via BFS traversal
Get hierarchical descendants of a container via BFS traversal
OperationREAD
Rate limit60 requests / minute · per user
OAuth scopes
Vani.spaces.READPath parameters edition_id · space_id · zone_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| space_idREQUIRED | string | The unique identifier of the space |
| zone_idREQUIRED | string | The unique identifier of the zone |
Query parameters relationship_query
| Name | Type | Description |
|---|---|---|
| relationship_queryREQUIRED | string (JSON) |
`relationship_query` — JSON-encoded GetObjectDescendants request: object, optional object_types, optional payload (max_depth, max_results, flat_selection | path_selection). 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
{
"object": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "60712000000123456",
"frame_id": "60712000000123456"
},
"object_types": [
"VANI_OBJECT_TYPE_UNSPECIFIED"
],
"payload": {
"max_depth": "42",
"max_results": "42",
"flat_selection": {
"all": true
}
}
}
URL-encoded, as sent
%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22payload%22%3A%7B%22max_depth%22%3A%2242%22%2C%22max_results%22%3A%2242%22%2C%22flat_selection%22%3A%7B%22all%22%3Atrue%7D%7D%7D |
Request
GET
curl -X GET "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/relationships/descendants?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22payload%22%3A%7B%22max_depth%22%3A%2242%22%2C%22max_results%22%3A%2242%22%2C%22flat_selection%22%3A%7B%22all%22%3Atrue%7D%7D%7D" \
-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}/zones/{zone_id}/relationships/descendants?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22payload%22%3A%7B%22max_depth%22%3A%2242%22%2C%22max_results%22%3A%2242%22%2C%22flat_selection%22%3A%7B%22all%22%3Atrue%7D%7D%7D"
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}/zones/{zone_id}/relationships/descendants?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22payload%22%3A%7B%22max_depth%22%3A%2242%22%2C%22max_results%22%3A%2242%22%2C%22flat_selection%22%3A%7B%22all%22%3Atrue%7D%7D%7D'),
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}/zones/{zone_id}/relationships/descendants?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22payload%22%3A%7B%22max_depth%22%3A%2242%22%2C%22max_results%22%3A%2242%22%2C%22flat_selection%22%3A%7B%22all%22%3Atrue%7D%7D%7D"))
.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}/zones/{zone_id}/relationships/descendants?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22payload%22%3A%7B%22max_depth%22%3A%2242%22%2C%22max_results%22%3A%2242%22%2C%22flat_selection%22%3A%7B%22all%22%3Atrue%7D%7D%7D";
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}/zones/{zone_id}/relationships/descendants?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22payload%22%3A%7B%22max_depth%22%3A%2242%22%2C%22max_results%22%3A%2242%22%2C%22flat_selection%22%3A%7B%22all%22%3Atrue%7D%7D%7D"
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": "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}/zones/{zone_id}/relationships/descendants",
"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}/zones/{zone_id}/relationships/descendants",
"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}/zones/{zone_id}/relationships/descendants",
"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}/zones/{zone_id}/relationships/descendants",
"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}/zones/{zone_id}/relationships/descendants",
"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
GET
/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/relationships/ancestors
Get ancestor chain for an object in the zone hierarchy
Get ancestor chain for an object in the zone hierarchy
OperationREAD
Rate limit60 requests / minute · per user
OAuth scopes
Vani.spaces.READPath parameters edition_id · space_id · zone_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| space_idREQUIRED | string | The unique identifier of the space |
| zone_idREQUIRED | string | The unique identifier of the zone |
Query parameters relationship_query
| Name | Type | Description |
|---|---|---|
| relationship_queryREQUIRED | string (JSON) |
`relationship_query` — JSON-encoded GetObjectAncestors request: object, optional max_levels. 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
{
"object": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "60712000000123456",
"frame_id": "60712000000123456"
},
"max_levels": "42"
}
URL-encoded, as sent
%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22max_levels%22%3A%2242%22%7D |
Request
GET
curl -X GET "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/relationships/ancestors?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22max_levels%22%3A%2242%22%7D" \
-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}/zones/{zone_id}/relationships/ancestors?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22max_levels%22%3A%2242%22%7D"
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}/zones/{zone_id}/relationships/ancestors?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22max_levels%22%3A%2242%22%7D'),
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}/zones/{zone_id}/relationships/ancestors?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22max_levels%22%3A%2242%22%7D"))
.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}/zones/{zone_id}/relationships/ancestors?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22max_levels%22%3A%2242%22%7D";
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}/zones/{zone_id}/relationships/ancestors?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22max_levels%22%3A%2242%22%7D"
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": "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}/zones/{zone_id}/relationships/ancestors",
"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}/zones/{zone_id}/relationships/ancestors",
"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}/zones/{zone_id}/relationships/ancestors",
"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}/zones/{zone_id}/relationships/ancestors",
"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}/zones/{zone_id}/relationships/ancestors",
"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
GET
/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/relationships/children
List the immediate child objects of one container (frame, group or zone root), optionally filtered by object type and windowed by range or index set. One level only - use getRelationshipDescendants for the deeper subtree.
List the immediate child objects of one container (frame, group or zone root), optionally filtered by object type and windowed by range or index set. One level only - use getRelationshipDescendants for the deeper subtree.
OperationREAD
Rate limit60 requests / minute · per user
OAuth scopes
Vani.spaces.READPath parameters edition_id · space_id · zone_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| space_idREQUIRED | string | The unique identifier of the space |
| zone_idREQUIRED | string | The unique identifier of the zone |
Query parameters relationship_query
| Name | Type | Description |
|---|---|---|
| relationship_queryREQUIRED | string (JSON) |
`relationship_query` — JSON-encoded GetObjectChildren request: object, optional object_types, optional payload (all | range | index_set, max_results). 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
{
"object": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "60712000000123456",
"frame_id": "60712000000123456"
},
"object_types": [
"VANI_OBJECT_TYPE_UNSPECIFIED"
],
"payload": {
"all": true,
"max_results": "42"
}
}
URL-encoded, as sent
%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22payload%22%3A%7B%22all%22%3Atrue%2C%22max_results%22%3A%2242%22%7D%7D |
Request
GET
curl -X GET "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/relationships/children?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22payload%22%3A%7B%22all%22%3Atrue%2C%22max_results%22%3A%2242%22%7D%7D" \
-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}/zones/{zone_id}/relationships/children?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22payload%22%3A%7B%22all%22%3Atrue%2C%22max_results%22%3A%2242%22%7D%7D"
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}/zones/{zone_id}/relationships/children?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22payload%22%3A%7B%22all%22%3Atrue%2C%22max_results%22%3A%2242%22%7D%7D'),
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}/zones/{zone_id}/relationships/children?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22payload%22%3A%7B%22all%22%3Atrue%2C%22max_results%22%3A%2242%22%7D%7D"))
.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}/zones/{zone_id}/relationships/children?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22payload%22%3A%7B%22all%22%3Atrue%2C%22max_results%22%3A%2242%22%7D%7D";
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}/zones/{zone_id}/relationships/children?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22payload%22%3A%7B%22all%22%3Atrue%2C%22max_results%22%3A%2242%22%7D%7D"
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": "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}/zones/{zone_id}/relationships/children",
"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}/zones/{zone_id}/relationships/children",
"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}/zones/{zone_id}/relationships/children",
"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}/zones/{zone_id}/relationships/children",
"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}/zones/{zone_id}/relationships/children",
"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
GET
/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/relationships/connected
Get objects connected to anchor through connector graph traversal
Get objects connected to anchor through connector graph traversal
OperationREAD
Rate limit60 requests / minute · per user
OAuth scopes
Vani.spaces.READPath parameters edition_id · space_id · zone_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| space_idREQUIRED | string | The unique identifier of the space |
| zone_idREQUIRED | string | The unique identifier of the zone |
Query parameters relationship_query
| Name | Type | Description |
|---|---|---|
| relationship_queryREQUIRED | string (JSON) |
`relationship_query` — JSON-encoded GetConnectedObjects request: anchor, optional scope (container root), optional payload (direction, max_depth, max_results). 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
{
"anchor": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "60712000000123456",
"frame_id": "60712000000123456"
},
"payload": {
"max_depth": "42",
"max_results": "42",
"direction": "CONNECTION_DIRECTION_UNSPECIFIED"
},
"scope": {
"scope_type": "SCOPE_TYPE_UNSPECIFIED"
}
}
URL-encoded, as sent
%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22payload%22%3A%7B%22max_depth%22%3A%2242%22%2C%22max_results%22%3A%2242%22%2C%22direction%22%3A%22CONNECTION_DIRECTION_UNSPECIFIED%22%7D%2C%22scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%7D |
Request
GET
curl -X GET "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/relationships/connected?relationship_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22payload%22%3A%7B%22max_depth%22%3A%2242%22%2C%22max_results%22%3A%2242%22%2C%22direction%22%3A%22CONNECTION_DIRECTION_UNSPECIFIED%22%7D%2C%22scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%7D" \
-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}/zones/{zone_id}/relationships/connected?relationship_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22payload%22%3A%7B%22max_depth%22%3A%2242%22%2C%22max_results%22%3A%2242%22%2C%22direction%22%3A%22CONNECTION_DIRECTION_UNSPECIFIED%22%7D%2C%22scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%7D"
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}/zones/{zone_id}/relationships/connected?relationship_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22payload%22%3A%7B%22max_depth%22%3A%2242%22%2C%22max_results%22%3A%2242%22%2C%22direction%22%3A%22CONNECTION_DIRECTION_UNSPECIFIED%22%7D%2C%22scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%7D'),
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}/zones/{zone_id}/relationships/connected?relationship_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22payload%22%3A%7B%22max_depth%22%3A%2242%22%2C%22max_results%22%3A%2242%22%2C%22direction%22%3A%22CONNECTION_DIRECTION_UNSPECIFIED%22%7D%2C%22scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%7D"))
.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}/zones/{zone_id}/relationships/connected?relationship_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22payload%22%3A%7B%22max_depth%22%3A%2242%22%2C%22max_results%22%3A%2242%22%2C%22direction%22%3A%22CONNECTION_DIRECTION_UNSPECIFIED%22%7D%2C%22scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%7D";
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}/zones/{zone_id}/relationships/connected?relationship_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22payload%22%3A%7B%22max_depth%22%3A%2242%22%2C%22max_results%22%3A%2242%22%2C%22direction%22%3A%22CONNECTION_DIRECTION_UNSPECIFIED%22%7D%2C%22scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%7D"
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": "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}/zones/{zone_id}/relationships/connected",
"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}/zones/{zone_id}/relationships/connected",
"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}/zones/{zone_id}/relationships/connected",
"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}/zones/{zone_id}/relationships/connected",
"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}/zones/{zone_id}/relationships/connected",
"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
GET
/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/relationships/parents
Get direct parent of an object in the zone hierarchy
Get direct parent of an object in the zone hierarchy
OperationREAD
Rate limit60 requests / minute · per user
OAuth scopes
Vani.spaces.READPath parameters edition_id · space_id · zone_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| space_idREQUIRED | string | The unique identifier of the space |
| zone_idREQUIRED | string | The unique identifier of the zone |
Query parameters relationship_query
| Name | Type | Description |
|---|---|---|
| relationship_queryREQUIRED | string (JSON) |
`relationship_query` — JSON-encoded GetObjectParents request: object. 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
{
"object": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "60712000000123456",
"frame_id": "60712000000123456"
}
}
URL-encoded, as sent
%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%7D |
Request
GET
curl -X GET "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/relationships/parents?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%7D" \
-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}/zones/{zone_id}/relationships/parents?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%7D"
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}/zones/{zone_id}/relationships/parents?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%7D'),
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}/zones/{zone_id}/relationships/parents?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%7D"))
.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}/zones/{zone_id}/relationships/parents?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%7D";
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}/zones/{zone_id}/relationships/parents?relationship_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%7D"
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": "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}/zones/{zone_id}/relationships/parents",
"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}/zones/{zone_id}/relationships/parents",
"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}/zones/{zone_id}/relationships/parents",
"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}/zones/{zone_id}/relationships/parents",
"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}/zones/{zone_id}/relationships/parents",
"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
GET
/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/relationships/evidence
Get deterministic relation evidence between two objects
Get deterministic relation evidence between two objects
OperationREAD
Rate limit60 requests / minute · per user
OAuth scopes
Vani.spaces.READPath parameters edition_id · space_id · zone_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| space_idREQUIRED | string | The unique identifier of the space |
| zone_idREQUIRED | string | The unique identifier of the zone |
Query parameters relationship_query
| Name | Type | Description |
|---|---|---|
| relationship_queryREQUIRED | string (JSON) |
`relationship_query` — JSON-encoded GetRelationEvidence request: source_object, target_object, optional relation_types and relation_context. 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
{
"target_object": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "60712000000123456",
"frame_id": "60712000000123456"
},
"source_object": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "60712000000123456",
"frame_id": "60712000000123456"
},
"relation_context": {
"containment_context_type": "CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED"
},
"relation_types": [
"RELATION_TYPE_UNSPECIFIED"
]
}
URL-encoded, as sent
%7B%22target_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22source_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22relation_context%22%3A%7B%22containment_context_type%22%3A%22CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED%22%7D%2C%22relation_types%22%3A%5B%22RELATION_TYPE_UNSPECIFIED%22%5D%7D |
Request
GET
curl -X GET "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/relationships/evidence?relationship_query=%7B%22target_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22source_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22relation_context%22%3A%7B%22containment_context_type%22%3A%22CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED%22%7D%2C%22relation_types%22%3A%5B%22RELATION_TYPE_UNSPECIFIED%22%5D%7D" \
-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}/zones/{zone_id}/relationships/evidence?relationship_query=%7B%22target_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22source_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22relation_context%22%3A%7B%22containment_context_type%22%3A%22CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED%22%7D%2C%22relation_types%22%3A%5B%22RELATION_TYPE_UNSPECIFIED%22%5D%7D"
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}/zones/{zone_id}/relationships/evidence?relationship_query=%7B%22target_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22source_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22relation_context%22%3A%7B%22containment_context_type%22%3A%22CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED%22%7D%2C%22relation_types%22%3A%5B%22RELATION_TYPE_UNSPECIFIED%22%5D%7D'),
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}/zones/{zone_id}/relationships/evidence?relationship_query=%7B%22target_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22source_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22relation_context%22%3A%7B%22containment_context_type%22%3A%22CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED%22%7D%2C%22relation_types%22%3A%5B%22RELATION_TYPE_UNSPECIFIED%22%5D%7D"))
.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}/zones/{zone_id}/relationships/evidence?relationship_query=%7B%22target_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22source_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22relation_context%22%3A%7B%22containment_context_type%22%3A%22CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED%22%7D%2C%22relation_types%22%3A%5B%22RELATION_TYPE_UNSPECIFIED%22%5D%7D";
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}/zones/{zone_id}/relationships/evidence?relationship_query=%7B%22target_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22source_object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22relation_context%22%3A%7B%22containment_context_type%22%3A%22CONTAINMENT_CONTEXT_TYPE_UNSPECIFIED%22%7D%2C%22relation_types%22%3A%5B%22RELATION_TYPE_UNSPECIFIED%22%5D%7D"
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": "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}/zones/{zone_id}/relationships/evidence",
"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}/zones/{zone_id}/relationships/evidence",
"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}/zones/{zone_id}/relationships/evidence",
"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}/zones/{zone_id}/relationships/evidence",
"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}/zones/{zone_id}/relationships/evidence",
"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
GET
/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/traversal/index
Get hierarchical index path of an object within the zone traversal order
Get hierarchical index path of an object within the zone traversal order
OperationREAD
Rate limit60 requests / minute · per user
OAuth scopes
Vani.spaces.READPath parameters edition_id · space_id · zone_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| space_idREQUIRED | string | The unique identifier of the space |
| zone_idREQUIRED | string | The unique identifier of the zone |
Query parameters traversal_query
| Name | Type | Description |
|---|---|---|
| traversal_queryREQUIRED | string (JSON) |
`traversal_query` — JSON-encoded GetTraversalIndex request: object, optional traversal_scope, optional payload (filter). 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
{
"object": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "60712000000123456",
"frame_id": "60712000000123456"
},
"traversal_scope": {
"scope_type": "SCOPE_TYPE_UNSPECIFIED"
},
"payload": {
"filter": {
"object_types": [
"VANI_OBJECT_TYPE_UNSPECIFIED"
],
"include_hidden": true,
"include_locked": true
}
}
}
URL-encoded, as sent
%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%7D%7D |
Request
GET
curl -X GET "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/traversal/index?traversal_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%7D%7D" \
-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}/zones/{zone_id}/traversal/index?traversal_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%7D%7D"
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}/zones/{zone_id}/traversal/index?traversal_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%7D%7D'),
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}/zones/{zone_id}/traversal/index?traversal_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%7D%7D"))
.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}/zones/{zone_id}/traversal/index?traversal_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%7D%7D";
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}/zones/{zone_id}/traversal/index?traversal_query=%7B%22object%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%7D%7D"
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}/zones/{zone_id}/traversal/index"
}
Invalid request - validation failed
{
"error": {
"details": {
"error_code": "IAM1031",
"message": "Invalid request - validation failed"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/traversal/index",
"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}/zones/{zone_id}/traversal/index",
"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}/zones/{zone_id}/traversal/index",
"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}/zones/{zone_id}/traversal/index",
"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}/zones/{zone_id}/traversal/index",
"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
GET
/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/traversal/sequence
Get ordered traversal neighbors from an anchor point in the zone
Get ordered traversal neighbors from an anchor point in the zone
OperationREAD
Rate limit60 requests / minute · per user
OAuth scopes
Vani.spaces.READPath parameters edition_id · space_id · zone_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| space_idREQUIRED | string | The unique identifier of the space |
| zone_idREQUIRED | string | The unique identifier of the zone |
Query parameters traversal_query
| Name | Type | Description |
|---|---|---|
| traversal_queryREQUIRED | string (JSON) |
`traversal_query` — JSON-encoded GetTraversalSequence request: anchor, optional traversal_scope, optional payload (direction, filter, max_results, wrap). 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
{
"anchor": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "60712000000123456",
"frame_id": "60712000000123456"
},
"traversal_scope": {
"scope_type": "SCOPE_TYPE_UNSPECIFIED"
},
"payload": {
"filter": {
"object_types": [
"VANI_OBJECT_TYPE_UNSPECIFIED"
],
"include_hidden": true,
"include_locked": true
},
"max_results": "42",
"wrap": true,
"direction": "TRAVERSAL_DIRECTION_UNSPECIFIED"
}
}
URL-encoded, as sent
%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%2C%22max_results%22%3A%2242%22%2C%22wrap%22%3Atrue%2C%22direction%22%3A%22TRAVERSAL_DIRECTION_UNSPECIFIED%22%7D%7D |
Request
GET
curl -X GET "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/traversal/sequence?traversal_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%2C%22max_results%22%3A%2242%22%2C%22wrap%22%3Atrue%2C%22direction%22%3A%22TRAVERSAL_DIRECTION_UNSPECIFIED%22%7D%7D" \
-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}/zones/{zone_id}/traversal/sequence?traversal_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%2C%22max_results%22%3A%2242%22%2C%22wrap%22%3Atrue%2C%22direction%22%3A%22TRAVERSAL_DIRECTION_UNSPECIFIED%22%7D%7D"
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}/zones/{zone_id}/traversal/sequence?traversal_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%2C%22max_results%22%3A%2242%22%2C%22wrap%22%3Atrue%2C%22direction%22%3A%22TRAVERSAL_DIRECTION_UNSPECIFIED%22%7D%7D'),
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}/zones/{zone_id}/traversal/sequence?traversal_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%2C%22max_results%22%3A%2242%22%2C%22wrap%22%3Atrue%2C%22direction%22%3A%22TRAVERSAL_DIRECTION_UNSPECIFIED%22%7D%7D"))
.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}/zones/{zone_id}/traversal/sequence?traversal_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%2C%22max_results%22%3A%2242%22%2C%22wrap%22%3Atrue%2C%22direction%22%3A%22TRAVERSAL_DIRECTION_UNSPECIFIED%22%7D%7D";
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}/zones/{zone_id}/traversal/sequence?traversal_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%2C%22max_results%22%3A%2242%22%2C%22wrap%22%3Atrue%2C%22direction%22%3A%22TRAVERSAL_DIRECTION_UNSPECIFIED%22%7D%7D"
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}/zones/{zone_id}/traversal/sequence"
}
Invalid request - validation failed
{
"error": {
"details": {
"error_code": "IAM1031",
"message": "Invalid request - validation failed"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/traversal/sequence",
"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}/zones/{zone_id}/traversal/sequence",
"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}/zones/{zone_id}/traversal/sequence",
"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}/zones/{zone_id}/traversal/sequence",
"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}/zones/{zone_id}/traversal/sequence",
"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
GET
/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/traversal/window
Get before/after context window around an anchor object in the zone
Get before/after context window around an anchor object in the zone
OperationREAD
Rate limit60 requests / minute · per user
OAuth scopes
Vani.spaces.READPath parameters edition_id · space_id · zone_id
| Name | Type | Description |
|---|---|---|
| edition_idREQUIRED | string | The unique identifier of the edition |
| space_idREQUIRED | string | The unique identifier of the space |
| zone_idREQUIRED | string | The unique identifier of the zone |
Query parameters traversal_query
| Name | Type | Description |
|---|---|---|
| traversal_queryREQUIRED | string (JSON) |
`traversal_query` — JSON-encoded GetTraversalWindow request: anchor, optional traversal_scope, optional payload (filter, before_count, after_count, wrap). 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
{
"anchor": {
"zone_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"object_id": "60712000000123456",
"frame_id": "60712000000123456"
},
"traversal_scope": {
"scope_type": "SCOPE_TYPE_UNSPECIFIED"
},
"payload": {
"filter": {
"object_types": [
"VANI_OBJECT_TYPE_UNSPECIFIED"
],
"include_hidden": true,
"include_locked": true
},
"after_count": "42",
"before_count": "42",
"wrap": true
}
}
URL-encoded, as sent
%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%2C%22after_count%22%3A%2242%22%2C%22before_count%22%3A%2242%22%2C%22wrap%22%3Atrue%7D%7D |
Request
GET
curl -X GET "https://api.app.vanihq.com/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/traversal/window?traversal_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%2C%22after_count%22%3A%2242%22%2C%22before_count%22%3A%2242%22%2C%22wrap%22%3Atrue%7D%7D" \
-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}/zones/{zone_id}/traversal/window?traversal_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%2C%22after_count%22%3A%2242%22%2C%22before_count%22%3A%2242%22%2C%22wrap%22%3Atrue%7D%7D"
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}/zones/{zone_id}/traversal/window?traversal_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%2C%22after_count%22%3A%2242%22%2C%22before_count%22%3A%2242%22%2C%22wrap%22%3Atrue%7D%7D'),
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}/zones/{zone_id}/traversal/window?traversal_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%2C%22after_count%22%3A%2242%22%2C%22before_count%22%3A%2242%22%2C%22wrap%22%3Atrue%7D%7D"))
.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}/zones/{zone_id}/traversal/window?traversal_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%2C%22after_count%22%3A%2242%22%2C%22before_count%22%3A%2242%22%2C%22wrap%22%3Atrue%7D%7D";
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}/zones/{zone_id}/traversal/window?traversal_query=%7B%22anchor%22%3A%7B%22zone_id%22%3A%22f47ac10b-58cc-4372-a567-0e02b2c3d479%22%2C%22object_id%22%3A%2260712000000123456%22%2C%22frame_id%22%3A%2260712000000123456%22%7D%2C%22traversal_scope%22%3A%7B%22scope_type%22%3A%22SCOPE_TYPE_UNSPECIFIED%22%7D%2C%22payload%22%3A%7B%22filter%22%3A%7B%22object_types%22%3A%5B%22VANI_OBJECT_TYPE_UNSPECIFIED%22%5D%2C%22include_hidden%22%3Atrue%2C%22include_locked%22%3Atrue%7D%2C%22after_count%22%3A%2242%22%2C%22before_count%22%3A%2242%22%2C%22wrap%22%3Atrue%7D%7D"
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}/zones/{zone_id}/traversal/window"
}
Invalid request - validation failed
{
"error": {
"details": {
"error_code": "IAM1031",
"message": "Invalid request - validation failed"
}
},
"request_uri": "/sdk/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/traversal/window",
"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}/zones/{zone_id}/traversal/window",
"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}/zones/{zone_id}/traversal/window",
"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}/zones/{zone_id}/traversal/window",
"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}/zones/{zone_id}/traversal/window",
"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