{"openapi":"3.1.0","x-id":["reitit.openapi/default"],"info":{"title":"Pitch API","description":"Programmatic access to Pitch: create presentations, manage sharing, and browse your workspace, right from your own code.\n\nThe Pitch API lets you build presentations from templates, populate them with your own data, and share them via managed links, all through authenticated REST calls. Automate recurring presentations, or build custom workflows around presentation creation.\n\nSome examples might be creating personalised presentations when:\n\n* a CRM record's deal stage changes\n* a visitor submits a form on your website\n\n**Note:** Available on Business and Enterprise plans only.\n\n## Authentication\n\nAll requests must include your personal API key in the `X-API-KEY` header.\n\n**Creating a key**\n\n1. In the Pitch app, open **Settings**.\n2. In the settings sidebar, under the **My settings** group, open **Integrations**.\n3. In the **My API keys** section, select **Add new** and give the key a name.\n4. Copy the key immediately — for security, it is shown only once and cannot be retrieved later.\n\nAPI keys are personal and scoped to your own data in the workspace. If **Add new** is unavailable, contact your workspace admin — they control who can create keys.\n\n## Rate limiting\n\nRequests authenticated with an API key are rate limited per user: all of a user's keys draw from one shared allowance, and requests over it receive **429 Too Many Requests**. Your current allowance is reported on every response in the `X-RateLimit-Limit` and `X-RateLimit-Remaining` headers — treat those as the source of truth and use them to pace your client.","version":"1.0.0"},"servers":[{"url":"https://api.pitch.com"}],"tags":[{"name":"Presentations","description":"Create presentations from templates via batch jobs, poll job status, and manage sharing links."},{"name":"Content","description":"Tools for presentations and folders."},{"name":"Jobs","description":"Poll the status and result of asynchronous jobs started by other endpoints."},{"name":"Templates","description":"Published templates available as starting points for new presentations."},{"name":"Folders","description":"Folders in a teamspace or in the user's private space."},{"name":"Teamspaces","description":"Teamspaces visible to the user."},{"name":"Workspace","description":"The workspace context the API key is scoped to."}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"OAuth 2.0 access token obtained through the Pitch OAuth flow, sent as `Authorization: Bearer <token>`."},"apiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"Personal API key created in the Pitch app under **Settings → Integrations → My API keys**."}}},"security":[{"apiKeyAuth":[]},{"bearerAuth":[]}],"paths":{"/api/v1/teamspaces":{"get":{"parameters":[{"in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100},"description":"Maximum number of teamspaces to return (default 20, max 100)."},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"},"description":"Opaque pagination cursor returned by a previous call."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"teamspace_id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"oneOf":[{"type":"string"},{"type":"null"}]},"join_policy":{"type":"string","enum":["open","invite-only","mandatory"]},"members_can_invite":{"type":"boolean"},"avatar":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["icon"]},"icon":{"type":"string"},"color":{"type":"string"}},"required":["type","icon","color"],"additionalProperties":false},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["teamspace_id","workspace_id","name","description","join_policy","members_can_invite","avatar","created_at","updated_at"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"type":"string"}},"required":["has_more"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"teamspace_id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"oneOf":[{"type":"string"},{"type":"null"}]},"join_policy":{"type":"string","enum":["open","invite-only","mandatory"]},"members_can_invite":{"type":"boolean"},"avatar":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["icon"]},"icon":{"type":"string"},"color":{"type":"string"}},"required":["type","icon","color"],"additionalProperties":false},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["teamspace_id","workspace_id","name","description","join_policy","members_can_invite","avatar","created_at","updated_at"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"type":"string"}},"required":["has_more"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}}}},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"tags":["Teamspaces"],"summary":"List teamspaces","description":"List teamspaces in the workspace. Hidden teamspaces are included only for admins/owners and their members."}},"/api/v1/teamspaces/{teamspace_id}":{"get":{"parameters":[{"in":"path","name":"teamspace_id","required":true,"schema":{"type":"string","format":"uuid"},"description":"Teamspace UUID to fetch."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"teamspace_id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"oneOf":[{"type":"string"},{"type":"null"}]},"join_policy":{"type":"string","enum":["open","invite-only","mandatory"]},"members_can_invite":{"type":"boolean"},"avatar":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["icon"]},"icon":{"type":"string"},"color":{"type":"string"}},"required":["type","icon","color"],"additionalProperties":false},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["teamspace_id","workspace_id","name","description","join_policy","members_can_invite","avatar","created_at","updated_at"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"teamspace_id":{"type":"string","format":"uuid"},"workspace_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"oneOf":[{"type":"string"},{"type":"null"}]},"join_policy":{"type":"string","enum":["open","invite-only","mandatory"]},"members_can_invite":{"type":"boolean"},"avatar":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["icon"]},"icon":{"type":"string"},"color":{"type":"string"}},"required":["type","icon","color"],"additionalProperties":false},{"type":"null"}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["teamspace_id","workspace_id","name","description","join_policy","members_can_invite","avatar","created_at","updated_at"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"tags":["Teamspaces"],"summary":"Get teamspace","description":"Get a teamspace by ID."}},"/api/v1/content/move":{"post":{"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"presentation_ids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"UUIDs of the presentations to move."},"folder_ids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"UUIDs of the folders to move. Everything inside a folder moves with it."},"target_teamspace_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UUID of the teamspace to move the content into. When omitted the content is moved into the caller's own private space."},"target_folder_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UUID of the folder to move the content into. Must be a folder in the target teamspace (or in the caller's private space when no teamspace is given). When omitted the content is moved to the top level of the target space."}},"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"presentation_ids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"UUIDs of the presentations to move."},"folder_ids":{"type":"array","items":{"type":"string","format":"uuid"},"description":"UUIDs of the folders to move. Everything inside a folder moves with it."},"target_teamspace_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UUID of the teamspace to move the content into. When omitted the content is moved into the caller's own private space."},"target_folder_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UUID of the folder to move the content into. Must be a folder in the target teamspace (or in the caller's private space when no teamspace is given). When omitted the content is moved to the top level of the target space."}},"additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["complete","in-progress"]},"moved_items":{"type":"integer"},"moved_folders":{"type":"array","items":{"type":"object","properties":{"previous_folder_id":{"type":"string","format":"uuid"},"folder_id":{"type":"string","format":"uuid"}},"required":["previous_folder_id","folder_id"],"additionalProperties":false}},"job_id":{"type":"string","format":"uuid"},"total_items":{"type":"integer"},"unshared_count":{"type":"integer"}},"required":["status"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["complete","in-progress"]},"moved_items":{"type":"integer"},"moved_folders":{"type":"array","items":{"type":"object","properties":{"previous_folder_id":{"type":"string","format":"uuid"},"folder_id":{"type":"string","format":"uuid"}},"required":["previous_folder_id","folder_id"],"additionalProperties":false}},"job_id":{"type":"string","format":"uuid"},"total_items":{"type":"integer"},"unshared_count":{"type":"integer"}},"required":["status"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"tags":["Content"],"summary":"Move content","description":"Move presentations and folders into a teamspace, folder or private space."}},"/api/v1/content/rename":{"post":{"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"presentation_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UUID of the presentation to rename. Pass either this or folder_id, not both."},"folder_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UUID of the folder to rename. Pass either this or presentation_id, not both."},"name":{"type":"string","minLength":1,"description":"The new name. Renaming a presentation changes its file name, not the title on its slides."}},"required":["name"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"presentation_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UUID of the presentation to rename. Pass either this or folder_id, not both."},"folder_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UUID of the folder to rename. Pass either this or presentation_id, not both."},"name":{"type":"string","minLength":1,"description":"The new name. Renaming a presentation changes its file name, not the title on its slides."}},"required":["name"],"additionalProperties":false}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid"},"folder_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"previous_name":{"type":"string"}},"required":["name","previous_name"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid"},"folder_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"previous_name":{"type":"string"}},"required":["name","previous_name"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"tags":["Content"],"summary":"Rename content","description":"Rename a presentation or folder."}},"/api/v1/templates":{"get":{"parameters":[{"in":"query","name":"include_gallery_templates","required":false,"schema":{"type":"boolean"},"description":"Also include Pitch's built-in gallery templates (default false). When true, workspace templates are returned first, then gallery templates, and every template carries a `source` of \"workspace\" or \"gallery\". Rejected when the workspace admin has hidden gallery templates."},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100},"description":"Maximum number of templates to return (default 20, max 100)."},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"},"description":"Opaque pagination cursor returned by a previous call."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"template_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"source":{"type":"string"}},"required":["template_id","name","created_at","updated_at"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"type":"string"}},"required":["has_more"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"template_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"source":{"type":"string"}},"required":["template_id","name","created_at","updated_at"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"type":"string"}},"required":["has_more"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}}}}},"tags":["Templates"],"summary":"List templates","description":"List published workspace templates, optionally including Pitch's built-in gallery templates."}},"/api/v1/templates/{template_id}":{"get":{"parameters":[{"in":"path","name":"template_id","required":true,"schema":{"type":"string","format":"uuid"},"description":"Template UUID, as returned by list-templates."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"template_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"source":{"type":"string"},"variables":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"value":{},"variable_type":{"type":"string"}},"required":["id","name","value"],"additionalProperties":false}}},"required":["template_id","name","created_at","updated_at","variables"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"template_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"source":{"type":"string"},"variables":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"value":{},"variable_type":{"type":"string"}},"required":["id","name","value"],"additionalProperties":false}}},"required":["template_id","name","created_at","updated_at","variables"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"tags":["Templates"],"summary":"Get template","description":"Get a published template by ID, whether from the workspace or Pitch's gallery."}},"/api/v1/workspaces/current":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"logo_url":{"oneOf":[{"type":"string"},{"type":"null"}]},"member_count":{"type":"integer"},"usage":{"type":"object","properties":{"workspace_members_limit":{"type":"object","properties":{"quota":{"anyOf":[{"type":"integer"},{"const":"unlimited"}],"description":"The allowance; the string \"unlimited\" when uncapped, 0 when no quota has been set and the capability is unusable."},"usage":{"type":"integer","description":"Amount used in the current billing period."}},"required":["quota","usage"],"additionalProperties":false},"teamspaces":{"type":"object","properties":{"quota":{"anyOf":[{"type":"integer"},{"const":"unlimited"}],"description":"The allowance; the string \"unlimited\" when uncapped, 0 when no quota has been set and the capability is unusable."},"usage":{"type":"integer","description":"Amount used in the current billing period."}},"required":["quota","usage"],"additionalProperties":false},"included_ai":{"type":"object","properties":{"quota":{"anyOf":[{"type":"integer"},{"const":"unlimited"}],"description":"The allowance; the string \"unlimited\" when uncapped, 0 when no quota has been set and the capability is unusable."},"usage":{"type":"integer","description":"Amount used in the current billing period."}},"required":["quota","usage"],"additionalProperties":false},"additional_ai":{"type":"object","properties":{"quota":{"anyOf":[{"type":"integer"},{"const":"unlimited"}],"description":"The allowance; the string \"unlimited\" when uncapped, 0 when no quota has been set and the capability is unusable."},"usage":{"type":"integer","description":"Amount used in the current billing period."}},"required":["quota","usage"],"additionalProperties":false},"advanced_links":{"type":"object","properties":{"quota":{"anyOf":[{"type":"integer"},{"const":"unlimited"}],"description":"The allowance; the string \"unlimited\" when uncapped, 0 when no quota has been set and the capability is unusable."},"usage":{"type":"integer","description":"Amount used in the current billing period."}},"required":["quota","usage"],"additionalProperties":false},"room_links":{"type":"object","properties":{"quota":{"anyOf":[{"type":"integer"},{"const":"unlimited"}],"description":"The allowance; the string \"unlimited\" when uncapped, 0 when no quota has been set and the capability is unusable."},"usage":{"type":"integer","description":"Amount used in the current billing period."}},"required":["quota","usage"],"additionalProperties":false}},"additionalProperties":false,"description":"Usage and quota of the workspace's plan limits, per capability. Capabilities not enabled on the workspace's plan are omitted."}},"required":["workspace_id","name","created_at","logo_url","member_count","usage"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"workspace_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"logo_url":{"oneOf":[{"type":"string"},{"type":"null"}]},"member_count":{"type":"integer"},"usage":{"type":"object","properties":{"workspace_members_limit":{"type":"object","properties":{"quota":{"anyOf":[{"type":"integer"},{"const":"unlimited"}],"description":"The allowance; the string \"unlimited\" when uncapped, 0 when no quota has been set and the capability is unusable."},"usage":{"type":"integer","description":"Amount used in the current billing period."}},"required":["quota","usage"],"additionalProperties":false},"teamspaces":{"type":"object","properties":{"quota":{"anyOf":[{"type":"integer"},{"const":"unlimited"}],"description":"The allowance; the string \"unlimited\" when uncapped, 0 when no quota has been set and the capability is unusable."},"usage":{"type":"integer","description":"Amount used in the current billing period."}},"required":["quota","usage"],"additionalProperties":false},"included_ai":{"type":"object","properties":{"quota":{"anyOf":[{"type":"integer"},{"const":"unlimited"}],"description":"The allowance; the string \"unlimited\" when uncapped, 0 when no quota has been set and the capability is unusable."},"usage":{"type":"integer","description":"Amount used in the current billing period."}},"required":["quota","usage"],"additionalProperties":false},"additional_ai":{"type":"object","properties":{"quota":{"anyOf":[{"type":"integer"},{"const":"unlimited"}],"description":"The allowance; the string \"unlimited\" when uncapped, 0 when no quota has been set and the capability is unusable."},"usage":{"type":"integer","description":"Amount used in the current billing period."}},"required":["quota","usage"],"additionalProperties":false},"advanced_links":{"type":"object","properties":{"quota":{"anyOf":[{"type":"integer"},{"const":"unlimited"}],"description":"The allowance; the string \"unlimited\" when uncapped, 0 when no quota has been set and the capability is unusable."},"usage":{"type":"integer","description":"Amount used in the current billing period."}},"required":["quota","usage"],"additionalProperties":false},"room_links":{"type":"object","properties":{"quota":{"anyOf":[{"type":"integer"},{"const":"unlimited"}],"description":"The allowance; the string \"unlimited\" when uncapped, 0 when no quota has been set and the capability is unusable."},"usage":{"type":"integer","description":"Amount used in the current billing period."}},"required":["quota","usage"],"additionalProperties":false}},"additionalProperties":false,"description":"Usage and quota of the workspace's plan limits, per capability. Capabilities not enabled on the workspace's plan are omitted."}},"required":["workspace_id","name","created_at","logo_url","member_count","usage"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"tags":["Workspace"],"summary":"Get current workspace","description":"Get the workspace the caller's API key is scoped to."}},"/api/v1/presentations/batch-create-jobs":{"post":{"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"template_id":{"type":"string","format":"uuid","description":"UUID of a template, from list-templates."},"data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the presentation to create."},"variables":{"type":"object","additionalProperties":{},"description":"Template variable names mapped to their replacement values."}},"required":["name"],"additionalProperties":false},"minItems":1,"description":"One object per presentation to create. Each item has a `name` (the presentation's file name) and a `variables` map of template variable names to their replacement values, e.g. `[{\"name\": \"Q3 Review — ACME\", \"variables\": {\"customer_name\": \"ACME\", \"quarter\": \"Q3\"}}]`."},"folder_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Optional UUID of the folder to place the created presentations in. The folder must belong to the target space (the teamspace when teamspace_id is given, otherwise the caller's private space)."},"teamspace_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Optional UUID of the teamspace to create the presentations in. The user must be a member of the teamspace. If this parameter is not provided, presentations will be created in the user's private space."}},"required":["template_id","data"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"template_id":{"type":"string","format":"uuid","description":"UUID of a template, from list-templates."},"data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the presentation to create."},"variables":{"type":"object","additionalProperties":{},"description":"Template variable names mapped to their replacement values."}},"required":["name"],"additionalProperties":false},"minItems":1,"description":"One object per presentation to create. Each item has a `name` (the presentation's file name) and a `variables` map of template variable names to their replacement values, e.g. `[{\"name\": \"Q3 Review — ACME\", \"variables\": {\"customer_name\": \"ACME\", \"quarter\": \"Q3\"}}]`."},"folder_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Optional UUID of the folder to place the created presentations in. The folder must belong to the target space (the teamspace when teamspace_id is given, otherwise the caller's private space)."},"teamspace_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Optional UUID of the teamspace to create the presentations in. The user must be a member of the teamspace. If this parameter is not provided, presentations will be created in the user's private space."}},"required":["template_id","data"],"additionalProperties":false}}}},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"status":{"type":"string"}},"required":["job_id","status"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"status":{"type":"string"}},"required":["job_id","status"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}}},"tags":["Presentations"],"summary":"Create presentations using variables","description":"Create one or more presentations from a template, deterministically substituting variable values."}},"/api/v1/presentations/update-variables-jobs":{"post":{"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid","description":"UUID of the presentation to update. Use search-presentations-by-title to find it."},"variables":{"type":"object","additionalProperties":{},"description":"Variable names mapped to their new string values, e.g. `{\"customer_name\": \"ACME\", \"quarter\": \"Q3\"}`. Only the variables present here are updated; any variable omitted keeps its current value. Every name must be a text variable the presentation defines, otherwise the call is rejected. Must be a non-empty map."}},"required":["presentation_id","variables"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid","description":"UUID of the presentation to update. Use search-presentations-by-title to find it."},"variables":{"type":"object","additionalProperties":{},"description":"Variable names mapped to their new string values, e.g. `{\"customer_name\": \"ACME\", \"quarter\": \"Q3\"}`. Only the variables present here are updated; any variable omitted keeps its current value. Every name must be a text variable the presentation defines, otherwise the call is rejected. Must be a non-empty map."}},"required":["presentation_id","variables"],"additionalProperties":false}}}},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"status":{"type":"string"}},"required":["job_id","status"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"status":{"type":"string"}},"required":["job_id","status"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}}},"tags":["Presentations"],"summary":"Update presentation variables","description":"Update an existing presentation's variables."}},"/api/v1/jobs/{job_id}":{"get":{"parameters":[{"in":"path","name":"job_id","required":true,"schema":{"type":"string","format":"uuid"},"description":"Job UUID returned by create-presentation-with-variables, create-presentation-with-agent, edit-presentation-with-agent, update-presentation-variables, or move-content."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"oneOf":[{"anyOf":[{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"create-presentation-with-variables"},"status":{"const":"in-progress"}},"required":["job_id","job_type","status"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"create-presentation-with-variables"},"status":{"const":"error"},"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["job_id","job_type","status","error"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"create-presentation-with-variables"},"status":{"const":"complete"},"result":{"type":"object","properties":{"presentations":{"type":"array","items":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid"}},"required":["presentation_id"],"additionalProperties":false}}},"required":["presentations"],"additionalProperties":false}},"required":["job_id","job_type","status","result"],"additionalProperties":false}]},{"anyOf":[{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"create-presentation-with-agent"},"status":{"const":"in-progress"}},"required":["job_id","job_type","status"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"create-presentation-with-agent"},"status":{"const":"error"},"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["job_id","job_type","status","error"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"create-presentation-with-agent"},"status":{"const":"complete"},"result":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid"}},"required":["presentation_id"],"additionalProperties":false}},"required":["job_id","job_type","status","result"],"additionalProperties":false}]},{"anyOf":[{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"edit-presentation-with-agent"},"status":{"const":"in-progress"}},"required":["job_id","job_type","status"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"edit-presentation-with-agent"},"status":{"const":"error"},"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["job_id","job_type","status","error"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"edit-presentation-with-agent"},"status":{"const":"complete"},"result":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid"}},"required":["presentation_id"],"additionalProperties":false}},"required":["job_id","job_type","status","result"],"additionalProperties":false}]},{"anyOf":[{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"update-presentation-variables"},"status":{"const":"in-progress"}},"required":["job_id","job_type","status"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"update-presentation-variables"},"status":{"const":"error"},"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["job_id","job_type","status","error"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"update-presentation-variables"},"status":{"const":"complete"},"result":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid"}},"required":["presentation_id"],"additionalProperties":false}},"required":["job_id","job_type","status","result"],"additionalProperties":false}]},{"anyOf":[{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"move-content"},"status":{"const":"in-progress"},"progress":{"type":"object","properties":{"moved_items":{"type":"integer"},"total_items":{"type":"integer"}},"additionalProperties":false}},"required":["job_id","job_type","status"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"move-content"},"status":{"const":"error"},"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false},"progress":{"type":"object","properties":{"moved_items":{"type":"integer"},"total_items":{"type":"integer"}},"additionalProperties":false}},"required":["job_id","job_type","status","error"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"move-content"},"status":{"const":"complete"},"result":{"type":"object","properties":{"moved_items":{"type":"integer"},"total_items":{"type":"integer"}},"additionalProperties":false}},"required":["job_id","job_type","status","result"],"additionalProperties":false}]},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"status":{"const":"not-found"}},"required":["job_id","status"],"additionalProperties":false}]}},"required":["data"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"data":{"oneOf":[{"anyOf":[{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"create-presentation-with-variables"},"status":{"const":"in-progress"}},"required":["job_id","job_type","status"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"create-presentation-with-variables"},"status":{"const":"error"},"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["job_id","job_type","status","error"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"create-presentation-with-variables"},"status":{"const":"complete"},"result":{"type":"object","properties":{"presentations":{"type":"array","items":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid"}},"required":["presentation_id"],"additionalProperties":false}}},"required":["presentations"],"additionalProperties":false}},"required":["job_id","job_type","status","result"],"additionalProperties":false}]},{"anyOf":[{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"create-presentation-with-agent"},"status":{"const":"in-progress"}},"required":["job_id","job_type","status"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"create-presentation-with-agent"},"status":{"const":"error"},"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["job_id","job_type","status","error"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"create-presentation-with-agent"},"status":{"const":"complete"},"result":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid"}},"required":["presentation_id"],"additionalProperties":false}},"required":["job_id","job_type","status","result"],"additionalProperties":false}]},{"anyOf":[{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"edit-presentation-with-agent"},"status":{"const":"in-progress"}},"required":["job_id","job_type","status"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"edit-presentation-with-agent"},"status":{"const":"error"},"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["job_id","job_type","status","error"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"edit-presentation-with-agent"},"status":{"const":"complete"},"result":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid"}},"required":["presentation_id"],"additionalProperties":false}},"required":["job_id","job_type","status","result"],"additionalProperties":false}]},{"anyOf":[{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"update-presentation-variables"},"status":{"const":"in-progress"}},"required":["job_id","job_type","status"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"update-presentation-variables"},"status":{"const":"error"},"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}},"required":["job_id","job_type","status","error"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"update-presentation-variables"},"status":{"const":"complete"},"result":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid"}},"required":["presentation_id"],"additionalProperties":false}},"required":["job_id","job_type","status","result"],"additionalProperties":false}]},{"anyOf":[{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"move-content"},"status":{"const":"in-progress"},"progress":{"type":"object","properties":{"moved_items":{"type":"integer"},"total_items":{"type":"integer"}},"additionalProperties":false}},"required":["job_id","job_type","status"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"move-content"},"status":{"const":"error"},"error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false},"progress":{"type":"object","properties":{"moved_items":{"type":"integer"},"total_items":{"type":"integer"}},"additionalProperties":false}},"required":["job_id","job_type","status","error"],"additionalProperties":false},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"job_type":{"const":"move-content"},"status":{"const":"complete"},"result":{"type":"object","properties":{"moved_items":{"type":"integer"},"total_items":{"type":"integer"}},"additionalProperties":false}},"required":["job_id","job_type","status","result"],"additionalProperties":false}]},{"type":"object","properties":{"job_id":{"type":"string","format":"uuid"},"status":{"const":"not-found"}},"required":["job_id","status"],"additionalProperties":false}]}},"required":["data"],"additionalProperties":false}}}}},"tags":["Jobs"],"summary":"Get job","description":"Get the status and result of an asynchronous job."}},"/api/v1/presentations/{presentation_id}/managed-links":{"get":{"parameters":[{"in":"path","name":"presentation_id","required":true,"schema":{"type":"string","format":"uuid"},"description":"UUID of the presentation."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"managed_links":{"type":"array","items":{"type":"object","properties":{"link_id":{"type":"string","format":"uuid"},"presentation_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"slug":{"oneOf":[{"type":"string"},{"type":"null"}]},"url":{"type":"string"},"disabled":{"type":"boolean"},"options":{"type":"object","properties":{"allow_duplication":{"type":"boolean"},"collect_engagement_analytics":{"type":"boolean"},"require_visitor_consent_for_analytics":{"type":"boolean"},"require_passcode":{"type":"boolean"},"require_visitor_email":{"type":"boolean"},"allow_pdf_download":{"type":"boolean"},"disable_after":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["allow_duplication","collect_engagement_analytics","require_visitor_consent_for_analytics","require_passcode","require_visitor_email","allow_pdf_download","disable_after"],"additionalProperties":false},"created_at":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid","deprecated":true,"description":"Deprecated — use link_id."}},"required":["link_id","presentation_id","name","slug","url","disabled","options","created_at","id"],"additionalProperties":false}}},"required":["managed_links"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"managed_links":{"type":"array","items":{"type":"object","properties":{"link_id":{"type":"string","format":"uuid"},"presentation_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"slug":{"oneOf":[{"type":"string"},{"type":"null"}]},"url":{"type":"string"},"disabled":{"type":"boolean"},"options":{"type":"object","properties":{"allow_duplication":{"type":"boolean"},"collect_engagement_analytics":{"type":"boolean"},"require_visitor_consent_for_analytics":{"type":"boolean"},"require_passcode":{"type":"boolean"},"require_visitor_email":{"type":"boolean"},"allow_pdf_download":{"type":"boolean"},"disable_after":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["allow_duplication","collect_engagement_analytics","require_visitor_consent_for_analytics","require_passcode","require_visitor_email","allow_pdf_download","disable_after"],"additionalProperties":false},"created_at":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid","deprecated":true,"description":"Deprecated — use link_id."}},"required":["link_id","presentation_id","name","slug","url","disabled","options","created_at","id"],"additionalProperties":false}}},"required":["managed_links"],"additionalProperties":false}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"tags":["Presentations"],"summary":"List presentation links","description":"List a presentation's links."},"post":{"parameters":[{"in":"path","name":"presentation_id","required":true,"schema":{"type":"string","format":"uuid"},"description":"UUID of the presentation."}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Display label for the link. Defaults to the presentation name."},"slug":{"type":"string","pattern":"^[\\w-]{1,100}$","description":"Human-readable portion of the link URL. A random suffix is always appended, so collisions are impossible. Defaults to the presentation name."},"options":{"type":"object","properties":{"allow_duplication":{"type":"boolean"},"collect_engagement_analytics":{"type":"boolean"},"require_visitor_consent_for_analytics":{"type":"boolean"},"require_passcode":{"type":"boolean"},"passcode":{"type":"string","minLength":1,"maxLength":100,"description":"Only valid when require_passcode is true."},"require_visitor_email":{"type":"boolean"},"allow_pdf_download":{"type":"boolean"},"disable_after":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"ISO 8601 datetime after which the link stops resolving. Must be in the future. Null for no expiry."}},"additionalProperties":false,"description":"Link configuration. All booleans default to false, e.g. `{\"collect_engagement_analytics\": true, \"require_passcode\": true, \"passcode\": \"q3-acme\"}`."}},"additionalProperties":false},{"type":"null"}]}},"application/transit+json":{"schema":{"oneOf":[{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Display label for the link. Defaults to the presentation name."},"slug":{"type":"string","pattern":"^[\\w-]{1,100}$","description":"Human-readable portion of the link URL. A random suffix is always appended, so collisions are impossible. Defaults to the presentation name."},"options":{"type":"object","properties":{"allow_duplication":{"type":"boolean"},"collect_engagement_analytics":{"type":"boolean"},"require_visitor_consent_for_analytics":{"type":"boolean"},"require_passcode":{"type":"boolean"},"passcode":{"type":"string","minLength":1,"maxLength":100,"description":"Only valid when require_passcode is true."},"require_visitor_email":{"type":"boolean"},"allow_pdf_download":{"type":"boolean"},"disable_after":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"ISO 8601 datetime after which the link stops resolving. Must be in the future. Null for no expiry."}},"additionalProperties":false,"description":"Link configuration. All booleans default to false, e.g. `{\"collect_engagement_analytics\": true, \"require_passcode\": true, \"passcode\": \"q3-acme\"}`."}},"additionalProperties":false},{"type":"null"}]}}}},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"managed_link":{"type":"object","properties":{"link_id":{"type":"string","format":"uuid"},"presentation_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"slug":{"oneOf":[{"type":"string"},{"type":"null"}]},"url":{"type":"string"},"disabled":{"type":"boolean"},"options":{"type":"object","properties":{"allow_duplication":{"type":"boolean"},"collect_engagement_analytics":{"type":"boolean"},"require_visitor_consent_for_analytics":{"type":"boolean"},"require_passcode":{"type":"boolean"},"require_visitor_email":{"type":"boolean"},"allow_pdf_download":{"type":"boolean"},"disable_after":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["allow_duplication","collect_engagement_analytics","require_visitor_consent_for_analytics","require_passcode","require_visitor_email","allow_pdf_download","disable_after"],"additionalProperties":false},"created_at":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid","deprecated":true,"description":"Deprecated — use link_id."}},"required":["link_id","presentation_id","name","slug","url","disabled","options","created_at","id"],"additionalProperties":false}},"required":["managed_link"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"managed_link":{"type":"object","properties":{"link_id":{"type":"string","format":"uuid"},"presentation_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"slug":{"oneOf":[{"type":"string"},{"type":"null"}]},"url":{"type":"string"},"disabled":{"type":"boolean"},"options":{"type":"object","properties":{"allow_duplication":{"type":"boolean"},"collect_engagement_analytics":{"type":"boolean"},"require_visitor_consent_for_analytics":{"type":"boolean"},"require_passcode":{"type":"boolean"},"require_visitor_email":{"type":"boolean"},"allow_pdf_download":{"type":"boolean"},"disable_after":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["allow_duplication","collect_engagement_analytics","require_visitor_consent_for_analytics","require_passcode","require_visitor_email","allow_pdf_download","disable_after"],"additionalProperties":false},"created_at":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid","deprecated":true,"description":"Deprecated — use link_id."}},"required":["link_id","presentation_id","name","slug","url","disabled","options","created_at","id"],"additionalProperties":false}},"required":["managed_link"],"additionalProperties":false}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"tags":["Presentations"],"summary":"Create presentation link","description":"Create a link for an existing presentation."}},"/api/v1/presentations/{presentation_id}/managed-links/{link_id}":{"post":{"parameters":[{"in":"path","name":"presentation_id","required":true,"schema":{"type":"string","format":"uuid"},"description":"UUID of the presentation."},{"in":"path","name":"link_id","required":true,"schema":{"type":"string","format":"uuid"},"description":"UUID of the managed link."}],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"New display label for the link."},"slug":{"type":"string","pattern":"^[\\w-]{1,100}$","description":"New human-readable portion of the link URL. The random suffix is preserved."},"disabled":{"type":"boolean","description":"Set true to disable the link (it stops resolving), or false to re-enable it."},"options":{"type":"object","properties":{"allow_duplication":{"type":"boolean"},"collect_engagement_analytics":{"type":"boolean"},"require_visitor_consent_for_analytics":{"type":"boolean"},"require_passcode":{"type":"boolean"},"passcode":{"type":"string","minLength":1,"maxLength":100,"description":"Only valid when require_passcode is true."},"require_visitor_email":{"type":"boolean"},"allow_pdf_download":{"type":"boolean"},"disable_after":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"ISO 8601 datetime after which the link stops resolving. Must be in the future. Null for no expiry."}},"additionalProperties":false,"description":"Link configuration fields to change. Only the fields you include are modified; the rest are left as they are, e.g. `{\"allow_pdf_download\": true, \"disable_after\": \"2027-01-31T00:00:00Z\"}`."}},"additionalProperties":false},{"type":"null"}]}},"application/transit+json":{"schema":{"oneOf":[{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"New display label for the link."},"slug":{"type":"string","pattern":"^[\\w-]{1,100}$","description":"New human-readable portion of the link URL. The random suffix is preserved."},"disabled":{"type":"boolean","description":"Set true to disable the link (it stops resolving), or false to re-enable it."},"options":{"type":"object","properties":{"allow_duplication":{"type":"boolean"},"collect_engagement_analytics":{"type":"boolean"},"require_visitor_consent_for_analytics":{"type":"boolean"},"require_passcode":{"type":"boolean"},"passcode":{"type":"string","minLength":1,"maxLength":100,"description":"Only valid when require_passcode is true."},"require_visitor_email":{"type":"boolean"},"allow_pdf_download":{"type":"boolean"},"disable_after":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"ISO 8601 datetime after which the link stops resolving. Must be in the future. Null for no expiry."}},"additionalProperties":false,"description":"Link configuration fields to change. Only the fields you include are modified; the rest are left as they are, e.g. `{\"allow_pdf_download\": true, \"disable_after\": \"2027-01-31T00:00:00Z\"}`."}},"additionalProperties":false},{"type":"null"}]}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"managed_link":{"type":"object","properties":{"link_id":{"type":"string","format":"uuid"},"presentation_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"slug":{"oneOf":[{"type":"string"},{"type":"null"}]},"url":{"type":"string"},"disabled":{"type":"boolean"},"options":{"type":"object","properties":{"allow_duplication":{"type":"boolean"},"collect_engagement_analytics":{"type":"boolean"},"require_visitor_consent_for_analytics":{"type":"boolean"},"require_passcode":{"type":"boolean"},"require_visitor_email":{"type":"boolean"},"allow_pdf_download":{"type":"boolean"},"disable_after":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["allow_duplication","collect_engagement_analytics","require_visitor_consent_for_analytics","require_passcode","require_visitor_email","allow_pdf_download","disable_after"],"additionalProperties":false},"created_at":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid","deprecated":true,"description":"Deprecated — use link_id."}},"required":["link_id","presentation_id","name","slug","url","disabled","options","created_at","id"],"additionalProperties":false}},"required":["managed_link"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"managed_link":{"type":"object","properties":{"link_id":{"type":"string","format":"uuid"},"presentation_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"slug":{"oneOf":[{"type":"string"},{"type":"null"}]},"url":{"type":"string"},"disabled":{"type":"boolean"},"options":{"type":"object","properties":{"allow_duplication":{"type":"boolean"},"collect_engagement_analytics":{"type":"boolean"},"require_visitor_consent_for_analytics":{"type":"boolean"},"require_passcode":{"type":"boolean"},"require_visitor_email":{"type":"boolean"},"allow_pdf_download":{"type":"boolean"},"disable_after":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["allow_duplication","collect_engagement_analytics","require_visitor_consent_for_analytics","require_passcode","require_visitor_email","allow_pdf_download","disable_after"],"additionalProperties":false},"created_at":{"type":"string","format":"date-time"},"id":{"type":"string","format":"uuid","deprecated":true,"description":"Deprecated — use link_id."}},"required":["link_id","presentation_id","name","slug","url","disabled","options","created_at","id"],"additionalProperties":false}},"required":["managed_link"],"additionalProperties":false}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"tags":["Presentations"],"summary":"Update presentation link","description":"Update a link's options or disabled state."}},"/api/v1/presentations/{presentation_id}/managed-links/{link_id}/analytics":{"get":{"parameters":[{"in":"path","name":"presentation_id","required":true,"schema":{"type":"string","format":"uuid"},"description":"UUID of the presentation."},{"in":"path","name":"link_id","required":true,"schema":{"type":"string","format":"uuid"},"description":"UUID of the managed link."},{"in":"query","name":"interval","required":false,"schema":{"type":"string","enum":["all-time","24-hours","7-days","14-days","30-days","90-days"]},"description":"Time window the visit counts cover (default all-time). Scopes visits_count and visits_over_time only — the medians and the slide breakdown always cover every visit the link ever got."},{"in":"query","name":"include_slide_breakdown","required":false,"schema":{"type":"boolean"},"description":"Set true to also get per-slide view counts and median time on slide (default false, one entry per visible slide)."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"analytics":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid"},"link_id":{"type":"string","format":"uuid"},"engagement_analytics_enabled":{"type":"boolean"},"interval":{"type":"string","enum":["all-time","24-hours","7-days","14-days","30-days","90-days"],"description":"The time window the visit counts cover."},"visits_count":{"type":"integer","description":"Visits within `interval`."},"median_visit_duration_seconds":{"oneOf":[{"type":"integer"},{"type":"null"}]},"median_slides_viewed_percentage":{"oneOf":[{"type":"integer"},{"type":"null"}]},"visits_over_time":{"type":"object","properties":{"bucket":{"oneOf":[{"type":"string","enum":["hour","day","week","month"]},{"type":"null"}],"description":"Granularity of each point; null only for an all-time interval on a link that has never been visited, which has no points either."},"points":{"type":"array","items":{"type":"object","properties":{"at":{"type":"string","format":"date-time"},"visits":{"type":"integer"}},"required":["at","visits"],"additionalProperties":false}}},"required":["bucket","points"],"additionalProperties":false},"slides":{"type":"array","items":{"type":"object","properties":{"slide_id":{"type":"string","format":"uuid"},"slide_number":{"type":"integer","description":"1-based position of the slide in the presentation."},"views_count":{"type":"integer"},"median_time_seconds":{"oneOf":[{"type":"integer"},{"type":"null"}]}},"required":["slide_id","slide_number","views_count","median_time_seconds"],"additionalProperties":false}}},"required":["presentation_id","link_id","engagement_analytics_enabled","interval","visits_count","median_visit_duration_seconds","median_slides_viewed_percentage","visits_over_time"],"additionalProperties":false}},"required":["analytics"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"analytics":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid"},"link_id":{"type":"string","format":"uuid"},"engagement_analytics_enabled":{"type":"boolean"},"interval":{"type":"string","enum":["all-time","24-hours","7-days","14-days","30-days","90-days"],"description":"The time window the visit counts cover."},"visits_count":{"type":"integer","description":"Visits within `interval`."},"median_visit_duration_seconds":{"oneOf":[{"type":"integer"},{"type":"null"}]},"median_slides_viewed_percentage":{"oneOf":[{"type":"integer"},{"type":"null"}]},"visits_over_time":{"type":"object","properties":{"bucket":{"oneOf":[{"type":"string","enum":["hour","day","week","month"]},{"type":"null"}],"description":"Granularity of each point; null only for an all-time interval on a link that has never been visited, which has no points either."},"points":{"type":"array","items":{"type":"object","properties":{"at":{"type":"string","format":"date-time"},"visits":{"type":"integer"}},"required":["at","visits"],"additionalProperties":false}}},"required":["bucket","points"],"additionalProperties":false},"slides":{"type":"array","items":{"type":"object","properties":{"slide_id":{"type":"string","format":"uuid"},"slide_number":{"type":"integer","description":"1-based position of the slide in the presentation."},"views_count":{"type":"integer"},"median_time_seconds":{"oneOf":[{"type":"integer"},{"type":"null"}]}},"required":["slide_id","slide_number","views_count","median_time_seconds"],"additionalProperties":false}}},"required":["presentation_id","link_id","engagement_analytics_enabled","interval","visits_count","median_visit_duration_seconds","median_slides_viewed_percentage","visits_over_time"],"additionalProperties":false}},"required":["analytics"],"additionalProperties":false}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"tags":["Presentations"],"summary":"Get presentation link analytics","description":"Get a link's engagement analytics, aggregated across all of its visits."}},"/api/v1/presentations/{presentation_id}/managed-links/{link_id}/visits":{"get":{"parameters":[{"in":"path","name":"presentation_id","required":true,"schema":{"type":"string","format":"uuid"},"description":"UUID of the presentation."},{"in":"path","name":"link_id","required":true,"schema":{"type":"string","format":"uuid"},"description":"UUID of the managed link."},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100},"description":"Maximum number of visits to return (default 20, max 100)."},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"},"description":"Opaque pagination cursor returned by a previous call."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"visit_id":{"type":"string","format":"uuid"},"at":{"type":"string","format":"date-time","description":"When the visit started."},"visitor_email":{"oneOf":[{"type":"string"},{"type":"null"}],"description":"Only collected by links that require a visitor email; null otherwise."},"device_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"browser":{"oneOf":[{"type":"string"},{"type":"null"}]},"country":{"oneOf":[{"type":"string"},{"type":"null"}],"description":"ISO 3166-1 alpha-2 country code the visit came from."},"embed":{"type":"boolean","description":"Whether the deck was opened embedded in another page."},"duration_seconds":{"type":"integer","description":"Total time spent across all slides; 0 when the visit has no slide-level tracking."},"slides_reached":{"type":"integer","description":"How many distinct slides the visitor opened."},"slides_total":{"oneOf":[{"type":"integer"},{"type":"null"}],"description":"Visible slides the deck had at the time of the visit."},"tracking_level":{"type":"string","enum":["basic","advanced"],"description":"\"advanced\" when the visit recorded slide-level data, \"basic\" when only the visit itself was recorded."}},"required":["visit_id","at","visitor_email","device_type","browser","country","embed","duration_seconds","slides_reached","slides_total","tracking_level"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"type":"string"}},"required":["has_more"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"visit_id":{"type":"string","format":"uuid"},"at":{"type":"string","format":"date-time","description":"When the visit started."},"visitor_email":{"oneOf":[{"type":"string"},{"type":"null"}],"description":"Only collected by links that require a visitor email; null otherwise."},"device_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"browser":{"oneOf":[{"type":"string"},{"type":"null"}]},"country":{"oneOf":[{"type":"string"},{"type":"null"}],"description":"ISO 3166-1 alpha-2 country code the visit came from."},"embed":{"type":"boolean","description":"Whether the deck was opened embedded in another page."},"duration_seconds":{"type":"integer","description":"Total time spent across all slides; 0 when the visit has no slide-level tracking."},"slides_reached":{"type":"integer","description":"How many distinct slides the visitor opened."},"slides_total":{"oneOf":[{"type":"integer"},{"type":"null"}],"description":"Visible slides the deck had at the time of the visit."},"tracking_level":{"type":"string","enum":["basic","advanced"],"description":"\"advanced\" when the visit recorded slide-level data, \"basic\" when only the visit itself was recorded."}},"required":["visit_id","at","visitor_email","device_type","browser","country","embed","duration_seconds","slides_reached","slides_total","tracking_level"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"type":"string"}},"required":["has_more"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"tags":["Presentations"],"summary":"List presentation link visits","description":"List a link's individual visits, newest first."}},"/api/v1/presentations/{presentation_id}/managed-links/{link_id}/visits/{visit_id}":{"get":{"parameters":[{"in":"path","name":"presentation_id","required":true,"schema":{"type":"string","format":"uuid"},"description":"UUID of the presentation the link belongs to."},{"in":"path","name":"link_id","required":true,"schema":{"type":"string","format":"uuid"},"description":"UUID of the link the visit belongs to."},{"in":"path","name":"visit_id","required":true,"schema":{"type":"string","format":"uuid"},"description":"UUID of the visit, as returned by the visit list."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"visit":{"type":"object","properties":{"visit_id":{"type":"string","format":"uuid"},"at":{"type":"string","format":"date-time","description":"When the visit started."},"visitor_email":{"oneOf":[{"type":"string"},{"type":"null"}],"description":"Only collected by links that require a visitor email; null otherwise."},"device_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"browser":{"oneOf":[{"type":"string"},{"type":"null"}]},"country":{"oneOf":[{"type":"string"},{"type":"null"}],"description":"ISO 3166-1 alpha-2 country code the visit came from."},"embed":{"type":"boolean","description":"Whether the deck was opened embedded in another page."},"duration_seconds":{"type":"integer","description":"Total time spent across all slides; 0 when the visit has no slide-level tracking."},"slides_reached":{"type":"integer","description":"How many distinct slides the visitor opened."},"slides_total":{"oneOf":[{"type":"integer"},{"type":"null"}],"description":"Visible slides the deck had at the time of the visit."},"tracking_level":{"type":"string","enum":["basic","advanced"],"description":"\"advanced\" when the visit recorded slide-level data, \"basic\" when only the visit itself was recorded."},"slides":{"type":"array","items":{"type":"object","properties":{"slide_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"slide_number":{"type":"integer","description":"1-based position the slide had in the presentation at the time of the visit."},"views_count":{"type":"integer","description":"How many times the visitor opened this slide."},"time_seconds":{"type":"integer","description":"Total time the visitor spent on this slide."}},"required":["slide_id","slide_number","views_count","time_seconds"],"additionalProperties":false},"description":"The slides the visitor reached, in presentation order. Slides never opened are left out."}},"required":["visit_id","at","visitor_email","device_type","browser","country","embed","duration_seconds","slides_reached","slides_total","tracking_level","slides"],"additionalProperties":false}},"required":["visit"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"visit":{"type":"object","properties":{"visit_id":{"type":"string","format":"uuid"},"at":{"type":"string","format":"date-time","description":"When the visit started."},"visitor_email":{"oneOf":[{"type":"string"},{"type":"null"}],"description":"Only collected by links that require a visitor email; null otherwise."},"device_type":{"oneOf":[{"type":"string"},{"type":"null"}]},"browser":{"oneOf":[{"type":"string"},{"type":"null"}]},"country":{"oneOf":[{"type":"string"},{"type":"null"}],"description":"ISO 3166-1 alpha-2 country code the visit came from."},"embed":{"type":"boolean","description":"Whether the deck was opened embedded in another page."},"duration_seconds":{"type":"integer","description":"Total time spent across all slides; 0 when the visit has no slide-level tracking."},"slides_reached":{"type":"integer","description":"How many distinct slides the visitor opened."},"slides_total":{"oneOf":[{"type":"integer"},{"type":"null"}],"description":"Visible slides the deck had at the time of the visit."},"tracking_level":{"type":"string","enum":["basic","advanced"],"description":"\"advanced\" when the visit recorded slide-level data, \"basic\" when only the visit itself was recorded."},"slides":{"type":"array","items":{"type":"object","properties":{"slide_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"slide_number":{"type":"integer","description":"1-based position the slide had in the presentation at the time of the visit."},"views_count":{"type":"integer","description":"How many times the visitor opened this slide."},"time_seconds":{"type":"integer","description":"Total time the visitor spent on this slide."}},"required":["slide_id","slide_number","views_count","time_seconds"],"additionalProperties":false},"description":"The slides the visitor reached, in presentation order. Slides never opened are left out."}},"required":["visit_id","at","visitor_email","device_type","browser","country","embed","duration_seconds","slides_reached","slides_total","tracking_level","slides"],"additionalProperties":false}},"required":["visit"],"additionalProperties":false}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"tags":["Presentations"],"summary":"Get presentation link visit","description":"Get one visit of a link, including how long the visitor spent on each slide they reached."}},"/api/v1/presentations/search-by-title":{"get":{"parameters":[{"in":"query","name":"query","required":true,"schema":{"type":"string","minLength":1},"description":"Text to match against presentation titles."},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100},"description":"Maximum number of presentations to return (default 20, max 100)."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid","description":"UUID of the presentation."},"title":{"type":"string","description":"The presentation's title."},"breadcrumb":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"name":{"oneOf":[{"type":"string"},{"type":"null"}],"description":"The teamspace's name, null when it is hidden from the caller."},"teamspace_id":{"type":"string","format":"uuid"}},"required":["name","teamspace_id"],"additionalProperties":false,"description":"The teamspace the content lives in. Pass the id as move-content's target_teamspace_id to move content here."},{"type":"object","properties":{"name":{"type":"string"},"private_space":{"const":true},"owner_id":{"type":"string","format":"uuid","description":"Set when the private space is not the caller's own."}},"required":["name","private_space"],"additionalProperties":false,"description":"The private space the content lives in."},{"type":"object","properties":{"name":{"type":"string"},"folder_id":{"type":"string","format":"uuid"}},"required":["name","folder_id"],"additionalProperties":false,"description":"A folder on the way from the space down to the content. Pass the id as move-content's target_folder_id to move content here."}]},"description":"Where the presentation lives: the teamspace or private space that holds it first, then each folder on the way down, ending with its immediate parent folder. A presentation at the top level of its space has a single element. Folders are omitted when the caller may read the presentation but not the folders around it."}},"required":["presentation_id","title","breadcrumb"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid","description":"UUID of the presentation."},"title":{"type":"string","description":"The presentation's title."},"breadcrumb":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"name":{"oneOf":[{"type":"string"},{"type":"null"}],"description":"The teamspace's name, null when it is hidden from the caller."},"teamspace_id":{"type":"string","format":"uuid"}},"required":["name","teamspace_id"],"additionalProperties":false,"description":"The teamspace the content lives in. Pass the id as move-content's target_teamspace_id to move content here."},{"type":"object","properties":{"name":{"type":"string"},"private_space":{"const":true},"owner_id":{"type":"string","format":"uuid","description":"Set when the private space is not the caller's own."}},"required":["name","private_space"],"additionalProperties":false,"description":"The private space the content lives in."},{"type":"object","properties":{"name":{"type":"string"},"folder_id":{"type":"string","format":"uuid"}},"required":["name","folder_id"],"additionalProperties":false,"description":"A folder on the way from the space down to the content. Pass the id as move-content's target_folder_id to move content here."}]},"description":"Where the presentation lives: the teamspace or private space that holds it first, then each folder on the way down, ending with its immediate parent folder. A presentation at the top level of its space has a single element. Folders are omitted when the caller may read the presentation but not the folders around it."}},"required":["presentation_id","title","breadcrumb"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"tags":["Presentations"],"summary":"Search presentations","description":"Search presentations by title, across everything the caller can access in the workspace."}},"/api/v1/presentations/{presentation_id}":{"get":{"parameters":[{"in":"path","name":"presentation_id","required":true,"schema":{"type":"string","format":"uuid"},"description":"UUID of the presentation."},{"in":"query","name":"include_content","required":false,"schema":{"type":"boolean"},"description":"Include the presentation's textual content as Markdown (default false)."},{"in":"query","name":"include_metadata","required":false,"schema":{"type":"boolean"},"description":"Include location/ownership/edit-history metadata (default true)."},{"in":"query","name":"include_variables","required":false,"schema":{"type":"boolean"},"description":"Include the presentation's in-use variables (default false)."},{"in":"query","name":"include_images","required":false,"schema":{"type":"boolean"},"description":"Include the images placed on the slides, each with its URL (default false)."},{"in":"query","name":"include_hidden_slides","required":false,"schema":{"type":"boolean"},"description":"Include hidden slides in the Markdown content and the image list (default false). Only meaningful together with include_content or include_images."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid","description":"UUID of the presentation."},"title":{"type":"string","description":"The presentation's title."},"editor_url":{"type":"string","description":"URL that opens the presentation in the Pitch editor."},"player_url":{"type":"string","description":"URL that opens the presentation in the Pitch player."},"markdown":{"type":"string","description":"The presentation's textual content as Markdown."},"variables":{"type":"array","items":{"type":"object","additionalProperties":{}},"description":"The presentation's in-use variables."},"images":{"type":"array","items":{"type":"object","properties":{"slide_id":{"type":"string","format":"uuid","description":"UUID of the slide the image is placed on."},"slide_number":{"oneOf":[{"type":"integer"},{"type":"null"}],"description":"The slide's position among visible slides; null for a hidden slide."},"url":{"type":"string","description":"The image's URL, without its query string. Pitch-hosted images are served through Pitch's image CDN, fit within 2000x2000; third-party images keep their original URL."},"library_name":{"oneOf":[{"type":"string"},{"type":"null"}],"description":"The asset's name in the workspace media library; null for images that aren't in it."}},"required":["slide_id","slide_number","url","library_name"],"additionalProperties":false},"description":"The images placed on the presentation's slides, in slide order."},"metadata":{"type":"object","properties":{"breadcrumb":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"name":{"oneOf":[{"type":"string"},{"type":"null"}],"description":"The teamspace's name, null when it is hidden from the caller."},"teamspace_id":{"type":"string","format":"uuid"}},"required":["name","teamspace_id"],"additionalProperties":false,"description":"The teamspace the content lives in. Pass the id as move-content's target_teamspace_id to move content here."},{"type":"object","properties":{"name":{"type":"string"},"private_space":{"const":true},"owner_id":{"type":"string","format":"uuid","description":"Set when the private space is not the caller's own."}},"required":["name","private_space"],"additionalProperties":false,"description":"The private space the content lives in."},{"type":"object","properties":{"name":{"type":"string"},"folder_id":{"type":"string","format":"uuid"}},"required":["name","folder_id"],"additionalProperties":false,"description":"A folder on the way from the space down to the content. Pass the id as move-content's target_folder_id to move content here."}]},"description":"Where the presentation lives: the teamspace or private space that holds it first, then each folder on the way down, ending with its immediate parent folder. A presentation at the top level of its space has a single element. Folders are omitted when the caller may read the presentation but not the folders around it."},"owner":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name"],"additionalProperties":false},{"type":"null"}],"description":"The user whose private space holds the presentation; null for teamspace presentations."},"author":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]},"created_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"last_edited_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"When the deck's contents last changed."},"last_edited_by":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name"],"additionalProperties":false},{"type":"null"}],"description":"The editor behind that last change."}},"required":["breadcrumb","owner","author","created_at","last_edited_at","last_edited_by"],"additionalProperties":false}},"required":["presentation_id","title","editor_url","player_url"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"presentation_id":{"type":"string","format":"uuid","description":"UUID of the presentation."},"title":{"type":"string","description":"The presentation's title."},"editor_url":{"type":"string","description":"URL that opens the presentation in the Pitch editor."},"player_url":{"type":"string","description":"URL that opens the presentation in the Pitch player."},"markdown":{"type":"string","description":"The presentation's textual content as Markdown."},"variables":{"type":"array","items":{"type":"object","additionalProperties":{}},"description":"The presentation's in-use variables."},"images":{"type":"array","items":{"type":"object","properties":{"slide_id":{"type":"string","format":"uuid","description":"UUID of the slide the image is placed on."},"slide_number":{"oneOf":[{"type":"integer"},{"type":"null"}],"description":"The slide's position among visible slides; null for a hidden slide."},"url":{"type":"string","description":"The image's URL, without its query string. Pitch-hosted images are served through Pitch's image CDN, fit within 2000x2000; third-party images keep their original URL."},"library_name":{"oneOf":[{"type":"string"},{"type":"null"}],"description":"The asset's name in the workspace media library; null for images that aren't in it."}},"required":["slide_id","slide_number","url","library_name"],"additionalProperties":false},"description":"The images placed on the presentation's slides, in slide order."},"metadata":{"type":"object","properties":{"breadcrumb":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"name":{"oneOf":[{"type":"string"},{"type":"null"}],"description":"The teamspace's name, null when it is hidden from the caller."},"teamspace_id":{"type":"string","format":"uuid"}},"required":["name","teamspace_id"],"additionalProperties":false,"description":"The teamspace the content lives in. Pass the id as move-content's target_teamspace_id to move content here."},{"type":"object","properties":{"name":{"type":"string"},"private_space":{"const":true},"owner_id":{"type":"string","format":"uuid","description":"Set when the private space is not the caller's own."}},"required":["name","private_space"],"additionalProperties":false,"description":"The private space the content lives in."},{"type":"object","properties":{"name":{"type":"string"},"folder_id":{"type":"string","format":"uuid"}},"required":["name","folder_id"],"additionalProperties":false,"description":"A folder on the way from the space down to the content. Pass the id as move-content's target_folder_id to move content here."}]},"description":"Where the presentation lives: the teamspace or private space that holds it first, then each folder on the way down, ending with its immediate parent folder. A presentation at the top level of its space has a single element. Folders are omitted when the caller may read the presentation but not the folders around it."},"owner":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name"],"additionalProperties":false},{"type":"null"}],"description":"The user whose private space holds the presentation; null for teamspace presentations."},"author":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name"],"additionalProperties":false},{"type":"null"}]},"created_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"last_edited_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"When the deck's contents last changed."},"last_edited_by":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name"],"additionalProperties":false},{"type":"null"}],"description":"The editor behind that last change."}},"required":["breadcrumb","owner","author","created_at","last_edited_at","last_edited_by"],"additionalProperties":false}},"required":["presentation_id","title","editor_url","player_url"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"tags":["Presentations"],"summary":"Get presentation","description":"Get a presentation by ID: its editor and player URLs plus metadata; pass include_content=true for the content as Markdown, or include_images=true for the images placed on its slides."}},"/api/v1/folders":{"get":{"parameters":[{"in":"query","name":"teamspace_id","required":false,"schema":{"type":"string","format":"uuid"},"description":"Teamspace UUID to list folders for. When omitted, folders in the caller's private space are listed."},{"in":"query","name":"shared_with_me","required":false,"schema":{"type":"boolean"},"description":"true: the folders other members shared with the caller from their private spaces. Cannot be combined with teamspace_id."},{"in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":100},"description":"Maximum number of folders to return (default 20, max 100)."},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"},"description":"Opaque pagination cursor returned by a previous call."}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"folder_id":{"type":"string","format":"uuid"},"parent_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"name":{"type":"string"},"owner":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name"],"additionalProperties":false},{"type":"null"}],"description":"Who shared the folder. Only set with shared_with_me."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["folder_id","parent_id","name","created_at","updated_at"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"type":"string"}},"required":["has_more"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"folder_id":{"type":"string","format":"uuid"},"parent_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"name":{"type":"string"},"owner":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name"],"additionalProperties":false},{"type":"null"}],"description":"Who shared the folder. Only set with shared_with_me."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["folder_id","parent_id","name","created_at","updated_at"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"has_more":{"type":"boolean"},"next_cursor":{"type":"string"}},"required":["has_more"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}}}}},"tags":["Folders"],"summary":"List folders","description":"List folders in a teamspace, in the caller's private space, or shared with the caller by other members."},"post":{"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Name of the new folder."},"teamspace_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UUID of the teamspace to create the folder in. When omitted, the folder is created in the caller's private space."},"parent_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UUID of the folder to create the new folder in. Must be a folder in the target teamspace (or in the caller's private space when no teamspace is given). When omitted, the folder is created at the top level."}},"required":["name"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Name of the new folder."},"teamspace_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UUID of the teamspace to create the folder in. When omitted, the folder is created in the caller's private space."},"parent_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"UUID of the folder to create the new folder in. Must be a folder in the target teamspace (or in the caller's private space when no teamspace is given). When omitted, the folder is created at the top level."}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"folder_id":{"type":"string","format":"uuid"},"parent_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"name":{"type":"string"},"owner":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name"],"additionalProperties":false},{"type":"null"}],"description":"Who shared the folder. Only set with shared_with_me."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["folder_id","parent_id","name","created_at","updated_at"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"folder_id":{"type":"string","format":"uuid"},"parent_id":{"oneOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"name":{"type":"string"},"owner":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"oneOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name"],"additionalProperties":false},{"type":"null"}],"description":"Who shared the folder. Only set with shared_with_me."},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["folder_id","parent_id","name","created_at","updated_at"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}},"application/transit+json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}},"tags":["Folders"],"summary":"Create folder","description":"Create a folder in a teamspace or in the caller's private space, at the top level or inside another folder."}}}}