ZONES API
Manage resources and operations related to Zones.
GET Fetch Zones
GET https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/meta
Required Scopes:
vani.spaces.read
Retrieves metadata of a Zone for a specific Space, typically used to access its structure and details.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| edition_id | string | path | Required | The unique ID of the edition. |
| space_id | string | path | Required | The unique ID of the Space. |
Responses
200
Success
200
Using Filter Fields
401
Unauthorized
Success - Response
{
"data": {
"zones_info": {
"zone_meta": {
"598356E6-5F86-45FA-A7D5-ED8BB6D40DAE": {
"created_time": "Tue, 04 Feb 2025, 11:34:28",
"last_modified_time": "Tue, 04 Feb 2025, 11:34:39",
"zone_name": "Zone 3",
"space_id": "1505000000022005",
"author_zuid": "96384499",
"last_author_zuid": "96384499",
"status": "ACTIVE"
},
"0e1e3a8a-a115-463e-bdb6-f540ab37eeb6": {
"created_time": "Tue, 28 Jan 2025, 11:59:50",
"last_modified_time": "Tue, 28 Jan 2025, 19:34:28",
"zone_name": "Zone 1",
"space_id": "1505000000022005",
"author_zuid": "96384499",
"last_author_zuid": "96384499",
"status": "ACTIVE"
},
"6F961124-4598-47D6-9BDA-1705DFBA07D7": {
"created_time": "Tue, 04 Feb 2025, 11:34:26",
"last_modified_time": "Tue, 04 Feb 2025, 11:34:35",
"zone_name": "Zone 2",
"space_id": "1505000000022005",
"author_zuid": "96384499",
"last_author_zuid": "96384499",
"status": "ACTIVE"
}
},
"zone_order": [
"0e1e3a8a-a115-463e-bdb6-f540ab37eeb6",
"6F961124-4598-47D6-9BDA-1705DFBA07D7",
"598356E6-5F86-45FA-A7D5-ED8BB6D40DAE"
]
}
},
"message": "Zone metadata fetched successfully.",
"request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000022005/zones/meta",
"status": "success"
}
Code Examples
cURL
curl -X GET "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/meta" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "x-vani-apikey: YOUR_API_KEY" \
-H "Content-Type: application/json"
GET Fetch Zone
GET https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/meta
Required Scopes:
vani.spaces.read
Retrieves metadata associated with a specific zone in a given space.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| edition_id | string | path | Required | No description available |
| space_id | string | path | Required | No description available |
| zone_id | string | path | Required | No description available |
Responses
200
Success
403
Restricted Zone
400
Zone Inactive
401
Unauthorized
Success - Response
{
"data": {
"zone_info": {
"created_time": "Tue, 15 Jul 2025, 10:49:13",
"zone_id": "c606cdb1-ae46-47a6-847b-0a36caf9f797",
"last_modified_time": "Tue, 29 Jul 2025, 13:46:46",
"zone_key": "3009000000701095",
"zone_name": "Zone 1",
"space_id": "3009000000701079",
"author_zuid": "96384499",
"last_author_zuid": "96384499",
"status": "ACTIVE"
}
},
"message": "Zone metadata fetched successfully.",
"request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000701079/zones/c606cdb1-ae46-47a6-847b-0a36caf9f797/meta",
"status": "success"
}
Code Examples
cURL
curl -X GET "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/meta" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "x-vani-apikey: YOUR_API_KEY" \
-H "Content-Type: application/json"
POST Zone Creation
POST https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones
Required Scopes:
vani.spaces.create
Creates a new Zone within a specific Space in an edition.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| edition_id | string | path | Required | The unique ID of the edition. |
| space_id | string | path | Required | The unique ID of the Space. |
| create_zone | string | body | Required | A JSON object containing the zone_name parameter to define the new Zone's name. |
| zone_name | string | body | Required | The name of the Zone to be created |
| template_id | string | body | Based on Request | The ID of the template to use for creating the zone. The zone will follow the structure defined in the selected template. |
Request Body
JSON
{
"create_zone": {
"zone_name": "Zone 2"
}
}
Responses
200
Success
200
Success: Zone Created Using Template
404
Template Not Found
409
Maximum Zone Limit Reached
401
Unauthorized
Success - Response
{
"data": {
"zone_info": {
"created_time": "Fri, 25 Jul 2025, 06:01:52",
"zone_id": "ee01ded6-158e-4729-99b0-257ab23be6d1",
"last_modified_time": "Fri, 25 Jul 2025, 06:01:52",
"zone_name": "Zone 2",
"space_id": "4855000000088149",
"last_author_zuid": "888015717",
"author_zuid": "888015717",
"status": "ACTIVE"
}
},
"message": "Zone created successfully.",
"request_uri": "/vani/api/v1/editions/888012145/spaces/4855000000088149/zones",
"status": "success"
}
Code Examples
cURL
curl -X POST "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "x-vani-apikey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"create_zone": {
"zone_name": "Zone 6"
}
}'
POST Zone Duplicate
POST https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/duplicate
Required Scopes:
vani.spaces.create
Duplicate a specific Zone into an existing Space.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| edition_id | string | path | Required | The unique ID of the edition. |
| space_id | string | path | Required | The unique ID of the Space. |
| zone_id | string | path | Required | The unique ID of the Zone to duplicate. |
| duplicate_zone | string | body | Required | A JSON object that defines the duplication details for the Zone. |
| destination_type | string | body | Required |
The type of destination for the duplicate Zone. Allowed values: EXISTING_SPACE or NEW_SPACE or SAME_SPACE.
|
| deep_copy | string | body | Based on Request | When set to true, copies all versions from the source zone to the duplicated zone. |
| copy_comments | string | body | Based on Request | When set to true, copies all comments from the source zone to the duplicated zone. Comments are not copied when duplicating a specific zone version. |
| copy_members | string | body | Based on Request | When set to true, copies all members from the source zone to the duplicated zone. Applicable only for duplication within the same space. |
| destination_space_id | string | body | Based on Request |
The ID of the existing Space where the Zone should be duplicated. Required only when destination_type is EXISTING_SPACE.
|
| zone_name | string | body | Based on Request |
The name to assign to the duplicated Zone. Applicable only when destination_type is EXISTING_SPACE or SAME_SPACE.
|
| version_id | string | body | Based on Request | The ID of the specific Zone version to duplicate. |
| team_id | string | body | Based on Request |
The ID of the team where the Space will be created when destination_type is NEW_SPACE.
|
| space_name | string | body | Based on Request |
The name for the new Space to be created when destination_type is NEW_SPACE.
|
Request Body
JSON
{
"duplicate_zone": {
"destination_type": "SAME_SPACE"
}
}
Responses
200
Zone Duplicated in the Same Space
200
Zone Duplicated in the Same Space with All Versions
200
Zone Duplicated in the Same Space with Comments
200
Zone Duplicated in the Same Space with Members
404
Zone Not Found in the Same Space
401
Unauthorized to Duplicate Zone in the Same Space
200
Zone Duplicated in an Existing Space
200
Zone Duplicated in an Existing Space with All Versions
200
Zone Duplicated in an Existing Space with Comments
200
Zone Duplicated in an Existing Space with a New Zone Name
200
Zone Duplicated in an Existing Space Using Version ID
404
Zone Not Found in the Existing Space
401
Unauthorized to Duplicate Zone in an Existing Space
200
Zone Duplicated into a New Space
200
Zone Duplicated into a New Space with All Versions
200
NEW SPACE - with comments
200
Zone Duplicated into a New Space with Space Name
200
Zone Duplicated into a New Space Using Version ID
404
Zone Not Found
401
Unauthorized to Duplicate Zone into a New Space
Zone Duplicated in the Same Space - Response
{
"data": {
"zone_id": "f721081a-6208-4058-95a5-fe4d787db67d",
"space_id": 693000000562161
},
"message": "Zone duplicated successfully",
"request_uri": "/vani/api/v1/editions/75918186/spaces/693000000562161/zones/8915a5e7-ba1a-4ef9-8f25-75a873ff7f10/duplicate",
"status": "success"
}
Code Examples
cURL
curl -X POST "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/duplicate" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "x-vani-apikey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"duplicate_zone": {
"destination_type": "SAME_SPACE"
}
}'
POST Zone Move
POST https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/move
Required Scopes:
vani.spaces.create
Move a specific Zone from one Space to another.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| edition_id | string | path | Required | The unique ID of the edition. |
| space_id | string | path | Required | The unique ID of the Space. |
| zone_id | string | path | Required | The unique ID of the Zone to move. |
| move_zone | string | body | Required | A JSON object that defines where and how the Zone should be moved. |
| destination_type | string | body | Required |
The type of destination for the duplicate Zone. Allowed values: EXISTING_SPACE or NEW_SPACE.
|
| team_id | string | body | Based on Request |
The ID of the team where the Space is to be created when destination_type is NEW_SPACE.
|
| space_name | string | body | Based on Request |
The name for the new Space that will be created when destination_type is NEW_SPACE.
|
| copy_comments | string | body | Based on Request | When set to true, copies all comments from the source zone to the duplicated zone. Comments are not copied when duplicating a specific zone version. |
| deep_copy | string | body | Based on Request | When set to true, copies all versions from the source zone to the duplicated zone. |
| destination_space_id | string | body | Based on Request |
The ID of the existing Space where the Zone should be moved.Required only when destination_type is EXISTING_SPACE.
|
Request Body
JSON
{
"move_zone":{
"destination_type":"NEW_SPACE",
"team_id":{{team_id}},
"space_name":"Project proposal"
}
}
Responses
200
Zone Moved to a New Space
200
Zone Moved to a New Space with Comments
200
Zone Moved to a New Space with All Versions
404
Zone Not Found
401
Unauthorized to Move Zone to a New Space
200
Zone Moved to an Existing Space
200
Zone Moved to an Existing Space with All Versions
200
Zone Moved to an Existing Space with Comments
404
Target Space Not Found
401
Unauthorized to Move Zone to an Existing Space
Zone Moved to a New Space - Response
{
"data": {
"space_info": {
"created_time": "Mon, 10 Mar 2025, 10:42:20",
"last_modified_time": "Mon, 10 Mar 2025, 10:42:20",
"is_favorite": "false",
"space_name": "Project proposal",
"publish": "false",
"owner_zuid": "96384499",
"can_edit": "true",
"allow_embed": "false",
"team_id": "693000000435005",
"space_id": "693000000569361",
"last_author_zuid": "96384499",
"status": "ACTIVE"
}
},
"message": "Zone moved successfully",
"request_uri": "/vani/api/v1/editions/75918186/spaces/693000000569005/zones/4a971774-9ea7-4f1b-94c8-7199a254d6ba/move",
"status": "success"
}
Code Examples
cURL
curl -X POST "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/move" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "x-vani-apikey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"move_zone": {
"destination_type": "NEW_SPACE",
"team_id": 541000000562265,
"space_name": "move zone"
}
}'
PUT Update Zone Meta Data
PUT https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/meta
Required Scopes:
vani.spaces.update
Updates the metadata of a specific Zone.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| edition_id | string | path | Required | The unique ID of the edition. |
| space_id | string | path | Required | The unique ID of the Space. |
| zone_id | string | path | Required | The unique ID of the Zone to update. |
| zone_name | string | body | Required | The name of the Zone. |
Request Body
JSON
{
"zone_name": "Budget Report"
}
Responses
200
Success
409
Failure: New Zone Name Is Same as the Current Name
404
Failure: Zone Not Found
401
Unauthorized
Success - Response
{
"data": {
"current_user_id": "96384499",
"zone_id": "598356E6-5F86-45FA-A7D5-ED8BB6D40DAE",
"edition_id": "97375109",
"space_id": "1505000000022005",
"new_name": "Budget Report"
},
"message": "Zone name updated successfully.",
"request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000022005/zones/598356E6-5F86-45FA-A7D5-ED8BB6D40DAE/meta",
"status": "success"
}
Code Examples
cURL
curl -X PUT "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/meta" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "x-vani-apikey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"zone_name": "Budget Report"
}'
PUT Zone Restore
PUT https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/state
Required Scopes:
vani.spaces.update
Restore a specific Zone within a Space by updating its state.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| edition_id | string | path | Required | The unique ID of the edition. |
| space_id | string | path | Required | The unique ID of the Space. |
| zone_id | string | path | Required | The unique ID of the Zone to restore. |
| zone_state | string | body | Required |
The value must be set to RESTORE to restore the Zone. Note: Only trashed Zones can be restored. Trying to restore any other type will result in an error.
|
Request Body
JSON
{
"zone_state": "RESTORE"
}
Responses
200
Success
400
Failure
401
Unauthorized
Success - Response
{
"data": {
"current_user_id": "96384499",
"zone_id": "598356E6-5F86-45FA-A7D5-ED8BB6D40DAE",
"edition_id": "97375109",
"space_state": "RESTORE",
"space_id": "1505000000022005"
},
"message": "Zone state updated successfully.",
"request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000022005/zones/598356E6-5F86-45FA-A7D5-ED8BB6D40DAE/state",
"status": "success"
}
Code Examples
cURL
curl -X PUT "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/state" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "x-vani-apikey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"zone_state": "RESTORE"
}'
PUT Zone Trash
PUT https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/state
Required Scopes:
vani.spaces.update
Move a specific Zone to the "trash" state within a Space.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| edition_id | string | path | Required | The unique ID of the edition. |
| space_id | string | path | Required | The unique ID of the Space. |
| zone_id | string | path | Required | The unique ID of the Zone to trash. |
| zone_state | string | body | Required |
The value must be set to TRASH to mark the Zone as trashed. Note: Only active Zones can be trashed. Trying to trash any other type will result in an error.
|
Request Body
JSON
{
"zone_state": "TRASH"
}
Responses
200
Success
400
Failure: Zone Threshold Violation
400
Failure: Zone Is Already Trashed or Deleted
401
Unauthorized
Success - Response
{
"data": {
"current_user_id": "96384499",
"zone_id": "598356E6-5F86-45FA-A7D5-ED8BB6D40DAE",
"edition_id": "97375109",
"space_state": "TRASH",
"space_id": "1505000000022005"
},
"message": "Zone state updated successfully.",
"request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000022005/zones/598356E6-5F86-45FA-A7D5-ED8BB6D40DAE/state",
"status": "success"
}
Code Examples
cURL
curl -X PUT "https://api.app.vanihq.com/vani/api/v1/editions/{edition_id}/spaces/{space_id}/zones/{zone_id}/state" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "x-vani-apikey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"zone_state": "TRASH"
}'