{
  "components": {
    "schemas": {
      "UpdateSpaceMetaRequest": {
        "type": "object",
        "properties": {
          "space_name": {
            "pattern": "^(?:[0-9a-zA-Z_~`#%&\\^\\*\\(\\)\\{\\}\\[\\]\\+\\*\\|=\\-\\.\\$@\\?,:;>\\\\'\\/!\\u0080-\\uFFFF\\s<\"]+)$",
            "description": "space name",
            "type": "string"
          },
          "action_type": {
            "description": "action type. Allowed values: SPACE_NAME, FAVORITE, EMBED (required)",
            "type": "string",
            "enum": [
              "SPACE_NAME",
              "FAVORITE",
              "EMBED"
            ]
          },
          "value": {
            "description": "value",
            "type": "boolean"
          }
        },
        "required": [
          "action_type"
        ]
      },
      "UpdateSpaceStateRequest": {
        "type": "object",
        "properties": {
          "space_state": {
            "description": "space state. Allowed values: RESTORE, TRASH, DELETE (required)",
            "type": "string",
            "enum": [
              "RESTORE",
              "TRASH",
              "DELETE"
            ]
          }
        },
        "required": [
          "space_state"
        ]
      },
      "DuplicateSpaceRequest": {
        "type": "object",
        "properties": {
          "duplicate_space": {
            "description": "duplicate space. Max length: 11000 (required)",
            "type": "object",
            "properties": {
              "space_name": {
                "pattern": "^(?:[0-9a-zA-Z_~`#%&\\^\\*\\(\\)\\{\\}\\[\\]\\+\\*\\|=\\-\\.\\$@\\?,:;>\\\\'\\/!\\u0080-\\uFFFF\\s<\"]+)$",
                "description": "space name",
                "type": "string"
              },
              "deep_copy": {
                "description": "deep copy",
                "type": "boolean"
              },
              "team_id": {
                "description": "team id",
                "type": "string"
              },
              "copy_members": {
                "description": "copy members",
                "type": "boolean"
              },
              "copy_comments": {
                "description": "copy comments",
                "type": "boolean"
              }
            }
          }
        },
        "required": [
          "duplicate_space"
        ]
      },
      "CreateSpaceRequest": {
        "type": "object",
        "properties": {
          "create_space": {
            "description": "create space. Max length: 11000 (required)",
            "type": "object",
            "properties": {
              "workspace_id": {
                "description": "workspace id",
                "type": "string"
              },
              "template_name": {
                "pattern": "^(?:[0-9a-zA-Z_~`#%&\\^\\*\\(\\)\\{\\}\\[\\]\\+\\*\\|=\\-\\.\\$@\\?,:;>\\\\'\\/!\\u0080-\\uFFFF\\s<\"]+)$",
                "description": "template name",
                "type": "string"
              },
              "space_name": {
                "pattern": "^(?:[0-9a-zA-Z_~`#%&\\^\\*\\(\\)\\{\\}\\[\\]\\+\\*\\|=\\-\\.\\$@\\?,:;>\\\\'\\/!\\u0080-\\uFFFF\\s<\"]+)$",
                "description": "space name",
                "type": "string"
              },
              "zone_name": {
                "pattern": "^(?:[0-9a-zA-Z_~`#%&\\^\\*\\(\\)\\{\\}\\[\\]\\+\\*\\|=\\-\\.\\$@\\?,:;>\\\\'\\/!\\u0080-\\uFFFF\\s<\"]+)$",
                "description": "zone name",
                "type": "string"
              },
              "template_id": {
                "description": "template id",
                "type": "string"
              },
              "team_id": {
                "description": "team id (required)",
                "type": "string"
              }
            },
            "required": [
              "team_id"
            ]
          }
        },
        "required": [
          "create_space"
        ]
      },
      "UpdateSpaceMemberRequest": {
        "type": "object",
        "properties": {
          "role": {
            "description": "role. Allowed values: EDITOR, COMMENTER, VIEWER, ORGANISER (required)",
            "type": "string",
            "enum": [
              "EDITOR",
              "COMMENTER",
              "VIEWER",
              "ORGANISER"
            ]
          }
        },
        "required": [
          "role"
        ]
      },
      "AddSpaceMembersRequest": {
        "type": "object",
        "properties": {
          "members_info": {
            "minItems": 1,
            "maxItems": 100,
            "description": "members info. Max length: 11000 (required)",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "restrict_zone_ids": {
                  "pattern": "^(?:(^[a-f0-9A-F]{8}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{12})((,[a-f0-9A-F]{8}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{12})*)?)$",
                  "description": "restrict zone ids. Max length: 1000",
                  "type": "string",
                  "maxLength": 1000
                },
                "role": {
                  "description": "role. Allowed values: EDITOR, COMMENTER, VIEWER, ORGANISER (required)",
                  "type": "string",
                  "enum": [
                    "EDITOR",
                    "COMMENTER",
                    "VIEWER",
                    "ORGANISER"
                  ]
                },
                "access_state": {
                  "description": "access state. Allowed values: full_access, partial_access",
                  "type": "string",
                  "enum": [
                    "full_access",
                    "partial_access"
                  ]
                },
                "type": {
                  "description": "type. Allowed values: USER, TEAM, ORG (required)",
                  "type": "string",
                  "enum": [
                    "USER",
                    "TEAM",
                    "ORG"
                  ]
                },
                "zuid": {
                  "description": "zuid. Max length: 100 (required)",
                  "type": "string",
                  "maxLength": 100
                }
              },
              "required": [
                "zuid",
                "role",
                "type"
              ]
            }
          },
          "requester_zuid": {
            "description": "requester zuid. Max length: 100",
            "type": "string",
            "maxLength": 100
          }
        },
        "required": [
          "members_info"
        ]
      },
      "VaniEnvelope": {
        "description": "Standard Vani response envelope.",
        "type": "object",
        "properties": {
          "data": {
            "description": "Operation payload. Narrowed per endpoint where a response schema is declared.",
            "type": "object"
          },
          "message": {
            "type": "string"
          },
          "request_uri": {
            "type": "string"
          },
          "status": {
            "description": "success or error",
            "type": "string"
          }
        },
        "required": [
          "status"
        ]
      },
      "VaniError": {
        "description": "Standard Vani error envelope.",
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "details": {
                "description": "Error code and message, plus any context keys (edition_id, space_id, ...).",
                "additionalProperties": true,
                "type": "object",
                "properties": {
                  "sdk_error_code": {
                    "description": "Raw SDK code, present when the error was not mapped.",
                    "type": "string"
                  },
                  "error_code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "request_uri": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        }
      },
      "AcceptSpaceRequestPayload": {
        "type": "object",
        "properties": {
          "role": {
            "description": "role. Allowed values: EDITOR, COMMENTER, VIEWER, ORGANISER (required)",
            "type": "string",
            "enum": [
              "EDITOR",
              "COMMENTER",
              "VIEWER",
              "ORGANISER"
            ]
          }
        },
        "required": [
          "role"
        ]
      },
      "ProjectVO": {
        "type": "object",
        "properties": {
          "space_members": {
            "type": "array",
            "items": {}
          },
          "created_time": {
            "type": "string"
          },
          "last_published_time": {
            "type": "string"
          },
          "last_modified_time": {
            "type": "string"
          },
          "is_favorite": {
            "type": "string"
          },
          "can_edit": {
            "type": "string"
          },
          "open_url": {
            "type": "string"
          },
          "team_id": {
            "type": "string"
          },
          "allow_embed": {
            "type": "string"
          },
          "is_private_space": {
            "type": "string"
          },
          "space_member_count": {
            "type": "string"
          },
          "client_import_id": {
            "type": "string"
          },
          "uri": {
            "type": "string"
          },
          "file_size": {
            "type": "string"
          },
          "last_saved_version": {
            "type": "string"
          },
          "space_name": {
            "type": "string"
          },
          "publish": {
            "type": "string"
          },
          "owner_zuid": {
            "type": "string"
          },
          "thumb_image_id": {
            "type": "string"
          },
          "published_version_id": {
            "type": "string"
          },
          "state_modified_time": {
            "type": "string"
          },
          "space_id": {
            "type": "string"
          },
          "last_author_zuid": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        }
      }
    },
    "responses": {
      "RateLimitExceededThisOperationAllows30Re": {
        "description": "Rate limit exceeded - this operation allows 30 requests per minute per user",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/VaniError"
            }
          }
        }
      },
      "InvalidRequestValidationFailed": {
        "description": "Invalid request - validation failed",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/VaniError"
            }
          }
        }
      },
      "RateLimitExceededThisOperationAllows60Re": {
        "description": "Rate limit exceeded - this operation allows 60 requests per minute per user",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/VaniError"
            }
          }
        }
      },
      "NotFoundAResourceNamedInThePathDoesNotEx10": {
        "description": "Not found - a resource named in the path does not exist, or is not visible to the caller",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/VaniError"
            }
          }
        }
      },
      "InternalServerErrorTheRequestWasWellForm": {
        "description": "Internal server error - the request was well-formed but could not be completed",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/VaniError"
            }
          }
        }
      },
      "UnauthorizedMissingOrInvalidAccessToken9": {
        "description": "Unauthorized - missing or invalid access token",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/VaniError"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "vani-api-key": {
        "in": "header",
        "name": "x-vani-apikey",
        "description": "Edition-scoped API key. ACCEPTED, NOT YET REQUIRED: the bearer token alone authorises every operation today, which is why each one lists a token-only alternative first and a token-plus-key alternative second. Sending the key is harmless and forward-compatible -- the server reads it, and the requirement is expected to become mandatory, at which point the token-only alternative disappears from this contract. The key never authorises on its own. Read or create your edition's key from the edition settings. The two operations on the /editions collection itself never carry one: a key belongs to an edition, so the calls that list or create editions cannot present it.",
        "type": "apiKey"
      },
      "iam-oauth2-schema": {
        "flows": {
          "authorizationCode": {
            "tokenUrl": "https://accounts.zoho.com/oauth/v2/token",
            "authorizationUrl": "https://accounts.zoho.com/oauth/v2/auth",
            "scopes": {
              "Vani.teams.UPDATE": "Update team memberships, roles, and collaboration settings",
              "Vani.spaces.UPDATE": "Update workspaces, folders, and organizational settings",
              "Vani.spaces.DELETE": "Delete workspaces and folders",
              "Vani.zones.READ": "Read zones including tables, cells, and paragraph content",
              "Vani.editions.UPDATE": "Update existing document editions, modify version metadata and publishing state",
              "Vani.spaces.CREATE": "Create new workspaces, folders, and organizational structure",
              "Vani.teams.CREATE": "Create new teams and assign team memberships",
              "Vani.spaces.READ": "Read workspaces, folders, and organizational structure",
              "Vani.editions.CREATE": "Create new document editions and version snapshots",
              "Vani.zones.CREATE": "Create zones including tables, cells, and paragraph content",
              "Vani.teams.READ": "Read team memberships, roles, and collaboration settings",
              "Vani.editions.READ": "Read document editions, version history, and edition metadata",
              "Vani.teams.DELETE": "Delete teams and remove team memberships"
            }
          }
        },
        "x-vani-data-centre": "com",
        "description": "OAuth 2.0 through Zoho Accounts for the .com data centre (the default). Authorisation is NOT served by the API server -- it is a separate host, and each data centre has its own. If your edition is on another data centre, keep these paths and substitute its host from x-vani-accounts-hosts on this scheme. An OAuth client is valid only in the data centre it was registered in, so register at that data centre's api-console. Note that the accounts host does not simply mirror the API host's TLD: Canada authorises at accounts.zohocloud.ca.",
        "x-vani-accounts-hosts": {
          "com": "accounts.zoho.com",
          "eu": "accounts.zoho.eu",
          "ae": "accounts.zoho.ae",
          "in": "accounts.zoho.in",
          "ca": "accounts.zohocloud.ca",
          "sa": "accounts.zoho.sa",
          "com.au": "accounts.zoho.com.au"
        },
        "type": "oauth2"
      }
    },
    "parameters": {
      "MemberId": {
        "schema": {
          "type": "string"
        },
        "in": "path",
        "name": "member_id",
        "description": "The unique identifier of the member",
        "required": true
      },
      "RequestId": {
        "schema": {
          "type": "string"
        },
        "in": "path",
        "name": "request_id",
        "description": "The unique identifier of the request",
        "required": true
      },
      "UserId": {
        "schema": {
          "type": "string"
        },
        "in": "path",
        "name": "user_id",
        "description": "The unique identifier of the user",
        "required": true
      },
      "Search": {
        "schema": {
          "pattern": "^(?:[0-9a-zA-Z_~`#%&\\^\\*\\(\\)\\{\\}\\[\\]\\+\\*\\|=\\-\\.\\$@\\?,:;>\\\\'\\/!\\u0080-\\uFFFF\\s<\"]+)$",
          "type": "string",
          "maxLength": 100
        },
        "in": "query",
        "name": "search",
        "description": "The keyword or phrase to search for",
        "required": false
      },
      "SpaceId": {
        "schema": {
          "type": "string"
        },
        "in": "path",
        "name": "space_id",
        "description": "The unique identifier of the space",
        "required": true
      },
      "Fields4": {
        "schema": {
          "type": "string",
          "maxLength": 1000,
          "enum": [
            "requested_time",
            "requested_by",
            "name",
            "request_id",
            "status",
            "role"
          ]
        },
        "in": "query",
        "name": "fields",
        "description": "Specifies the fields (comma-separated) to retrieve. Allowed values: requested_time, requested_by, name, request_id, status, role",
        "required": false
      },
      "EditionId": {
        "schema": {
          "type": "string"
        },
        "in": "path",
        "name": "edition_id",
        "description": "The unique identifier of the edition",
        "required": true
      },
      "From": {
        "schema": {
          "pattern": "^[0-9]{1,6}$",
          "type": "string",
          "maxLength": 6
        },
        "in": "query",
        "name": "from",
        "description": "The starting index from where the results should be fetched. Default value is 0",
        "required": false
      },
      "Limit": {
        "schema": {
          "pattern": "^[1-9][0-9]{0,2}$",
          "type": "string",
          "maxLength": 3
        },
        "in": "query",
        "name": "limit",
        "description": "The maximum number of results to return in the response. Default value is 20",
        "required": false
      },
      "Fields6": {
        "schema": {
          "type": "string",
          "maxLength": 1000,
          "enum": [
            "space_name",
            "space_id",
            "owner_zuid",
            "team_id",
            "last_author_zuid",
            "created_time",
            "last_modified_time",
            "last_saved_version",
            "publish",
            "published_version_id",
            "last_published_time",
            "thumb_image_id",
            "client_import_id",
            "is_private_space",
            "file_size",
            "allow_embed",
            "status",
            "can_edit",
            "is_favorite",
            "space_member_count",
            "state_modified_time",
            "uri",
            "open_url"
          ]
        },
        "in": "query",
        "name": "fields",
        "description": "Specifies the fields (comma-separated) to retrieve. Allowed values: space_name, space_id, owner_zuid, team_id, last_author_zuid, created_time, last_modified_time, last_saved_version, publish, published_version_id, last_published_time, thumb_image_id, client_import_id, is_private_space, file_size, allow_embed, status, can_edit, is_favorite, space_member_count, state_modified_time, uri, open_url",
        "required": false
      }
    }
  },
  "servers": [
    {
      "variables": {
        "dc": {
          "default": "com",
          "description": "Data-centre TLD for your edition.",
          "enum": [
            "com",
            "in",
            "eu",
            "ca",
            "com.au",
            "sa",
            "ae"
          ]
        }
      },
      "description": "Vani API server. Select the data centre your edition is hosted in.",
      "url": "https://api.app.vanihq.{dc}"
    }
  ],
  "openapi": "3.1.0",
  "paths": {
    "/vani/api/v1/editions/{edition_id}/spaces/{space_id}/duplicate": {
      "post": {
        "summary": "Duplicate a space",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.CREATE"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.CREATE"
            ]
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DuplicateSpaceRequest"
              }
            }
          }
        },
        "operationId": "duplicateSpace",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "Space Duplicated with Deep Copy": {
                    "value": {
                      "data": {
                        "space_info": {
                          "created_time": "Sat, 08 Mar 2025, 17:40:07",
                          "last_modified_time": "Sat, 08 Mar 2025, 17:40:07",
                          "is_favorite": "false",
                          "space_name": "Vision board - 1",
                          "publish": "false",
                          "owner_zuid": "80215739",
                          "can_edit": "true",
                          "team_id": "3009000000002003",
                          "allow_embed": "false",
                          "space_id": "3009000000239341",
                          "last_author_zuid": "80215739",
                          "status": "ACTIVE"
                        }
                      },
                      "message": "Space duplicated successfully",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000232005/duplicate",
                      "status": "success"
                    }
                  },
                  "Space Duplicated in a Different Team": {
                    "value": {
                      "data": {
                        "space_info": {
                          "created_time": "Sat, 08 Mar 2025, 17:37:07",
                          "last_modified_time": "Sat, 08 Mar 2025, 17:37:07",
                          "is_favorite": "false",
                          "space_name": "Vision board",
                          "publish": "false",
                          "owner_zuid": "80215739",
                          "can_edit": "true",
                          "team_id": "3009000000002003",
                          "allow_embed": "false",
                          "space_id": "3009000000239335",
                          "last_author_zuid": "80215739",
                          "status": "ACTIVE"
                        }
                      },
                      "message": "Space duplicated successfully",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000232005/duplicate",
                      "status": "success"
                    }
                  },
                  "Space Duplicated with Members and Comments": {
                    "value": {
                      "data": {
                        "space_info": {
                          "created_time": "Sat, 08 Mar 2025, 17:37:07",
                          "last_modified_time": "Sat, 08 Mar 2025, 17:37:07",
                          "is_favorite": "false",
                          "space_name": "Vision board",
                          "publish": "false",
                          "owner_zuid": "80215739",
                          "can_edit": "true",
                          "team_id": "3009000000002003",
                          "allow_embed": "false",
                          "space_id": "3009000000239335",
                          "last_author_zuid": "80215739",
                          "status": "ACTIVE"
                        }
                      },
                      "message": "Space duplicated successfully",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000232005/duplicate",
                      "status": "success"
                    }
                  },
                  "Space Duplicated Without New Space Name": {
                    "value": {
                      "data": {
                        "space_info": {
                          "created_time": "Sat, 08 Mar 2025, 18:12:41",
                          "is_favorite": "false",
                          "last_modified_time": "Sat, 08 Mar 2025, 18:12:41",
                          "space_name": "Copy of Social media strategy and planning",
                          "publish": "false",
                          "owner_zuid": "80215739",
                          "can_edit": "true",
                          "allow_embed": "false",
                          "team_id": "3009000000002003",
                          "space_id": "3009000000239843",
                          "last_author_zuid": "80215739",
                          "status": "ACTIVE"
                        }
                      },
                      "message": "Space duplicated successfully",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000232005/duplicate",
                      "status": "success"
                    }
                  },
                  "Success": {
                    "value": {
                      "data": {
                        "space_info": {
                          "created_time": "Fri, 21 Aug 2026, 19:38:07",
                          "last_modified_time": "Fri, 21 Aug 2026, 19:38:07",
                          "is_favorite": "false",
                          "can_edit": "true",
                          "open_url": "https://app.localvanihq.net/edition/112255940/space/5777000000917103",
                          "team_id": "5777000000002017",
                          "allow_embed": "false",
                          "space_name": "Vision board",
                          "publish": "false",
                          "owner_zuid": "82512958",
                          "space_id": "5777000000917103",
                          "last_author_zuid": "82512958",
                          "status": "ACTIVE"
                        }
                      },
                      "message": "Space duplicated successfully",
                      "request_uri": "/vani/api/v1/editions/112255940/spaces/5777000000911002/duplicate",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestValidationFailed"
          },
          "401": {
            "description": "Unauthorized - missing or invalid access token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Unauthorized": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "80215739",
                          "error_code": "A1003",
                          "message": "The user doesn't have permission to perform this action",
                          "space_id": "3009000000093003"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000093003/duplicate",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found - a resource named in the path does not exist, or is not visible to the caller",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Space Not Found": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "80215739",
                          "error_code": "S1009",
                          "message": "Space not found",
                          "space_id": "300900000093003"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/300900000093003/duplicate",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows30Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "CREATE",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "$ref": "#/components/parameters/SpaceId"
          }
        ],
        "x-vani-read-only": false,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 30
        },
        "tags": [
          "Spaces"
        ]
      }
    },
    "/vani/api/v1/editions/{edition_id}/spaces/{space_id}": {
      "get": {
        "summary": "Get a space",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.READ"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.READ"
            ]
          }
        ],
        "operationId": "getSpace",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/VaniEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "space_info": {
                              "$ref": "#/components/schemas/ProjectVO"
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "examples": {
                  "Using Filter Fields": {
                    "value": {
                      "data": {
                        "space_info": {
                          "is_favorite": "false",
                          "can_edit": "true",
                          "team_id": "1303000000002003"
                        }
                      },
                      "message": "Space fetched successfully.",
                      "request_uri": "/vani/api/v1/editions/60029715808/spaces/1303000000492291",
                      "status": "success"
                    }
                  },
                  "Success": {
                    "value": {
                      "data": {
                        "space_info": {
                          "created_time": "Fri, 21 Aug 2026, 18:25:57",
                          "last_modified_time": "Fri, 21 Aug 2026, 18:34:26",
                          "is_favorite": "false",
                          "can_edit": "true",
                          "open_url": "https://app.localvanihq.net/edition/112255940/space/5777000000911002",
                          "team_id": "5777000000002017",
                          "allow_embed": "false",
                          "space_member_count": "1",
                          "space_name": "REST API Doc Space",
                          "publish": "false",
                          "owner_zuid": "82512958",
                          "space_id": "5777000000911002",
                          "last_author_zuid": "82512958",
                          "status": "ACTIVE"
                        }
                      },
                      "message": "Space fetched successfully.",
                      "request_uri": "/vani/api/v1/editions/112255940/spaces/5777000000911002",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestValidationFailed"
          },
          "401": {
            "description": "Unauthorized - missing or invalid access token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Unauthorized": {
                    "value": {
                      "error": {
                        "details": {
                          "current_user_id": "96384499",
                          "error_code": "A1003",
                          "message": "The user doesn't have permission to perform this action"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/300900000009300",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFoundAResourceNamedInThePathDoesNotEx10"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows60Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "READ",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "$ref": "#/components/parameters/SpaceId"
          },
          {
            "$ref": "#/components/parameters/Fields6"
          }
        ],
        "x-vani-read-only": true,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 60
        },
        "tags": [
          "Spaces"
        ]
      }
    },
    "/vani/api/v1/editions/{edition_id}/spaces/{space_id}/requests": {
      "post": {
        "summary": "Raise a request to join a space",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.CREATE"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.CREATE"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcceptSpaceRequestPayload"
              }
            }
          }
        },
        "operationId": "createSpaceRequest",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "Role Update Request Created": {
                    "value": {
                      "data": {
                        "edition_id": "96499735",
                        "updated_at": "Wed, 06 Aug 2025, 10:12:18",
                        "request_id": "3009000000793049",
                        "space_id": "3009000000694083",
                        "zuid": "80473960",
                        "status": "PENDING"
                      },
                      "message": "Space join request created successfully",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000694083/requests",
                      "status": "success"
                    }
                  },
                  "Success": {
                    "value": {
                      "data": {
                        "edition_id": "96499735",
                        "updated_at": "Wed, 06 Aug 2025, 05:07:43",
                        "request_id": "3009000000777009",
                        "space_id": "3009000000694083",
                        "zuid": "80473960",
                        "status": "PENDING"
                      },
                      "message": "Space join request created successfully",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000694083/requests",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestValidationFailed"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAccessToken9"
          },
          "403": {
            "description": "Forbidden - the caller is authenticated but not allowed to perform this operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Downgrade is not allowed": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "80473960",
                          "error_code": "R1011",
                          "message": "Requesting for downgrade is not allowed"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000694083/requests",
                      "status": "error"
                    }
                  },
                  "Cannot Update Owner Role": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "S1004",
                          "message": "Cannot update owner role"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000694083/requests",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found - a resource named in the path does not exist, or is not visible to the caller",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Member Not Part of the Team": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "80473960",
                          "error_code": "T1012",
                          "message": "Member not part of team"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000694083/requests",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict - the requested change conflicts with the current resource state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Member Already Has the Specified Role": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "80473960",
                          "error_code": "M1001",
                          "message": "The member already has the specified role"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000694083/requests",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows30Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "CREATE",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "$ref": "#/components/parameters/SpaceId"
          }
        ],
        "x-vani-read-only": false,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 30
        },
        "tags": [
          "Space Requests"
        ]
      },
      "get": {
        "summary": "Get the join requests for a space",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.READ"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.READ"
            ]
          }
        ],
        "operationId": "getSpaceRequests",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "success": {
                    "value": {
                      "data": {
                        "requests": [
                          {
                            "requested_time": "Wed, 06 Aug 2025, 16:05:37",
                            "requested_by": "80215739",
                            "role": "VIEWER",
                            "name": "naga.vg",
                            "request_id": "3009000000789151",
                            "status": "PENDING"
                          },
                          {
                            "requested_time": "Wed, 06 Aug 2025, 16:10:51",
                            "requested_by": "80473960",
                            "role": "VIEWER",
                            "name": "naga.vg",
                            "request_id": "3009000000789147",
                            "status": "PENDING"
                          }
                        ]
                      },
                      "message": "Space join requests fetched successfully",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000701079/requests",
                      "status": "success"
                    }
                  },
                  "No Pending Join Requests": {
                    "value": {
                      "data": {
                        "requests": []
                      },
                      "message": "Space join requests fetched successfully",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000694083/requests",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestValidationFailed"
          },
          "401": {
            "description": "Unauthorized - missing or invalid access token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Unauthorized": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "80473960",
                          "error_code": "A1003",
                          "team_id": "3009000000694083",
                          "message": "The user doesn't have permission to perform this action"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000694083/requests",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found - a resource named in the path does not exist, or is not visible to the caller",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Space Not Found": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "S1009",
                          "team_id": "300900000064083",
                          "message": "Space not found"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/300900000064083/requests",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows30Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "READ",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "$ref": "#/components/parameters/SpaceId"
          },
          {
            "$ref": "#/components/parameters/Fields4"
          },
          {
            "$ref": "#/components/parameters/From"
          },
          {
            "$ref": "#/components/parameters/Limit"
          }
        ],
        "x-vani-read-only": true,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 30
        },
        "tags": [
          "Space Requests"
        ]
      }
    },
    "/vani/api/v1/editions/{edition_id}/spaces/{space_id}/users/me/permission": {
      "get": {
        "summary": "Get the current user's role in a space",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.READ"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.READ"
            ]
          }
        ],
        "operationId": "getMyPermissionInSpace",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "Success": {
                    "value": {
                      "data": {
                        "user_permission_info": {
                          "edition_id": "96499735",
                          "role": "CREATOR",
                          "current_user_id": "96384499",
                          "space_id": "3009000000093003"
                        }
                      },
                      "message": "User permissions fetched successfully",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000093003/users/me/permission",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestValidationFailed"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAccessToken9"
          },
          "404": {
            "description": "Not found - a resource named in the path does not exist, or is not visible to the caller",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "User Is Not a Space Member": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "S1015",
                          "message": "Member is not part of the Space",
                          "space_id": "3009000000298005"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000298005/users/me/permission",
                      "status": "error"
                    }
                  },
                  "Space Not Found": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "S1009",
                          "message": "Space not found",
                          "space_id": "300900000093003"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/300900000093003/users/me/permission",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows60Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "READ",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "$ref": "#/components/parameters/SpaceId"
          }
        ],
        "x-vani-read-only": true,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 60
        },
        "tags": [
          "Spaces"
        ]
      }
    },
    "/vani/api/v1/editions/{edition_id}/spaces/{space_id}/requests/{request_id}/accept": {
      "post": {
        "summary": "Accept a request to join a space",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.CREATE"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.CREATE"
            ]
          }
        ],
        "operationId": "acceptSpaceRequest",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "Success": {
                    "value": {
                      "data": {
                        "role_name": "VIEWER",
                        "edition_id": "96499735",
                        "updated_at": "Wed, 06 Aug 2025, 20:07:20",
                        "request_id": "3009000000789147",
                        "space_id": "3009000000701079",
                        "zuid": "80473960",
                        "status": "ACCEPTED"
                      },
                      "message": "Space join request accepted successfully",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000701079/requests/3009000000789147/accept",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request - validation failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Invalid Request Id": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "R1003",
                          "team_id": "3009000000694083",
                          "message": "Invalid request ID"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000694083/requests/3009000000777013/accept",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - missing or invalid access token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Unauthorized": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "80473960",
                          "error_code": "A1003",
                          "team_id": "3009000000694083",
                          "message": "The user doesn't have permission to perform this action"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000694083/requests/3009000000777109/accept",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFoundAResourceNamedInThePathDoesNotEx10"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows30Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "CREATE",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "$ref": "#/components/parameters/SpaceId"
          },
          {
            "$ref": "#/components/parameters/RequestId"
          }
        ],
        "x-vani-read-only": false,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 30
        },
        "tags": [
          "Space Requests"
        ]
      }
    },
    "/vani/api/v1/editions/{edition_id}/spaces/{space_id}/members/{member_id}": {
      "delete": {
        "summary": "Remove a member from a space",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.DELETE"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.DELETE"
            ]
          }
        ],
        "operationId": "deleteSpaceMember",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "Success": {
                    "value": {
                      "data": {
                        "edition_id": "97375109",
                        "removed_zuid": "80473960",
                        "current_user_id": "96384499",
                        "space_id": "1505000000039107"
                      },
                      "message": "Space member deleted successfully.",
                      "request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000039107/members",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestValidationFailed"
          },
          "401": {
            "description": "Unauthorized - missing or invalid access token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Unauthorized": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "97375109",
                          "current_user_id": "96384499",
                          "error_code": "A1003",
                          "message": "The user doesn't have permission to perform this action",
                          "space_id": "1505000000045043"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000045043/members",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - the caller is authenticated but not allowed to perform this operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Failure : Space owner cannot be removed": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "97375109",
                          "current_user_id": "96384499",
                          "error_code": "S1002",
                          "message": "Space owner cannot be removed",
                          "space_id": "1505000000045043"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000045043/members",
                      "status": "error"
                    }
                  },
                  "Failure : Cannot remove self": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "97375109",
                          "current_user_id": "96384499",
                          "error_code": "M1002",
                          "message": "User cannot remove self",
                          "space_id": "1505000000045043"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000045043/members/96384499",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found - a resource named in the path does not exist, or is not visible to the caller",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Failure : Member Not in Space": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "97375109",
                          "current_user_id": "96384499",
                          "error_code": "S1015",
                          "message": "Member is not part of the Space",
                          "space_id": "1505000000039107"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000039107/members",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows30Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "DELETE",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "$ref": "#/components/parameters/SpaceId"
          },
          {
            "$ref": "#/components/parameters/MemberId"
          }
        ],
        "x-vani-read-only": false,
        "x-vani-destructive": true,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 30
        },
        "tags": [
          "Space Members"
        ]
      },
      "put": {
        "summary": "Update a space member's role",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.UPDATE"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.UPDATE"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSpaceMemberRequest"
              }
            }
          }
        },
        "operationId": "updateSpaceMember",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "Success: Role Updated to Editor": {
                    "value": {
                      "data": {
                        "new_role": "EDITOR",
                        "edition_id": "97375109",
                        "current_user_id": "96384499",
                        "space_id": "1505000000005005",
                        "zuid": "80473960"
                      },
                      "message": "Space member updated successfully.",
                      "request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000005005/members",
                      "status": "success"
                    }
                  },
                  "Success: Role Updated to Commenter": {
                    "value": {
                      "data": {
                        "new_role": "COMMENTER",
                        "edition_id": "97375109",
                        "current_user_id": "96384499",
                        "space_id": "1505000000005005",
                        "zuid": "80473960"
                      },
                      "message": "Space member updated successfully.",
                      "request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000005005/members",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestValidationFailed"
          },
          "401": {
            "description": "Unauthorized - missing or invalid access token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Unauthorized": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "75918186",
                          "current_user_id": "96384499",
                          "error_code": "A1003",
                          "message": "The user doesn't have permission to perform this action",
                          "space_id": "693000000536005"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/75918186/spaces/693000000536005/members",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden - the caller is authenticated but not allowed to perform this operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Failure: Cannot Update Own Role": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "97375109",
                          "current_user_id": "96384499",
                          "error_code": "R1001",
                          "message": "Cannot update own role",
                          "space_id": "1505000000045043",
                          "zuid": "96384499"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000045043/members",
                      "status": "error"
                    }
                  },
                  "Failure: Cannot Update Owner Role": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "97375109",
                          "current_user_id": "96384499",
                          "error_code": "S1004",
                          "message": "Cannot update owner role",
                          "space_id": "1505000000045043",
                          "zuid": "80473960"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000045043/members",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found - a resource named in the path does not exist, or is not visible to the caller",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Failure: Member Not Part of the Space": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "S1015",
                          "message": "Member is not part of the Space",
                          "space_id": "3009000000067027",
                          "zuid": "80585905"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000067027/members",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict - the requested change conflicts with the current resource state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Failure: Member Already Has the Same Role": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "97375109",
                          "current_user_id": "96384499",
                          "error_code": "M1001",
                          "message": "The member already has the specified role",
                          "space_id": "1505000000005005",
                          "zuid": "80473960"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000005005/members/80473960",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows30Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "UPDATE",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "$ref": "#/components/parameters/SpaceId"
          },
          {
            "$ref": "#/components/parameters/MemberId"
          }
        ],
        "x-vani-read-only": false,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 30
        },
        "tags": [
          "Space Members"
        ]
      }
    },
    "/vani/api/v1/editions/{edition_id}/spaces/{space_id}/requests/my-requests": {
      "get": {
        "summary": "Get the current user's join requests for a space",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.READ"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.READ"
            ]
          }
        ],
        "operationId": "getSpaceRequestMyRequests",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "Success": {
                    "value": {
                      "data": {
                        "requests": {
                          "requested_time": "Wed, 06 Aug 2025, 16:10:51",
                          "requested_by": "80473960",
                          "role": "VIEWER",
                          "request_id": "3009000000789147",
                          "status": "PENDING"
                        }
                      },
                      "message": "Space join request fetched successfully",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000701079/requests/my-requests",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestValidationFailed"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAccessToken9"
          },
          "404": {
            "description": "Not found - a resource named in the path does not exist, or is not visible to the caller",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Request Not Found": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "80473960",
                          "error_code": "R1014",
                          "team_id": "3009000000694083",
                          "message": "Space join request not found"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000694083/requests/my-requests",
                      "status": "error"
                    }
                  },
                  "Space Not Found": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "80473960",
                          "error_code": "S1009",
                          "team_id": "1664000000180003",
                          "message": "Space not found"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/1664000000180003/requests/my-requests",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows30Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "READ",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "$ref": "#/components/parameters/SpaceId"
          },
          {
            "$ref": "#/components/parameters/Fields4"
          }
        ],
        "x-vani-read-only": true,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 30
        },
        "tags": [
          "Space Requests"
        ]
      }
    },
    "/vani/api/v1/editions/{edition_id}/spaces/{space_id}/requests/{request_id}/reject": {
      "post": {
        "summary": "Reject a request to join a space",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.CREATE"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.CREATE"
            ]
          }
        ],
        "operationId": "rejectSpaceRequest",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "Success": {
                    "value": {
                      "data": {
                        "edition_id": "112255940",
                        "updated_at": "Fri, 21 Aug 2026, 20:10:08",
                        "request_id": "5777000000922022",
                        "space_id": "5777000000919096",
                        "zuid": "97049596",
                        "status": "REJECTED"
                      },
                      "message": "Space join request rejected successfully",
                      "request_uri": "/vani/api/v1/editions/112255940/spaces/5777000000919096/requests/5777000000922022/reject",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestValidationFailed"
          },
          "401": {
            "description": "Unauthorized - missing or invalid access token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Unauthorized": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "80473960",
                          "error_code": "A1003",
                          "team_id": "3009000000694083",
                          "message": "The user doesn't have permission to perform this action"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000694083/requests/3009000000777117/reject",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFoundAResourceNamedInThePathDoesNotEx10"
          },
          "409": {
            "description": "Conflict - the requested change conflicts with the current resource state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Already Rejected": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "R1015",
                          "team_id": "3009000000694083",
                          "message": "Space join request is already rejected"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000694083/requests/3009000000777117/reject",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows30Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "CREATE",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "$ref": "#/components/parameters/SpaceId"
          },
          {
            "$ref": "#/components/parameters/RequestId"
          }
        ],
        "x-vani-read-only": false,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 30
        },
        "tags": [
          "Space Requests"
        ]
      }
    },
    "/vani/api/v1/editions/{edition_id}/spaces/{space_id}/users/{user_id}/permission": {
      "get": {
        "summary": "Get a user's role in a space",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.READ"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.READ"
            ]
          }
        ],
        "operationId": "getSpaceUserPermission",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "Success": {
                    "value": {
                      "data": {
                        "user_permission_info": {
                          "edition_id": "96499735",
                          "role": "EDITOR",
                          "current_user_id": "96384499",
                          "space_id": "3009000000303003",
                          "zuid": "80215739"
                        }
                      },
                      "message": "User permissions fetched successfully",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000303003/users/80215739/permission",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestValidationFailed"
          },
          "401": {
            "description": "Unauthorized - missing or invalid access token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Unauthorized": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "S1020",
                          "message": "User is not the owner of the Space",
                          "space_id": "3009000000298005"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000298005/users/80215739/permission",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found - a resource named in the path does not exist, or is not visible to the caller",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "User Is Not a Space Member": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "S1015",
                          "message": "Member is not part of the Space",
                          "space_id": "3009000000303003",
                          "zuid": "80215739"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000303003/users/80215739/permission",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows60Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "READ",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "$ref": "#/components/parameters/SpaceId"
          },
          {
            "$ref": "#/components/parameters/UserId"
          }
        ],
        "x-vani-read-only": true,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 60
        },
        "tags": [
          "Spaces"
        ]
      }
    },
    "/vani/api/v1/editions/{edition_id}/spaces/{space_id}/meta": {
      "put": {
        "summary": "Update space metadata",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.UPDATE"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.UPDATE"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSpaceMetaRequest"
              }
            }
          }
        },
        "operationId": "updateSpaceMeta",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "Success: Removed from Favorites": {
                    "value": {
                      "data": {
                        "edition_id": "96499735",
                        "current_user_id": "96384499",
                        "is_favourite": false,
                        "space_id": "3009000000141003"
                      },
                      "message": "Space meta updated successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000141003/meta",
                      "status": "success"
                    }
                  },
                  "Success: Marked as Embedded": {
                    "value": {
                      "data": {
                        "edition_id": "96499735",
                        "current_user_id": "96384499",
                        "space_id": "3009000000093003",
                        "embed_status": true
                      },
                      "message": "Space meta updated successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000093003/meta",
                      "status": "success"
                    }
                  },
                  "Success: Embed Removed": {
                    "value": {
                      "data": {
                        "edition_id": "96499735",
                        "current_user_id": "96384499",
                        "space_id": "3009000000093003",
                        "embed_status": false
                      },
                      "message": "Space meta updated successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000093003/meta",
                      "status": "success"
                    }
                  },
                  "Success": {
                    "value": {
                      "data": {
                        "edition_id": "96499735",
                        "current_user_id": "96384499",
                        "space_id": "3009000000141003",
                        "new_name": "Never Have | Ever"
                      },
                      "message": "Space meta updated successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000141003/meta",
                      "status": "success"
                    }
                  },
                  "Success: Marked as Favorite": {
                    "value": {
                      "data": {
                        "edition_id": "96499735",
                        "current_user_id": "96384499",
                        "is_favourite": true,
                        "space_id": "3009000000141003"
                      },
                      "message": "Space meta updated successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000141003/meta",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestValidationFailed"
          },
          "401": {
            "description": "Unauthorized - missing or invalid access token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Unauthorized 2": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "A1003",
                          "message": "The user doesn't have permission to perform this action",
                          "space_id": "300900000014100"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/300900000014100/meta",
                      "status": "error"
                    }
                  },
                  "Unauthorized 3": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "A1003",
                          "message": "The user doesn't have permission to perform this action",
                          "space_id": "3009000000220049"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000220049/meta",
                      "status": "error"
                    }
                  },
                  "Unauthorized": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "75918186",
                          "current_user_id": "96384499",
                          "error_code": "A1003",
                          "message": "The user doesn't have permission to perform this action",
                          "space_id": "3009000000141003"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/75918186/spaces/3009000000141003/meta",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFoundAResourceNamedInThePathDoesNotEx10"
          },
          "409": {
            "description": "Conflict - the requested change conflicts with the current resource state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Failure: Unable to Remove from Favorites": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "S1018",
                          "message": "Space is not favourite",
                          "space_id": "3009000000141003"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000141003/meta",
                      "status": "error"
                    }
                  },
                  "Same Space Name Exists": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "S1014",
                          "message": "Space name is same as the new name",
                          "space_id": "3009000000141003"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000141003/meta",
                      "status": "error"
                    }
                  },
                  "Failure: Unable to Mark as Favorite": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "S1017",
                          "message": "Space is already favourite",
                          "space_id": "3009000000141003"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000141003/meta",
                      "status": "error"
                    }
                  },
                  "Failure: Unable to Remove Embed": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "S1022",
                          "message": "Space is not in an embedded state",
                          "space_id": "3009000000093003"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000093003/meta",
                      "status": "error"
                    }
                  },
                  "Failure: Unable to Mark as Embedded": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "S1021",
                          "message": "Space is already in an embedded state",
                          "space_id": "3009000000093003"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000093003/meta",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows30Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "UPDATE",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "$ref": "#/components/parameters/SpaceId"
          }
        ],
        "x-vani-read-only": false,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 30
        },
        "tags": [
          "Spaces"
        ]
      }
    },
    "/vani/api/v1/editions/{edition_id}/spaces/{space_id}/members": {
      "post": {
        "summary": "Add members to a space",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.CREATE"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.CREATE"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddSpaceMembersRequest"
              }
            }
          }
        },
        "operationId": "createSpaceMembers",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "Success: All User Types": {
                    "value": {
                      "data": {
                        "added_members": [
                          {
                            "role_name": "VIEWER",
                            "added_type_name": "USER",
                            "added_time": "Tue, 04 Feb 2025, 11:18:40",
                            "mail_id": "lucas.bryant@boxicle.com",
                            "added_by": "96384499",
                            "display_name": "Lucas Bryant",
                            "zuid": "98722154"
                          },
                          {
                            "role_name": "EDITOR",
                            "added_type_name": "TEAM",
                            "added_time": "Tue, 04 Feb 2025, 11:18:40",
                            "added_by": "96384499",
                            "display_name": "TEAM VANI",
                            "zuid": "1505000000002005"
                          }
                        ]
                      },
                      "message": "Space member added successfully.",
                      "request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000039170/members",
                      "status": "success"
                    }
                  },
                  "Success with Conditional Sharing": {
                    "value": {
                      "data": {
                        "added_members": [
                          {
                            "added_type_name": "USER",
                            "added_time": "Mon, 28 Jul 2025, 02:23:54",
                            "mail_id": "sophia.bennett@boxicle.com",
                            "added_by": "888015717",
                            "display_name": "Sophia Bennett",
                            "zuid": "98722154"
                          }
                        ]
                      },
                      "message": "Space member added successfully.",
                      "request_uri": "/vani/api/v1/editions/888012145/spaces/4855000000088149/members",
                      "status": "success"
                    }
                  },
                  "Success": {
                    "value": {
                      "data": {
                        "added_members": [
                          {
                            "role_name": "VIEWER",
                            "added_type_name": "USER",
                            "added_time": "Tue, 04 Feb 2025, 10:26:17",
                            "mail_id": "sophia.bennett@boxicle.com",
                            "added_by": "96384499",
                            "display_name": "Sophia Bennett",
                            "zuid": "98722154"
                          }
                        ]
                      },
                      "message": "Space member added successfully.",
                      "request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000039170/members",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "206": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "Partial Success": {
                    "value": {
                      "data": {
                        "failed_members": [
                          {
                            "error_message": "Member already part of Space",
                            "error_code": "S1019",
                            "zuid": "98722154"
                          }
                        ],
                        "added_members": [
                          {
                            "role_name": "EDITOR",
                            "added_type_name": "TEAM",
                            "added_time": "Tue, 04 Feb 2025, 11:14:23",
                            "added_by": "96384499",
                            "display_name": "CloudSpark",
                            "zuid": "1505000000002005"
                          }
                        ]
                      },
                      "message": "Partial success: Some members added, others failed.",
                      "request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000039170/members",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request - validation failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Not Part of the Team": {
                    "value": {
                      "error": {
                        "details": {
                          "failed_members": [
                            {
                              "error_message": "User is inactive and cannot be added to project",
                              "error_code": "U1001",
                              "zuid": "80215739"
                            }
                          ],
                          "error_code": "S1008",
                          "message": "Space member add failed"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/75918186/spaces/693000000536104/members",
                      "status": "error"
                    }
                  },
                  "Partial Access Is Not Allowed for Free Plan": {
                    "value": {
                      "error": {
                        "details": {
                          "failed_members": [
                            {
                              "error_message": "Partial access is not allowed for free plan",
                              "error_code": "Z1016",
                              "zuid": "1373000000002001"
                            }
                          ],
                          "error_code": "S1008",
                          "message": "Space member add failed"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/80585907/spaces/1373000000696005/members",
                      "status": "error"
                    }
                  },
                  "Cannot Set Full Access with Restrictions": {
                    "value": {
                      "error": {
                        "details": {
                          "failed_members": [
                            {
                              "error_message": "Restricting full access conflicts with existing permissions",
                              "error_code": "Z1015",
                              "zuid": "3009000000002003"
                            }
                          ],
                          "error_code": "S1008",
                          "message": "Space member add failed"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000618005/members",
                      "status": "error"
                    }
                  },
                  "User Not Part of the Team or Edition": {
                    "value": {
                      "error": {
                        "details": {
                          "failed_members": [
                            {
                              "error_message": "User is inactive and cannot be added to project",
                              "error_code": "U1001",
                              "zuid": "80215739"
                            }
                          ],
                          "error_code": "S1008",
                          "message": "Space member add failed"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/75918186/spaces/693000000536104/members",
                      "status": "error"
                    }
                  },
                  "Already Part of Space": {
                    "value": {
                      "error": {
                        "details": {
                          "failed_members": [
                            {
                              "error_message": "Member already part of Space",
                              "error_code": "S1019",
                              "zuid": "98722154"
                            }
                          ],
                          "error_code": "S1008",
                          "message": "Space member add failed"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000039170/members",
                      "status": "error"
                    }
                  },
                  "Private Sharing Is Restricted for Free Plan": {
                    "value": {
                      "error": {
                        "details": {
                          "failed_members": [
                            {
                              "error_message": "Private share is restricted for free plan",
                              "error_code": "Z1014",
                              "zuid": "80215739"
                            }
                          ],
                          "error_code": "S1008",
                          "message": "Space member add failed"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/80585907/spaces/1373000000696005/members",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - missing or invalid access token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Unauthorized": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "A1003",
                          "message": "The user doesn't have permission to perform this action",
                          "space_id": "300900000014503"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/300900000014503/members",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFoundAResourceNamedInThePathDoesNotEx10"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows30Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "CREATE",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "$ref": "#/components/parameters/SpaceId"
          }
        ],
        "x-vani-read-only": false,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 30
        },
        "tags": [
          "Space Members"
        ]
      },
      "get": {
        "summary": "Get the members of a space",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.READ"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.READ"
            ]
          }
        ],
        "operationId": "getSpaceMembers",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "Using Filter Fields": {
                    "value": {
                      "data": {
                        "space_members": [
                          {
                            "role_name": "EDITOR",
                            "display_name": "Emma Carter",
                            "zuid": "80473960"
                          },
                          {
                            "role_name": "VIEWER",
                            "display_name": "CloudSpark",
                            "zuid": "1505000000002005"
                          },
                          {
                            "role_name": "CREATOR",
                            "display_name": "Ryan Mitchell",
                            "zuid": "96384499"
                          }
                        ]
                      },
                      "message": "Space members fetched successfully.",
                      "request_uri": "/vani/api/v1/editions/97375109/spaces/1505000000022005/members",
                      "status": "success"
                    }
                  },
                  "Success": {
                    "value": {
                      "data": {
                        "space_members": [
                          {
                            "role_name": "CREATOR",
                            "added_type_name": "USER",
                            "added_time": "Fri, 21 Aug 2026, 18:25:57",
                            "mail_id": "user3@example.com",
                            "added_by": "82512958",
                            "display_name": "Sakthii5.2",
                            "zuid": "82512958"
                          }
                        ],
                        "next_from": 1
                      },
                      "message": "Space members fetched successfully.",
                      "request_uri": "/vani/api/v1/editions/112255940/spaces/5777000000911002/members",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestValidationFailed"
          },
          "401": {
            "description": "Unauthorized - missing or invalid access token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Unauthorized": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "96499735",
                          "current_user_id": "96384499",
                          "error_code": "A1003",
                          "message": "The user doesn't have permission to perform this action",
                          "space_id": "300900000038005"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/300900000038005/members",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFoundAResourceNamedInThePathDoesNotEx10"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows60Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "READ",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "$ref": "#/components/parameters/SpaceId"
          },
          {
            "schema": {
              "x-enumDescriptions": {
                "EDITOR": "Can view and edit the contents of the space.",
                "VIEWER": "Can view the space only.",
                "CREATOR": "The member who created the space.",
                "COMMENTER": "Can view the space and add comments, but not edit it.",
                "ORGANISER": "Can administer the space, including its members and sharing."
              },
              "type": "string",
              "enum": [
                "CREATOR",
                "EDITOR",
                "COMMENTER",
                "VIEWER",
                "ORGANISER"
              ]
            },
            "in": "query",
            "name": "roles",
            "description": "Parameter: roles. Allowed values: CREATOR, EDITOR, COMMENTER, VIEWER, ORGANISER",
            "required": false
          },
          {
            "schema": {
              "x-enumDescriptions": {
                "ROLE_DESC": "Sort by role, most privileged first.",
                "ROLE_ASC": "Sort by role, least privileged first."
              },
              "type": "string",
              "enum": [
                "ROLE_ASC",
                "ROLE_DESC"
              ]
            },
            "in": "query",
            "name": "sort_by",
            "description": "Specifies the field used to sort the results. Allowed values: ROLE_ASC, ROLE_DESC",
            "required": false
          },
          {
            "$ref": "#/components/parameters/Search"
          },
          {
            "schema": {
              "type": "string",
              "maxLength": 1000,
              "enum": [
                "added_type_name",
                "display_name",
                "zuid",
                "added_time",
                "mail_id",
                "role_name",
                "added_by"
              ]
            },
            "in": "query",
            "name": "fields",
            "description": "Specifies the fields (comma-separated) to retrieve. Allowed values: added_type_name, display_name, zuid, added_time, mail_id, role_name, added_by",
            "required": false
          },
          {
            "$ref": "#/components/parameters/From"
          },
          {
            "$ref": "#/components/parameters/Limit"
          }
        ],
        "x-vani-read-only": true,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 60
        },
        "tags": [
          "Space Members"
        ]
      }
    },
    "/vani/api/v1/editions/{edition_id}/spaces": {
      "post": {
        "summary": "Create a new space",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.CREATE"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.CREATE"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSpaceRequest"
              }
            }
          }
        },
        "operationId": "createSpace",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "Create Space Using Template": {
                    "value": {
                      "data": {
                        "edition_id": "96499735",
                        "current_user_id": "96384499",
                        "space_id": "3009000000145003",
                        "uri": "/vani/api/v1/editions/96499735/spaces/3009000000145003"
                      },
                      "message": "Space created successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/",
                      "status": "success"
                    }
                  },
                  "Success": {
                    "value": {
                      "data": {
                        "edition_id": "96499735",
                        "current_user_id": "96384499",
                        "space_id": "3009000000141003",
                        "uri": "/vani/api/v1/editions/96499735/spaces/3009000000141003"
                      },
                      "message": "Space created successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestValidationFailed"
          },
          "401": {
            "description": "Unauthorized - missing or invalid access token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Unauthorized": {
                    "value": {
                      "error": {
                        "details": {
                          "current_user_id": "96384499",
                          "error_code": "T1006",
                          "message": "User is not a member of the team"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/75918186/spaces/",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found - a resource named in the path does not exist, or is not visible to the caller",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Template Not Found": {
                    "value": {
                      "error": {
                        "details": {
                          "edition_id": "60029715808",
                          "current_user_id": "60029267674",
                          "error_code": "S1030",
                          "message": "Template not found"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/60029715808/spaces/",
                      "status": "error"
                    }
                  },
                  "Team Not Found": {
                    "value": {
                      "error": {
                        "details": {
                          "current_user_id": "96384499",
                          "error_code": "T1008",
                          "message": "Team not found"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows30Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "CREATE",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          }
        ],
        "x-vani-read-only": false,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 30
        },
        "tags": [
          "Spaces"
        ]
      },
      "get": {
        "summary": "Get all spaces in an edition",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.READ"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.READ"
            ]
          }
        ],
        "operationId": "getSpaces",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/VaniEnvelope"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "object",
                          "properties": {
                            "spaces_info": {
                              "type": "array",
                              "items": {
                                "$ref": "#/components/schemas/ProjectVO"
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                },
                "examples": {
                  "A_T - FAVOURITES": {
                    "value": {
                      "data": {
                        "space_count": 1,
                        "spaces_info": [
                          {
                            "created_time": "Fri, 24 Jan 2025, 12:25:29",
                            "last_modified_time": "Fri, 24 Jan 2025, 12:25:29",
                            "is_favorite": "true",
                            "space_name": "Business case template",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_member_count": "1",
                            "space_id": "3009000000093779",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          }
                        ]
                      },
                      "message": "Space fetched successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces",
                      "status": "success"
                    }
                  },
                  "A_T - RECENT_ALL_SPACES_ORG": {
                    "value": {
                      "data": {
                        "space_count": 2,
                        "spaces_info": [
                          {
                            "created_time": "Fri, 17 Jan 2025, 12:00:57",
                            "last_modified_time": "Fri, 17 Jan 2025, 12:40:05",
                            "is_favorite": "false",
                            "space_name": "testing library",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_member_count": "0",
                            "space_id": "3009000000038005",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Fri, 03 Jan 2025, 11:55:58",
                            "last_modified_time": "Fri, 03 Jan 2025, 11:57:14",
                            "is_favorite": "false",
                            "space_name": "Vani - Getting Started",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_member_count": "0",
                            "space_id": "3009000000002013",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          }
                        ]
                      },
                      "message": "Space fetched successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces",
                      "status": "success"
                    }
                  },
                  "A_T - RECENTLY_TRASHED": {
                    "value": {
                      "data": {
                        "space_count": 2,
                        "spaces_info": [
                          {
                            "created_time": "Fri, 24 Jan 2025, 12:26:26",
                            "last_modified_time": "Fri, 24 Jan 2025, 12:26:26",
                            "is_favorite": "false",
                            "space_name": "trash 1",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "state_modified_time": "Fri, 24 Jan 2025, 12:26:36",
                            "space_id": "3009000000093854",
                            "last_author_zuid": "96384499",
                            "status": "TRASH"
                          },
                          {
                            "created_time": "Fri, 24 Jan 2025, 12:26:46",
                            "last_modified_time": "Fri, 24 Jan 2025, 12:26:46",
                            "is_favorite": "false",
                            "space_name": "trash 2",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "state_modified_time": "Fri, 24 Jan 2025, 12:26:51",
                            "space_id": "3009000000093930",
                            "last_author_zuid": "96384499",
                            "status": "TRASH"
                          }
                        ]
                      },
                      "message": "Space fetched successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces",
                      "status": "success"
                    }
                  },
                  "Using Filter Fields": {
                    "value": {
                      "data": {
                        "space_count": 58,
                        "spaces_info": [
                          {
                            "space_name": "Business case template",
                            "owner_zuid": "96384499",
                            "space_member_count": "1"
                          },
                          {
                            "space_name": "Customer journey map",
                            "owner_zuid": "96384499",
                            "space_member_count": "1"
                          },
                          {
                            "space_name": "Project",
                            "owner_zuid": "96384499",
                            "space_member_count": "1"
                          },
                          {
                            "space_name": "New Space",
                            "owner_zuid": "97377569",
                            "space_member_count": "2"
                          },
                          {
                            "space_name": "New Space",
                            "owner_zuid": "96384499",
                            "space_member_count": "1"
                          },
                          {
                            "space_name": "New Space",
                            "owner_zuid": "96384499",
                            "space_member_count": "1"
                          },
                          {
                            "space_name": "New Space",
                            "owner_zuid": "96384499",
                            "space_member_count": "1"
                          },
                          {
                            "space_name": "New Space",
                            "owner_zuid": "96384499",
                            "space_member_count": "1"
                          },
                          {
                            "space_name": "New Space",
                            "owner_zuid": "96384499",
                            "space_member_count": "1"
                          },
                          {
                            "space_name": "New Space",
                            "owner_zuid": "96384499",
                            "space_member_count": "1"
                          }
                        ]
                      },
                      "message": "Space fetched successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces",
                      "status": "success"
                    }
                  },
                  "A_T - SHARED_SPACES": {
                    "value": {
                      "data": {
                        "space_count": 4,
                        "spaces_info": [
                          {
                            "created_time": "Wed, 22 Jan 2025, 01:17:29",
                            "last_modified_time": "Wed, 22 Jan 2025, 01:17:29",
                            "is_favorite": "false",
                            "space_name": "New Space",
                            "publish": "false",
                            "owner_zuid": "97377569",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_member_count": "3",
                            "space_id": "3009000000058037",
                            "last_author_zuid": "97377569",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Fri, 24 Jan 2025, 00:01:19",
                            "last_modified_time": "Fri, 24 Jan 2025, 00:01:19",
                            "is_favorite": "false",
                            "space_name": "New Space",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_member_count": "2",
                            "space_id": "3009000000093003",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Wed, 22 Jan 2025, 00:44:10",
                            "last_modified_time": "Wed, 22 Jan 2025, 00:44:10",
                            "is_favorite": "false",
                            "space_name": "project members test",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_member_count": "3",
                            "space_id": "3009000000067027",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          }
                        ]
                      },
                      "message": "Space fetched successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces",
                      "status": "success"
                    }
                  },
                  "A_T - SHARED_BY_OTHERS": {
                    "value": {
                      "data": {
                        "space_count": 1,
                        "spaces_info": [
                          {
                            "created_time": "Wed, 22 Jan 2025, 01:17:29",
                            "last_modified_time": "Wed, 22 Jan 2025, 01:17:29",
                            "is_favorite": "false",
                            "space_name": "New Space",
                            "publish": "false",
                            "owner_zuid": "97377569",
                            "can_edit": "false",
                            "team_id": "3009000000002003",
                            "space_member_count": "3",
                            "space_id": "3009000000058037",
                            "last_author_zuid": "97377569",
                            "status": "ACTIVE"
                          }
                        ]
                      },
                      "message": "Space fetched successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces",
                      "status": "success"
                    }
                  },
                  "A_T - PUBLISHED_WITH_TEAM": {
                    "value": {
                      "data": {
                        "space_count": 2,
                        "spaces_info": [
                          {
                            "created_time": "Fri, 17 Jan 2025, 12:00:57",
                            "last_modified_time": "Fri, 17 Jan 2025, 12:40:05",
                            "is_favorite": "false",
                            "space_name": "testing library",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_member_count": "0",
                            "space_id": "3009000000038005",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Fri, 03 Jan 2025, 11:55:58",
                            "last_modified_time": "Fri, 03 Jan 2025, 11:57:14",
                            "is_favorite": "false",
                            "space_name": "Vani - Getting Started",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_member_count": "0",
                            "space_id": "3009000000002013",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          }
                        ]
                      },
                      "message": "Space fetched successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces",
                      "status": "success"
                    }
                  },
                  "A_T - SHARED_BY_ME": {
                    "value": {
                      "data": {
                        "space_count": 3,
                        "spaces_info": [
                          {
                            "created_time": "Fri, 24 Jan 2025, 00:01:19",
                            "last_modified_time": "Fri, 24 Jan 2025, 00:01:19",
                            "is_favorite": "false",
                            "space_name": "New Space",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_member_count": "2",
                            "space_id": "3009000000093003",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          }
                        ]
                      },
                      "message": "Space fetched successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces",
                      "status": "success"
                    }
                  },
                  "A_T - DRAFT_SPACES": {
                    "value": {
                      "data": {
                        "space_count": 24,
                        "spaces_info": [
                          {
                            "created_time": "Fri, 24 Jan 2025, 12:25:29",
                            "last_modified_time": "Fri, 24 Jan 2025, 12:25:29",
                            "is_favorite": "true",
                            "space_name": "Business case template",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_id": "3009000000093779",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Fri, 24 Jan 2025, 12:25:24",
                            "last_modified_time": "Fri, 24 Jan 2025, 12:25:24",
                            "is_favorite": "false",
                            "space_name": "Customer journey map",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_id": "3009000000093710",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Wed, 22 Jan 2025, 21:42:57",
                            "last_modified_time": "Wed, 22 Jan 2025, 21:42:57",
                            "is_favorite": "false",
                            "space_name": "GET PROJECT TEST",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_id": "3009000000090062",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Mon, 27 Jan 2025, 22:07:24",
                            "last_modified_time": "Mon, 27 Jan 2025, 22:07:24",
                            "is_favorite": "false",
                            "space_name": "New Space",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_id": "3009000000098042",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Mon, 27 Jan 2025, 22:13:00",
                            "last_modified_time": "Mon, 27 Jan 2025, 22:13:00",
                            "is_favorite": "false",
                            "space_name": "New Space",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_id": "3009000000100003",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Mon, 27 Jan 2025, 22:13:35",
                            "last_modified_time": "Mon, 27 Jan 2025, 22:13:35",
                            "is_favorite": "false",
                            "space_name": "New Space",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_id": "3009000000100067",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Mon, 27 Jan 2025, 22:14:52",
                            "last_modified_time": "Mon, 27 Jan 2025, 22:14:52",
                            "is_favorite": "false",
                            "space_name": "New Space",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_id": "3009000000100187",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Mon, 27 Jan 2025, 22:17:19",
                            "last_modified_time": "Mon, 27 Jan 2025, 22:17:19",
                            "is_favorite": "false",
                            "space_name": "New Space",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_id": "3009000000100307",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Tue, 28 Jan 2025, 20:22:52",
                            "last_modified_time": "Tue, 28 Jan 2025, 21:39:33",
                            "is_favorite": "false",
                            "space_name": "New Space",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_id": "3009000000111003",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Wed, 29 Jan 2025, 17:43:08",
                            "last_modified_time": "Wed, 29 Jan 2025, 17:43:08",
                            "is_favorite": "false",
                            "space_name": "New Space",
                            "publish": "false",
                            "owner_zuid": "96384499",
                            "can_edit": "true",
                            "team_id": "3009000000002003",
                            "space_id": "3009000000126009",
                            "last_author_zuid": "96384499",
                            "status": "ACTIVE"
                          }
                        ]
                      },
                      "message": "Space fetched successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces",
                      "status": "success"
                    }
                  },
                  "A_T - ALL_SPACES": {
                    "value": {
                      "data": {
                        "space_count": 25,
                        "spaces_info": [
                          {
                            "created_time": "Tue, 30 Sep 2025, 13:07:54",
                            "last_modified_time": "Fri, 03 Jul 2026, 19:51:24",
                            "is_favorite": "false",
                            "can_edit": "true",
                            "open_url": "https://app.localvanihq.net/edition/112255940/space/5777000000027003",
                            "team_id": "5777000000002017",
                            "space_member_count": "1",
                            "space_name": "MCP AUTH",
                            "publish": "false",
                            "owner_zuid": "82512958",
                            "space_id": "5777000000027003",
                            "last_author_zuid": "82512958",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Thu, 20 Aug 2026, 11:18:56",
                            "last_modified_time": "Thu, 20 Aug 2026, 11:29:46",
                            "is_favorite": "false",
                            "can_edit": "true",
                            "open_url": "https://app.localvanihq.net/edition/112255940/space/5777000000904056",
                            "team_id": "5777000000002017",
                            "space_member_count": "1",
                            "space_name": "MCP Connector CURVE to LINE Test 2026-08-20",
                            "publish": "false",
                            "owner_zuid": "82512958",
                            "space_id": "5777000000904056",
                            "last_author_zuid": "82512958",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Thu, 20 Aug 2026, 08:38:38",
                            "last_modified_time": "Thu, 20 Aug 2026, 09:21:47",
                            "is_favorite": "true",
                            "can_edit": "true",
                            "open_url": "https://app.localvanihq.net/edition/112255940/space/5777000000899002",
                            "team_id": "5777000000002017",
                            "space_member_count": "1",
                            "space_name": "MCP Full Suite Regression 2026-08-20",
                            "publish": "false",
                            "owner_zuid": "82512958",
                            "space_id": "5777000000899002",
                            "last_author_zuid": "82512958",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Thu, 20 Aug 2026, 10:57:26",
                            "last_modified_time": "Thu, 20 Aug 2026, 11:30:13",
                            "is_favorite": "true",
                            "can_edit": "true",
                            "open_url": "https://app.localvanihq.net/edition/112255940/space/5777000000899158",
                            "team_id": "5777000000002017",
                            "space_member_count": "1",
                            "space_name": "MCP Full Suite Run B 2026-08-20 (renamed)",
                            "publish": "false",
                            "owner_zuid": "82512958",
                            "space_id": "5777000000899158",
                            "last_author_zuid": "82512958",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Tue, 14 Jul 2026, 16:24:35",
                            "last_modified_time": "Tue, 14 Jul 2026, 19:20:14",
                            "is_favorite": "false",
                            "can_edit": "true",
                            "open_url": "https://app.localvanihq.net/edition/112255940/space/5777000000831044",
                            "team_id": "5777000000002017",
                            "space_member_count": "1",
                            "space_name": "MCP issue find",
                            "publish": "false",
                            "owner_zuid": "82512958",
                            "space_id": "5777000000831044",
                            "last_author_zuid": "82512958",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Thu, 20 Aug 2026, 09:13:46",
                            "last_modified_time": "Thu, 20 Aug 2026, 09:13:46",
                            "is_favorite": "false",
                            "can_edit": "true",
                            "open_url": "https://app.localvanihq.net/edition/112255940/space/5777000000899063",
                            "team_id": "5777000000002017",
                            "space_member_count": "1",
                            "space_name": "MCP Suite Moved Zone Target",
                            "publish": "false",
                            "owner_zuid": "82512958",
                            "space_id": "5777000000899063",
                            "last_author_zuid": "82512958",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Thu, 20 Aug 2026, 11:04:26",
                            "last_modified_time": "Thu, 20 Aug 2026, 11:04:26",
                            "is_favorite": "false",
                            "can_edit": "true",
                            "open_url": "https://app.localvanihq.net/edition/112255940/space/5777000000899181",
                            "team_id": "5777000000002017",
                            "space_member_count": "1",
                            "space_name": "MCP Suite NewSpace From Zone",
                            "publish": "false",
                            "owner_zuid": "82512958",
                            "state_modified_time": "Thu, 20 Aug 2026, 11:39:08",
                            "space_id": "5777000000899181",
                            "last_author_zuid": "82512958",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Thu, 20 Aug 2026, 09:19:24",
                            "last_modified_time": "Thu, 20 Aug 2026, 09:19:24",
                            "is_favorite": "false",
                            "can_edit": "true",
                            "open_url": "https://app.localvanihq.net/edition/112255940/space/5777000000899115",
                            "team_id": "5777000000002017",
                            "space_member_count": "1",
                            "space_name": "MCP Suite Space Copy",
                            "publish": "false",
                            "owner_zuid": "82512958",
                            "space_id": "5777000000899115",
                            "last_author_zuid": "82512958",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Tue, 30 Sep 2025, 12:11:09",
                            "last_modified_time": "Tue, 30 Sep 2025, 12:11:09",
                            "is_favorite": "false",
                            "can_edit": "true",
                            "open_url": "https://app.localvanihq.net/edition/112255940/space/5777000000022031",
                            "team_id": "5777000000002017",
                            "space_member_count": "1",
                            "space_name": "New Space",
                            "publish": "false",
                            "owner_zuid": "82512958",
                            "space_id": "5777000000022031",
                            "last_author_zuid": "82512958",
                            "status": "ACTIVE"
                          },
                          {
                            "created_time": "Mon, 13 Oct 2025, 18:08:43",
                            "last_modified_time": "Mon, 13 Oct 2025, 18:10:13",
                            "is_favorite": "false",
                            "can_edit": "true",
                            "open_url": "https://app.localvanihq.net/edition/112255940/space/5777000000033005",
                            "team_id": "5777000000002017",
                            "space_member_count": "1",
                            "space_name": "New Space",
                            "publish": "false",
                            "owner_zuid": "82512958",
                            "space_id": "5777000000033005",
                            "last_author_zuid": "82512958",
                            "status": "ACTIVE"
                          }
                        ]
                      },
                      "message": "Space fetched successfully.",
                      "request_uri": "/vani/api/v1/editions/112255940/spaces",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestValidationFailed"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedMissingOrInvalidAccessToken9"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundAResourceNamedInThePathDoesNotEx10"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows60Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "READ",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "team_id",
            "description": "The ID of the team within the edition",
            "required": false
          },
          {
            "schema": {
              "x-enumDescriptions": {
                "PUBLISHED_WITH_ORG": "Spaces published to the whole organisation.",
                "RECENTLY_TRASHED_SPACES": "Recently trashed Spaces",
                "ALL_SPACES": "All Spaces within the edition",
                "DRAFT_SPACES": "Spaces that are in draft",
                "SHARED_SPACES": "Spaces shared with you",
                "SHARED_BY_OTHERS": "Spaces shared by others with you",
                "FAVOURITES": "Spaces the user has marked as a favourite.",
                "RECENT_ALL_SPACES_ORG": "Recently opened spaces from anywhere in the edition.",
                "RECENTLY_TRASHED_ZONES": "Recently trashed zones only.",
                "NON_TEAM_MEMBER_SHARED_SPACE": "Spaces shared with the user from a team they do not belong to.",
                "PUBLISHED_WITH_TEAM": "Spaces published with the team",
                "SHARED_BY_ME": "Spaces you’ve shared",
                "RECENTLY_TRASHED": "Recently trashed spaces and zones together."
              },
              "type": "string",
              "enum": [
                "ALL_SPACES",
                "SHARED_SPACES",
                "SHARED_BY_ME",
                "SHARED_BY_OTHERS",
                "PUBLISHED_WITH_TEAM",
                "PUBLISHED_WITH_ORG",
                "FAVOURITES",
                "DRAFT_SPACES",
                "RECENT_ALL_SPACES_ORG",
                "RECENTLY_TRASHED_SPACES",
                "RECENTLY_TRASHED",
                "RECENTLY_TRASHED_ZONES",
                "NON_TEAM_MEMBER_SHARED_SPACE"
              ]
            },
            "in": "query",
            "name": "action_type",
            "description": "Specifies the category or context of Spaces. Allowed values: ALL_SPACES, SHARED_SPACES, SHARED_BY_ME, SHARED_BY_OTHERS, PUBLISHED_WITH_TEAM, PUBLISHED_WITH_ORG, FAVOURITES, DRAFT_SPACES, RECENT_ALL_SPACES_ORG, RECENTLY_TRASHED_SPACES, RECENTLY_TRASHED, RECENTLY_TRASHED_ZONES, NON_TEAM_MEMBER_SHARED_SPACE",
            "required": true
          },
          {
            "schema": {
              "x-enumDescriptions": {
                "RECENTLY_ACCESSED_BY_USER": "Most recently accessed by the calling user first.",
                "RECENTLY_OPENED": "Most recently opened first.",
                "TIME_CREATED": "Most recently created first.",
                "RECENTLY_MODIFIED_BY_USER": "Most recently modified by the calling user first.",
                "TIME_DELETED_DESC": "Most recently deleted first.",
                "TIME_DELETED_ASC": "Least recently deleted first.",
                "A_Z": "By name, A to Z.",
                "Z_A": "By name, Z to A.",
                "RECENTLY_TRASHED": "Most recently trashed first."
              },
              "type": "string",
              "enum": [
                "TIME_CREATED",
                "TIME_DELETED_ASC",
                "TIME_DELETED_DESC",
                "A_Z",
                "Z_A",
                "RECENTLY_OPENED",
                "RECENTLY_TRASHED",
                "RECENTLY_ACCESSED_BY_USER",
                "RECENTLY_MODIFIED_BY_USER"
              ]
            },
            "in": "query",
            "name": "sort_by",
            "description": "Specifies the field used to sort the results. Allowed values: TIME_CREATED, TIME_DELETED_ASC, TIME_DELETED_DESC, A_Z, Z_A, RECENTLY_OPENED, RECENTLY_TRASHED, RECENTLY_ACCESSED_BY_USER, RECENTLY_MODIFIED_BY_USER",
            "required": true
          },
          {
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "in": "query",
            "name": "filter_by",
            "description": "Parameter: filter_by. Max length: 100",
            "required": false
          },
          {
            "schema": {
              "pattern": "^(?:[0-9a-zA-Z_~`#%&\\^\\*\\(\\)\\{\\}\\[\\]\\+\\*\\|=\\-\\.\\$@\\?,:;>\\\\'\\/!\\u0080-\\uFFFF\\s<\"]+)$",
              "type": "string"
            },
            "in": "query",
            "name": "search",
            "description": "The keyword or phrase to search for",
            "required": false
          },
          {
            "$ref": "#/components/parameters/From"
          },
          {
            "$ref": "#/components/parameters/Limit"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "need_total_count",
            "description": "Set this to true if you want to include the total count of items in the response. By default, this is false",
            "required": false
          },
          {
            "$ref": "#/components/parameters/Fields6"
          }
        ],
        "x-vani-read-only": true,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 60
        },
        "tags": [
          "Spaces"
        ]
      }
    },
    "/vani/api/v1/editions/{edition_id}/spaces/{space_id}/state": {
      "put": {
        "summary": "Update space state",
        "security": [
          {
            "iam-oauth2-schema": [
              "Vani.spaces.UPDATE"
            ]
          },
          {
            "vani-api-key": [],
            "iam-oauth2-schema": [
              "Vani.spaces.UPDATE"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSpaceStateRequest"
              }
            }
          }
        },
        "operationId": "updateSpaceState",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniEnvelope"
                },
                "examples": {
                  "Success 2": {
                    "value": {
                      "data": {
                        "edition_id": "96499735",
                        "space_state": "RESTORE",
                        "current_user_id": "96384499",
                        "space_id": "3009000000093854"
                      },
                      "message": "Space state updated successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000093854/state",
                      "status": "success"
                    }
                  },
                  "Success": {
                    "value": {
                      "data": {
                        "edition_id": "96499735",
                        "space_state": "TRASH",
                        "current_user_id": "96384499",
                        "space_id": "3009000000093854"
                      },
                      "message": "Space state updated successfully.",
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000093854/state",
                      "status": "success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request - validation failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Space Is Not in an Active State": {
                    "value": {
                      "error": {
                        "details": {
                          "current_user_id": "96384499",
                          "error_code": "S1012",
                          "message": "Space is not in an active state"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000093854/state",
                      "status": "error"
                    }
                  },
                  "Space Is Not in a Trashed State": {
                    "value": {
                      "error": {
                        "details": {
                          "current_user_id": "96384499",
                          "error_code": "S1011",
                          "message": "Space is not in an trashed state"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/3009000000141003/state",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - missing or invalid access token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VaniError"
                },
                "examples": {
                  "Unauthorized 2": {
                    "value": {
                      "error": {
                        "details": {
                          "current_user_id": "96384499",
                          "error_code": "A1003",
                          "message": "The user doesn't have permission to perform this action"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/300900000000003/state",
                      "status": "error"
                    }
                  },
                  "Unauthorized": {
                    "value": {
                      "error": {
                        "details": {
                          "current_user_id": "96384499",
                          "error_code": "A1003",
                          "message": "The user doesn't have permission to perform this action"
                        }
                      },
                      "request_uri": "/vani/api/v1/editions/96499735/spaces/300900000009003/state",
                      "status": "error"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFoundAResourceNamedInThePathDoesNotEx10"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceededThisOperationAllows30Re"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerErrorTheRequestWasWellForm"
          }
        },
        "x-vani-operation-type": "UPDATE",
        "parameters": [
          {
            "$ref": "#/components/parameters/EditionId"
          },
          {
            "$ref": "#/components/parameters/SpaceId"
          }
        ],
        "x-vani-read-only": false,
        "x-vani-destructive": false,
        "x-vani-throttle": {
          "duration": "1M",
          "threshold": 30
        },
        "tags": [
          "Spaces"
        ]
      }
    }
  },
  "info": {
    "contact": {
      "name": "Vani API Support",
      "url": "https://www.vanihq.com/resources/api/doc/"
    },
    "description": "Spaces (projects) within an edition, their members, join requests, and role lookups.",
    "title": "Spaces",
    "version": "1.0.0"
  },
  "tags": [
    {
      "name": "Spaces",
      "description": "Create, read, duplicate, and update spaces, and resolve a user's role within them."
    },
    {
      "name": "Space Members",
      "description": "Add, update, remove, and list the members of a space."
    },
    {
      "name": "Space Requests",
      "description": "Raise, list, accept, and reject requests to join a space."
    }
  ]
}