{"openapi":"3.1.0","info":{"title":"Ferrule Notion API","version":"1.0.0","description":"REST API for Notion via the Ferrule gateway.","contact":{"name":"Ferrule","url":"https://ferrule.io"}},"servers":[{"url":"https://0.0.0.0:3000","description":"Ferrule gateway"}],"paths":{"/api/v1/notion/search":{"post":{"operationId":"notion.search","description":"Search all pages and databases shared with the integration. Supports filtering by object type (page or database) and sorting by last_edited_time.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"query","name":"query","schema":{"description":"Text to search for.","type":"string"}},{"in":"query","name":"filter","schema":{"description":"Filter results by object type. Example: { \"value\": \"page\", \"property\": \"object\" }"}},{"in":"query","name":"sort","schema":{"description":"Sort results. Example: { \"direction\": \"descending\", \"timestamp\": \"last_edited_time\" }"}},{"in":"query","name":"start_cursor","schema":{"description":"Cursor for pagination. Use next_cursor from a previous response.","type":"string"}},{"in":"query","name":"page_size","schema":{"description":"Number of results to return (max 100).","type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body parameters"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"results":{"type":"array","items":{}},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","results","has_more"],"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}}},"/api/v1/notion/pages/{page_id}":{"get":{"operationId":"notion.get_page","description":"Retrieve a page by its ID. Returns page properties, parent, and metadata.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"path","name":"page_id","schema":{"type":"string","description":"The ID of the page to retrieve (UUID format, with or without dashes)."},"required":true,"description":"The ID of the page to retrieve (UUID format, with or without dashes)."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"page"},"id":{"type":"string"},"created_time":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_edited_time":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_by":{"anyOf":[{"type":"object","properties":{"object":{"type":"string","const":"user"},"id":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}},{"type":"null"}]},"last_edited_by":{"anyOf":[{"type":"object","properties":{"object":{"type":"string","const":"user"},"id":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}},{"type":"null"}]},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"in_trash":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"icon":{"anyOf":[{},{"type":"null"}]},"cover":{"anyOf":[{},{"type":"null"}]},"properties":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"parent":{"anyOf":[{"type":"object","properties":{"type":{"type":"string"}},"required":["type"],"additionalProperties":{}},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]},"public_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}},"patch":{"operationId":"notion.update_page","description":"Update a page's properties, icon, cover, or archived status.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"path","name":"page_id","schema":{"type":"string","description":"The ID of the page to update."},"required":true,"description":"The ID of the page to update."},{"in":"query","name":"properties","schema":{"description":"Properties to update. Keys must match existing property names."}},{"in":"query","name":"icon","schema":{"description":"Updated icon. Example: { \"emoji\": \"✅\" }."}},{"in":"query","name":"cover","schema":{"description":"Updated cover image."}},{"in":"query","name":"archived","schema":{"description":"Set to true to archive the page, false to unarchive.","type":"boolean"}},{"in":"query","name":"in_trash","schema":{"description":"Set to true to move to trash.","type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body parameters"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"page"},"id":{"type":"string"},"created_time":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_edited_time":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_by":{"anyOf":[{"type":"object","properties":{"object":{"type":"string","const":"user"},"id":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}},{"type":"null"}]},"last_edited_by":{"anyOf":[{"type":"object","properties":{"object":{"type":"string","const":"user"},"id":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}},{"type":"null"}]},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"in_trash":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"icon":{"anyOf":[{},{"type":"null"}]},"cover":{"anyOf":[{},{"type":"null"}]},"properties":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"parent":{"anyOf":[{"type":"object","properties":{"type":{"type":"string"}},"required":["type"],"additionalProperties":{}},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]},"public_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}}},"/api/v1/notion/pages":{"post":{"operationId":"notion.create_page","description":"Create a new page. The parent can be a database or another page. Properties must match the parent database schema if creating in a database.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"query","name":"parent","schema":{"description":"Parent of the page. Example: { \"database_id\": \"...\" } or { \"page_id\": \"...\" }."}},{"in":"query","name":"properties","schema":{"description":"Page properties. When parent is a database, keys must match database property names."}},{"in":"query","name":"children","schema":{"description":"Array of block objects to add as page content."}},{"in":"query","name":"icon","schema":{"description":"Page icon. Example: { \"emoji\": \"🎯\" }."}},{"in":"query","name":"cover","schema":{"description":"Page cover image as an external URL object."}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body parameters"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"page"},"id":{"type":"string"},"created_time":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_edited_time":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_by":{"anyOf":[{"type":"object","properties":{"object":{"type":"string","const":"user"},"id":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}},{"type":"null"}]},"last_edited_by":{"anyOf":[{"type":"object","properties":{"object":{"type":"string","const":"user"},"id":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}},{"type":"null"}]},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"in_trash":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"icon":{"anyOf":[{},{"type":"null"}]},"cover":{"anyOf":[{},{"type":"null"}]},"properties":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"parent":{"anyOf":[{"type":"object","properties":{"type":{"type":"string"}},"required":["type"],"additionalProperties":{}},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]},"public_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}}},"/api/v1/notion/pages/{page_id}/properties/{property_id}":{"get":{"operationId":"notion.get_page_property","description":"Retrieve a specific property value from a page. Useful for paginated properties like rich_text, title, relation, and rollup.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"path","name":"page_id","schema":{"type":"string","description":"The ID of the page."},"required":true,"description":"The ID of the page."},{"in":"path","name":"property_id","schema":{"type":"string","description":"The ID of the property to retrieve. Found in the page's properties object."},"required":true,"description":"The ID of the property to retrieve. Found in the page's properties object."},{"in":"query","name":"start_cursor","schema":{"description":"Cursor for paginated property values.","type":"string"}},{"in":"query","name":"page_size","schema":{"description":"Number of property items to return (max 100).","type":"number"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}}},"/api/v1/notion/databases":{"get":{"operationId":"notion.list_databases","description":"List all databases shared with the integration. Returns a paginated list. Deprecated by Notion in favor of search with database filter, but still functional.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"query","name":"start_cursor","schema":{"description":"Cursor for pagination.","type":"string"}},{"in":"query","name":"page_size","schema":{"description":"Number of results to return (max 100).","type":"number"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"results":{"type":"array","items":{}},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","results","has_more"],"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}},"post":{"operationId":"notion.create_database","description":"Create a new database as a child of a page. Define the schema via properties.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"query","name":"parent","schema":{"description":"Parent page. Example: { \"page_id\": \"...\" }."}},{"in":"query","name":"title","schema":{"description":"Database title as an array of rich text objects."}},{"in":"query","name":"properties","schema":{"description":"Database property schema. Example: { \"Name\": { \"title\": {} }, \"Tags\": { \"multi_select\": { \"options\": [] } } }."}},{"in":"query","name":"icon","schema":{"description":"Database icon."}},{"in":"query","name":"cover","schema":{"description":"Database cover image."}},{"in":"query","name":"is_inline","schema":{"description":"Whether the database is inline (true) or full page (false).","type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body parameters"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"database"},"id":{"type":"string"},"created_time":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_edited_time":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_by":{"anyOf":[{"type":"object","properties":{"object":{"type":"string","const":"user"},"id":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}},{"type":"null"}]},"last_edited_by":{"anyOf":[{"type":"object","properties":{"object":{"type":"string","const":"user"},"id":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}},{"type":"null"}]},"title":{"anyOf":[{"type":"array","items":{}},{"type":"null"}]},"description":{"anyOf":[{"type":"array","items":{}},{"type":"null"}]},"icon":{"anyOf":[{},{"type":"null"}]},"cover":{"anyOf":[{},{"type":"null"}]},"properties":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"parent":{"anyOf":[{"type":"object","properties":{"type":{"type":"string"}},"required":["type"],"additionalProperties":{}},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]},"public_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"in_trash":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"is_inline":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}}},"/api/v1/notion/databases/{database_id}":{"get":{"operationId":"notion.get_database","description":"Retrieve a database by its ID. Returns the database schema (properties), title, and metadata.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"path","name":"database_id","schema":{"type":"string","description":"The ID of the database to retrieve."},"required":true,"description":"The ID of the database to retrieve."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"database"},"id":{"type":"string"},"created_time":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_edited_time":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_by":{"anyOf":[{"type":"object","properties":{"object":{"type":"string","const":"user"},"id":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}},{"type":"null"}]},"last_edited_by":{"anyOf":[{"type":"object","properties":{"object":{"type":"string","const":"user"},"id":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}},{"type":"null"}]},"title":{"anyOf":[{"type":"array","items":{}},{"type":"null"}]},"description":{"anyOf":[{"type":"array","items":{}},{"type":"null"}]},"icon":{"anyOf":[{},{"type":"null"}]},"cover":{"anyOf":[{},{"type":"null"}]},"properties":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"parent":{"anyOf":[{"type":"object","properties":{"type":{"type":"string"}},"required":["type"],"additionalProperties":{}},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]},"public_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"in_trash":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"is_inline":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}},"patch":{"operationId":"notion.update_database","description":"Update a database's title, description, properties schema, or archived status.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"path","name":"database_id","schema":{"type":"string","description":"The ID of the database to update."},"required":true,"description":"The ID of the database to update."},{"in":"query","name":"title","schema":{"description":"Updated title as an array of rich text objects."}},{"in":"query","name":"description","schema":{"description":"Updated description as an array of rich text objects."}},{"in":"query","name":"properties","schema":{"description":"Property schema updates. Include only properties to add or modify. Set a property to null to delete it."}},{"in":"query","name":"icon","schema":{"description":"Updated icon."}},{"in":"query","name":"cover","schema":{"description":"Updated cover."}},{"in":"query","name":"archived","schema":{"description":"Set to true to archive the database.","type":"boolean"}},{"in":"query","name":"in_trash","schema":{"description":"Set to true to move to trash.","type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body parameters"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"database"},"id":{"type":"string"},"created_time":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_edited_time":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_by":{"anyOf":[{"type":"object","properties":{"object":{"type":"string","const":"user"},"id":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}},{"type":"null"}]},"last_edited_by":{"anyOf":[{"type":"object","properties":{"object":{"type":"string","const":"user"},"id":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}},{"type":"null"}]},"title":{"anyOf":[{"type":"array","items":{}},{"type":"null"}]},"description":{"anyOf":[{"type":"array","items":{}},{"type":"null"}]},"icon":{"anyOf":[{},{"type":"null"}]},"cover":{"anyOf":[{},{"type":"null"}]},"properties":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"parent":{"anyOf":[{"type":"object","properties":{"type":{"type":"string"}},"required":["type"],"additionalProperties":{}},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]},"public_url":{"anyOf":[{"type":"string"},{"type":"null"}]},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"in_trash":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"is_inline":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}}},"/api/v1/notion/databases/{database_id}/query":{"post":{"operationId":"notion.query_database","description":"Query a database to retrieve pages that match filter and sort criteria. Supports compound filters, sorting by properties, and pagination.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"path","name":"database_id","schema":{"type":"string","description":"The ID of the database to query."},"required":true,"description":"The ID of the database to query."},{"in":"query","name":"filter","schema":{"description":"Filter criteria. Example: { \"property\": \"Status\", \"select\": { \"equals\": \"Done\" } }."}},{"in":"query","name":"sorts","schema":{"description":"Sort criteria array. Example: [{ \"property\": \"Created\", \"direction\": \"descending\" }]."}},{"in":"query","name":"start_cursor","schema":{"description":"Cursor for pagination.","type":"string"}},{"in":"query","name":"page_size","schema":{"description":"Number of results to return (max 100).","type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body parameters"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"results":{"type":"array","items":{}},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","results","has_more"],"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}}},"/api/v1/notion/blocks/{block_id}":{"get":{"operationId":"notion.get_block","description":"Retrieve a block by its ID. Returns block type and content.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"path","name":"block_id","schema":{"type":"string","description":"The ID of the block to retrieve."},"required":true,"description":"The ID of the block to retrieve."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}},"patch":{"operationId":"notion.update_block","description":"Update a block's content or archived status. The update payload depends on the block type.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"path","name":"block_id","schema":{"type":"string","description":"The ID of the block to update."},"required":true,"description":"The ID of the block to update."},{"in":"query","name":"block_content","schema":{"description":"Block type-specific content to update. Pass the block type key and its new value. Example: { \"paragraph\": { \"rich_text\": [...] } }."}},{"in":"query","name":"archived","schema":{"description":"Set to true to archive the block.","type":"boolean"}},{"in":"query","name":"in_trash","schema":{"description":"Set to true to move to trash.","type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body parameters"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}},"delete":{"operationId":"notion.delete_block","description":"Delete (archive) a block by its ID. The block can be a page, database, or any content block.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"path","name":"block_id","schema":{"type":"string","description":"The ID of the block to delete."},"required":true,"description":"The ID of the block to delete."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}}},"/api/v1/notion/blocks/{block_id}/children":{"get":{"operationId":"notion.list_block_children","description":"List the children blocks of a given block (page, database, or other block with children). Returns a paginated list.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"path","name":"block_id","schema":{"type":"string","description":"The ID of the parent block. Can be a page ID to get page content."},"required":true,"description":"The ID of the parent block. Can be a page ID to get page content."},{"in":"query","name":"start_cursor","schema":{"description":"Cursor for pagination.","type":"string"}},{"in":"query","name":"page_size","schema":{"description":"Number of blocks to return (max 100).","type":"number"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}},"patch":{"operationId":"notion.append_block_children","description":"Append new children blocks to a parent block. Use this to add content to pages or nested blocks.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"path","name":"block_id","schema":{"type":"string","description":"The ID of the parent block to append children to."},"required":true,"description":"The ID of the parent block to append children to."},{"in":"query","name":"children","schema":{"description":"Array of block objects to append. Example: [{ \"paragraph\": { \"rich_text\": [{ \"text\": { \"content\": \"Hello\" } }] } }]."}},{"in":"query","name":"after","schema":{"description":"ID of an existing block to insert the new children after. If omitted, children are appended at the end.","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body parameters"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}}},"/api/v1/notion/users":{"get":{"operationId":"notion.list_users","description":"List all users in the workspace. Includes people and bots.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"query","name":"start_cursor","schema":{"description":"Cursor for pagination.","type":"string"}},{"in":"query","name":"page_size","schema":{"description":"Number of users to return (max 100).","type":"number"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"results":{"type":"array","items":{}},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","results","has_more"],"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}}},"/api/v1/notion/users/{user_id}":{"get":{"operationId":"notion.get_user","description":"Retrieve a user by their ID.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"path","name":"user_id","schema":{"type":"string","description":"The ID of the user to retrieve."},"required":true,"description":"The ID of the user to retrieve."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"user"},"id":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}}},"/api/v1/notion/users/me":{"get":{"operationId":"notion.get_me","description":"Retrieve the bot user associated with the current integration token.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"user"},"id":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}}},"/api/v1/notion/comments":{"get":{"operationId":"notion.list_comments","description":"List comments on a block (page or other block). Requires the integration to have comment read capabilities.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"query","name":"block_id","schema":{"type":"string","description":"The ID of the block to list comments for."}},{"in":"query","name":"start_cursor","schema":{"description":"Cursor for pagination.","type":"string"}},{"in":"query","name":"page_size","schema":{"description":"Number of comments to return (max 100).","type":"number"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"results":{"type":"array","items":{}},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"has_more":{"type":"boolean"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","results","has_more"],"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}},"post":{"operationId":"notion.create_comment","description":"Create a comment on a page or in an existing discussion thread. Either parent (with page_id) or discussion_id must be provided.","tags":["notion"],"security":[{"oauth2":[]},{"bearerApiKey":[]}],"parameters":[{"in":"query","name":"parent","schema":{"description":"Parent page to create a top-level comment on. Example: { \"page_id\": \"...\" }."}},{"in":"query","name":"discussion_id","schema":{"description":"ID of an existing discussion thread to reply to.","type":"string"}},{"in":"query","name":"rich_text","schema":{"description":"Comment body as an array of rich text objects. Example: [{ \"text\": { \"content\": \"This is a comment\" } }]."}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body parameters"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"comment"},"id":{"type":"string"},"parent":{"anyOf":[{"type":"object","properties":{"type":{"type":"string"}},"required":["type"],"additionalProperties":{}},{"type":"null"}]},"discussion_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_time":{"anyOf":[{"type":"string"},{"type":"null"}]},"last_edited_time":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_by":{"anyOf":[{"type":"object","properties":{"object":{"type":"string","const":"user"},"id":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}},{"type":"null"}]},"rich_text":{"anyOf":[{"type":"array","items":{}},{"type":"null"}]}},"required":["object","id"],"additionalProperties":{}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}},"502":{"description":"Upstream error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"boolean"},"code":{"type":"string"},"message":{"type":"string"}},"required":["error","code","message"],"additionalProperties":false}}}}}}}},"webhooks":{},"components":{"securitySchemes":{"oauth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"/oauth/authorize","tokenUrl":"/oauth/token","scopes":{}}}},"bearerApiKey":{"type":"http","scheme":"bearer","description":"API key authentication. Pass a Ferrule API key as a Bearer token."}}}}