{"openapi":"3.1.0","info":{"title":"Hyperspell API","summary":"Hyperspell is the memory layer for AI apps and agents. Through the API, you can add memories, connect data sources to index them in real-time, and search memories with our natural language query engine.","termsOfService":"https://hyperspell.com/blog/tos","contact":{"name":"Hyperspell","url":"https://hyperspell.com/","email":"hello@hyperspell.com"},"version":"0.32.1"},"servers":[{"url":"https://api.hyperspell.com","description":"Production"}],"paths":{"/memories/add":{"post":{"tags":["Memories"],"summary":"Add a memory","description":"Adds an arbitrary document to the index. This can be any text, email,\ncall transcript, etc. The document will be processed and made available for\nquerying once the processing is complete.","operationId":"add_memories_add_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memories/add/bulk":{"post":{"tags":["Memories"],"summary":"Add multiple memories","description":"Adds multiple documents to the index in a single request.\n\nAll items are validated before processing begins. If any item fails\nvalidation, the entire batch is rejected with a 422 error detailing which\nitems failed and why.\n\nMaximum 100 items per request. Each item follows the same schema as the\nsingle-item /memories/add endpoint.","operationId":"add_bulk_memories_add_bulk_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkIngestRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkIngestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memories/update/{source}/{resource_id}":{"post":{"tags":["Memories"],"summary":"Update a memory","description":"Updates an existing document in the index. You can update the text, collection,\ntitle, and metadata. The document must already exist or a 404 will be returned.\nThis works for documents from any source (vault, slack, gmail, etc.).\n\nTo remove a collection, set it to null explicitly.","operationId":"update_memories_update__source___resource_id__post","security":[{"APIKey":[]}],"parameters":[{"name":"source","in":"path","required":true,"schema":{"$ref":"#/components/schemas/DocumentProviders"}},{"name":"resource_id","in":"path","required":true,"schema":{"type":"string","title":"Resource Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memories/upload":{"post":{"tags":["Memories"],"summary":"Upload a file","description":"This endpoint will upload a file to the index and return a resource_id.\nThe file will be processed in the background and the memory will be available for querying once the processing is complete.\nYou can use the `resource_id` to query the memory later, and check the status of the memory.\n\nSupported formats are PDF, Word (`.docx`, `.doc`), OpenDocument text, RTF, plain text and Markdown, and spreadsheets as CSV, TSV, or Excel workbooks (`.xlsx`, `.xlsm`). Each row of a large spreadsheet is indexed with its column headers.\n\nThe examples upload a local `notes.txt` file for a specific user. Set these\nenvironment variables before running them:\n\n- `HYPERSPELL_API_URL`: your API base URL, without a trailing slash.\n  Use `https://api.hyperspell.com` for US apps or `https://api.eu.hyperspell.com`\n  for EU apps. For a dedicated instance, use its API URL.\n- `HYPERSPELL_API_KEY`: your API key.\n- `HYPERSPELL_USER_ID`: the user who should own the uploaded memory.\n\nThe `X-As-User` header selects the user when using an app-wide key. With a\nuser-scoped key, omit this header or set it to that key's user ID.","operationId":"upload_memories_upload_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_memories_upload_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-codeSamples":[{"lang":"bash","label":"cURL","source":"curl --disable --fail-with-body --request POST \"${HYPERSPELL_API_URL}/memories/upload\" \\\n  --header \"Authorization: Bearer $HYPERSPELL_API_KEY\" \\\n  --header \"X-As-User: $HYPERSPELL_USER_ID\" \\\n  --form 'file=@notes.txt;type=text/plain' \\\n  --form 'metadata={\"collection\":\"project-notes\"}'\n"},{"lang":"python","label":"Python","source":"import json\nimport os\n\nimport requests\n\nwith open(\"notes.txt\", \"rb\") as file:\n    response = requests.post(\n        f\"{os.environ['HYPERSPELL_API_URL']}/memories/upload\",\n        headers={\n            \"Authorization\": f\"Bearer {os.environ['HYPERSPELL_API_KEY']}\",\n            \"X-As-User\": os.environ[\"HYPERSPELL_USER_ID\"],\n        },\n        files={\"file\": (\"notes.txt\", file, \"text/plain\")},\n        data={\"metadata\": json.dumps({\"collection\": \"project-notes\"})},\n    )\nresponse.raise_for_status()\nprint(response.json())\n"},{"lang":"javascript","label":"JavaScript (Node.js)","source":"// Node.js 20+ (save as upload.mjs).\nimport { readFile } from \"node:fs/promises\";\n\nconst form = new FormData();\nform.append(\"file\", new Blob([await readFile(\"notes.txt\")], { type: \"text/plain\" }), \"notes.txt\");\nform.append(\"metadata\", JSON.stringify({ collection: \"project-notes\" }));\n\nconst response = await fetch(`${process.env.HYPERSPELL_API_URL}/memories/upload`, {\n  method: \"POST\",\n  headers: {\n    Authorization: `Bearer ${process.env.HYPERSPELL_API_KEY}`,\n    \"X-As-User\": process.env.HYPERSPELL_USER_ID,\n  },\n  body: form,\n});\nif (!response.ok) {\n  throw new Error(`Upload failed (${response.status}): ${await response.text()}`);\n}\nconsole.log(await response.json());\n"}],"x-mint":{"content":"<RequestExample>\n\n```bash cURL\ncurl --disable --fail-with-body --request POST \"${HYPERSPELL_API_URL}/memories/upload\" \\\n  --header \"Authorization: Bearer $HYPERSPELL_API_KEY\" \\\n  --header \"X-As-User: $HYPERSPELL_USER_ID\" \\\n  --form 'file=@notes.txt;type=text/plain' \\\n  --form 'metadata={\"collection\":\"project-notes\"}'\n```\n\n```python Python\nimport json\nimport os\n\nimport requests\n\nwith open(\"notes.txt\", \"rb\") as file:\n    response = requests.post(\n        f\"{os.environ['HYPERSPELL_API_URL']}/memories/upload\",\n        headers={\n            \"Authorization\": f\"Bearer {os.environ['HYPERSPELL_API_KEY']}\",\n            \"X-As-User\": os.environ[\"HYPERSPELL_USER_ID\"],\n        },\n        files={\"file\": (\"notes.txt\", file, \"text/plain\")},\n        data={\"metadata\": json.dumps({\"collection\": \"project-notes\"})},\n    )\nresponse.raise_for_status()\nprint(response.json())\n```\n\n```javascript JavaScript (Node.js)\n// Node.js 20+ (save as upload.mjs).\nimport { readFile } from \"node:fs/promises\";\n\nconst form = new FormData();\nform.append(\"file\", new Blob([await readFile(\"notes.txt\")], { type: \"text/plain\" }), \"notes.txt\");\nform.append(\"metadata\", JSON.stringify({ collection: \"project-notes\" }));\n\nconst response = await fetch(`${process.env.HYPERSPELL_API_URL}/memories/upload`, {\n  method: \"POST\",\n  headers: {\n    Authorization: `Bearer ${process.env.HYPERSPELL_API_KEY}`,\n    \"X-As-User\": process.env.HYPERSPELL_USER_ID,\n  },\n  body: form,\n});\nif (!response.ok) {\n  throw new Error(`Upload failed (${response.status}): ${await response.text()}`);\n}\nconsole.log(await response.json());\n```\n\n</RequestExample>"}}},"/memories/sharing/requests":{"get":{"tags":["Memories"],"summary":"List Sharing Requests","description":"List your pending sharing requests, newest first.\n\nBy default, list agent activity. Use kind=all to include other memories.\nUse search to reach older requests. Deciding a request removes it from this queue;\nwhen has_more is true, list again after deciding the returned requests.","operationId":"list_sharing_requests_memories_sharing_requests_get","security":[{"APIKey":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Q"}},{"name":"kind","in":"query","required":false,"schema":{"enum":["agent_activity","all"],"type":"string","default":"agent_activity","title":"Kind"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharingRequests"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memories/sharing/decide":{"post":{"tags":["Memories"],"summary":"Decide Sharing Request","description":"Share or keep private one of your pending requests.\n\nThis records your decision on the existing request without rewriting its content.\nIt does not retract existing access or reverse an earlier decision. Content filters\nstill apply. A repeat of the same successful decision is safe.","operationId":"decide_sharing_request_memories_sharing_decide_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharingDecision"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharingDecisionResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memories/activity/history":{"get":{"tags":["Memories"],"summary":"List Activity History","description":"List or search your captured work summaries, newest first.\n\nCompany access to the current summary does not grant access to these records.\nSearch is a literal substring. Use the continuation revision for older results.","operationId":"list_activity_history_memories_activity_history_get","security":[{"APIKey":[]}],"parameters":[{"name":"resource_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":2048,"title":"Resource Id"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Q"}},{"name":"before_revision","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2147483647,"minimum":1},{"type":"null"}],"title":"Before Revision"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityHistory"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memories/activity/checkpoints/{checkpoint_id}":{"get":{"tags":["Memories"],"summary":"Get Activity Checkpoint","description":"Read part of a private capture with explicit continuation.\n\nThis is the summary recorded at capture time, not a conversation transcript\nor verification of the agent's claims. Source links retain their own permissions.","operationId":"get_activity_checkpoint_memories_activity_checkpoints__checkpoint_id__get","security":[{"APIKey":[]}],"parameters":[{"name":"checkpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Checkpoint Id"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":2147483646,"minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":24000,"minimum":1,"default":12000,"title":"Limit"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityCheckpointText"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memories/activity/checkpoints/{checkpoint_id}/sharing":{"post":{"tags":["Memories"],"summary":"Request Activity Checkpoint Sharing","description":"Prepare a separate copy and sharing request for one captured summary.\n\nWithout confirm, return a preview without writing. Confirmation authorizes\ncreating the copy, not bypassing content rules or approving the sharing request.\nReview the returned memory through the normal sharing workflow.","operationId":"request_activity_checkpoint_sharing_memories_activity_checkpoints__checkpoint_id__sharing_post","security":[{"APIKey":[]}],"parameters":[{"name":"checkpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Checkpoint Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckpointSharingRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Request Activity Checkpoint Sharing Memories Activity Checkpoints  Checkpoint Id  Sharing Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/messages":{"post":{"tags":["Messages"],"summary":"Ingest messages","description":"Ingest real-time messages.\n\nMessages are stored as they arrive and become searchable through the memory search\nendpoints once they are consolidated into a document and checked against the app's\ncontent filters.","operationId":"post_messages_messages_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessagesRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessagesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/trace/add":{"post":{"tags":["Traces"],"summary":"Add an agent trace","description":"Add an agent trace/transcript to the index.\n\nAccepts traces as a string in Hyperdoc format (native), Vercel AI SDK format,\nor OpenClaw JSONL format. The format is auto-detected if not specified.\n\n**Hyperdoc format** (JSON array, snake_case with type discriminators):\n```json\n{\"history\": \"[{\\\"type\\\": \\\"trace_message\\\", \\\"role\\\": \\\"user\\\", \\\"text\\\": \\\"Hello\\\"}]\"}\n```\n\n**Vercel AI SDK format** (JSON array, camelCase):\n```json\n{\"history\": \"[{\\\"role\\\": \\\"user\\\", \\\"content\\\": \\\"Hello\\\"}]\"}\n```\n\n**OpenClaw JSONL format** (newline-delimited JSON):\n```json\n{\"history\": \"{\\\"type\\\":\\\"session\\\",\\\"id\\\":\\\"abc\\\"}\\n{\\\"type\\\":\\\"message\\\",\\\"message\\\":{\\\"role\\\":\\\"user\\\",...}}\"}\n```","operationId":"add_trace_trace_add_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memories/query":{"post":{"tags":["Memories"],"summary":"Query memories","description":"Retrieves documents matching the query.","operationId":"query_memories_memories_query_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-Hyperspell-Response-Profile","in":"header","required":false,"schema":{"$ref":"#/components/schemas/ResponseProfile","description":"Document response budget: lowercase api scales with the requested result count; lowercase mcp uses 256 KiB. Values are case-sensitive. This does not change access permissions or retrieval depth.","default":"api"},"description":"Document response budget: lowercase api scales with the requested result count; lowercase mcp uses 256 KiB. Values are case-sensitive. This does not change access permissions or retrieval depth."},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memories/list":{"get":{"tags":["Memories"],"summary":"List memories","description":"This endpoint allows you to paginate through all documents in the index.\nYou can filter the documents by title, date, metadata, etc.","operationId":"list_memories_memories_list_get","security":[{"APIKey":[]}],"parameters":[{"name":"collection","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter documents by collection.","title":"Collection"},"description":"Filter documents by collection."},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DocumentProviders"},{"type":"null"}],"description":"Filter documents by source.","title":"Source"},"description":"Filter documents by source."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/DocumentStatus"},{"type":"null"}],"description":"Filter documents by status.","title":"Status"},"description":"Filter documents by status."},{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter documents by metadata using MongoDB-style operators. Example: {\"department\": \"engineering\", \"priority\": {\"$gt\": 3}}","title":"Filter"},"description":"Filter documents by metadata using MongoDB-style operators. Example: {\"department\": \"engineering\", \"priority\": {\"$gt\": 3}}"},{"name":"include_chunks","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":0,"description":"When > 0, include up to this many extracted memories (chunks with summaries) per document in each item's `chunks` field, in document order. 0 (default) omits them.","default":0,"title":"Include Chunks"},"description":"When > 0, include up to this many extracted memories (chunks with summaries) per document in each item's `chunks` field, in document order. 0 (default) omits them."},{"name":"include_body","in":"query","required":false,"schema":{"type":"boolean","description":"Include document bodies where supported. Slack and Teams entries remain bounded envelopes; use `GET /memories/get/{source}/{resource_id}` for paginated channel content. File previews stay excluded. Other documents may include a bounded stored preview; use the same point read for larger content.","default":false,"title":"Include Body"},"description":"Include document bodies where supported. Slack and Teams entries remain bounded envelopes; use `GET /memories/get/{source}/{resource_id}` for paginated channel content. File previews stay excluded. Other documents may include a bounded stored preview; use the same point read for larger content."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":0,"default":50,"title":"Size"}},{"name":"X-Hyperspell-Response-Profile","in":"header","required":false,"schema":{"$ref":"#/components/schemas/ResponseProfile","description":"Response budget for the items array, including requested bodies: lowercase api scales with page size; lowercase mcp uses 256 KiB. Each record is limited to 32 KiB. Values are case-sensitive.","default":"api"},"description":"Response budget for the items array, including requested bodies: lowercase api scales with page size; lowercase mcp uses 256 KiB. Each record is limited to 32 KiB. Values are case-sensitive."},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentListPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memories/status":{"get":{"tags":["Memories"],"summary":"Show indexing progress","description":"This endpoint shows the indexing progress of documents, both by provider and total.","operationId":"get_indexing_status_memories_status_get","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndexingStatus"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memories/get/{source}/{resource_id}":{"get":{"tags":["Memories"],"summary":"Get memory","description":"Retrieve an indexed document. Slack and Teams return a bounded page of\npermitted content, with continuation when more indexed chunks are available.","operationId":"get_memory_memories_get__source___resource_id__get","security":[{"APIKey":[]}],"parameters":[{"name":"source","in":"path","required":true,"schema":{"$ref":"#/components/schemas/DocumentProviders"}},{"name":"resource_id","in":"path","required":true,"schema":{"type":"string","title":"Resource Id"}},{"name":"include_chunks","in":"query","required":false,"schema":{"type":"boolean","description":"When true, include the document's extracted memories (chunks with summaries) in the `chunks` field, in document order.","default":false,"title":"Include Chunks"},"description":"When true, include the document's extracted memories (chunks with summaries) in the `chunks` field, in document order."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"description":"Continuation from a Slack or Teams channel page.","title":"Cursor"},"description":"Continuation from a Slack or Teams channel page."},{"name":"X-Hyperspell-Response-Profile","in":"header","required":false,"schema":{"$ref":"#/components/schemas/ResponseProfile","description":"Case-sensitive api or mcp. Channel pages use 32 KiB for both profiles; other reads use 1 MiB for api and 256 KiB for mcp.","default":"api"},"description":"Case-sensitive api or mcp. Channel pages use 32 KiB for both profiles; other reads use 1 MiB for api and 256 KiB for mcp."},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentReadResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memories/delete/{source}/{resource_id}":{"delete":{"tags":["Memories"],"summary":"Delete memory","description":"Delete a memory accessible to the authenticated credential.","operationId":"delete_memory_memories_delete__source___resource_id__delete","security":[{"APIKey":[]}],"parameters":[{"name":"source","in":"path","required":true,"schema":{"$ref":"#/components/schemas/DocumentProviders"}},{"name":"resource_id","in":"path","required":true,"schema":{"type":"string","title":"Resource Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemoryDeletionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memories/approve/{source}/{resource_id}":{"post":{"tags":["Memories"],"summary":"Approve a pending resource","description":"Approve a pending-review resource for indexing.\n\nThe resource moves to ``PENDING`` and is queued for indexing.","operationId":"approve_memory_memories_approve__source___resource_id__post","security":[{"APIKey":[]}],"parameters":[{"name":"source","in":"path","required":true,"schema":{"$ref":"#/components/schemas/DocumentProviders"}},{"name":"resource_id","in":"path","required":true,"schema":{"type":"string","title":"Resource Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewActionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/memories/reject/{source}/{resource_id}":{"post":{"tags":["Memories"],"summary":"Reject a pending resource","description":"Reject a pending-review resource.\n\nThe resource moves to ``SKIPPED`` and will not be indexed.","operationId":"reject_memory_memories_reject__source___resource_id__post","security":[{"APIKey":[]}],"parameters":[{"name":"source","in":"path","required":true,"schema":{"$ref":"#/components/schemas/DocumentProviders"}},{"name":"resource_id","in":"path","required":true,"schema":{"type":"string","title":"Resource Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewActionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/live/sources":{"get":{"tags":["Live"],"summary":"List live-queryable sources","description":"List the user's connected sources and the live capabilities each supports.","operationId":"list_live_sources_live_sources_get","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiveSourcesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/live/{source}/resources":{"get":{"tags":["Live"],"summary":"List resources from a source live","description":"Page through a source's resources live (no indexing side effect).\n\nThe cursor is opaque and integration-defined — pass back the ``next_cursor``\nfrom the previous page verbatim.","operationId":"list_live_resources_live__source__resources_get","security":[{"APIKey":[]}],"parameters":[{"name":"source","in":"path","required":true,"schema":{"$ref":"#/components/schemas/DocumentProviders"}},{"name":"connection_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Specific connection id.","title":"Connection Id"},"description":"Specific connection id."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":0,"default":50,"title":"Size"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_DocumentResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/live/{source}/resources/{resource_id}":{"get":{"tags":["Live"],"summary":"Fetch one resource live","description":"Fetch one resource live by id. A single fetch may fan out into several\nresources (e.g. a thread → its messages); all are returned. Indexing is\nskipped for live-only sources and explained in the response notes.","operationId":"fetch_live_resource_live__source__resources__resource_id__get","security":[{"APIKey":[]}],"parameters":[{"name":"source","in":"path","required":true,"schema":{"$ref":"#/components/schemas/DocumentProviders"}},{"name":"resource_id","in":"path","required":true,"schema":{"type":"string","title":"Resource Id"}},{"name":"index","in":"query","required":false,"schema":{"type":"boolean","description":"Queue this resource when the source supports indexing.","default":false,"title":"Index"},"description":"Queue this resource when the source supports indexing."},{"name":"connection_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Specific connection id.","title":"Connection Id"},"description":"Specific connection id."},{"name":"X-Hyperspell-Response-Profile","in":"header","required":false,"schema":{"$ref":"#/components/schemas/ResponseProfile","description":"Case-sensitive api or mcp. Bounds Google Calendar event and Google Meet, Fathom, Fellow and Gong transcript fetches; other providers retain their existing behavior.","default":"api"},"description":"Case-sensitive api or mcp. Bounds Google Calendar event and Google Meet, Fathom, Fellow and Gong transcript fetches; other providers retain their existing behavior."},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiveResourceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/live/{source}/search":{"post":{"tags":["Live"],"summary":"Search a source live","description":"Search a source live for content that may not be indexed yet. With\n``index=true``, each hit is queued for indexing (no-op for live-only sources\nlike Google Calendar — see ``notes`` in the response).","operationId":"search_live_source_live__source__search_post","security":[{"APIKey":[]}],"parameters":[{"name":"source","in":"path","required":true,"schema":{"$ref":"#/components/schemas/DocumentProviders"}},{"name":"X-Hyperspell-Response-Profile","in":"header","required":false,"schema":{"$ref":"#/components/schemas/ResponseProfile","description":"Case-sensitive api or mcp. Bounds Google Calendar search only; other providers retain their existing behavior.","default":"api"},"description":"Case-sensitive api or mcp. Bounds Google Calendar search only; other providers retain their existing behavior."},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiveSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiveResourceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/evaluate/query/{query_id}":{"post":{"tags":["Evaluation"],"summary":"Score a query result","description":"Score the result of a query.","operationId":"create_feedback_evaluate_query__query_id__post","security":[{"APIKey":[]}],"parameters":[{"name":"query_id","in":"path","required":true,"schema":{"type":"string","title":"Query Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Evaluation"],"summary":"Get query result","description":"Retrieve the result of a previous query.","operationId":"get_query_evaluate_query__query_id__get","security":[{"APIKey":[]}],"parameters":[{"name":"query_id","in":"path","required":true,"schema":{"type":"string","title":"Query Id"}},{"name":"X-Hyperspell-Response-Profile","in":"header","required":false,"schema":{"$ref":"#/components/schemas/ResponseProfile","description":"Document response budget: api scales with result count; mcp uses 256 KiB.","default":"api"},"description":"Document response budget: api scales with result count; mcp uses 256 KiB."},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/evaluate/highlight/{highlight_id}":{"post":{"tags":["Evaluation"],"summary":"Score a highlight","description":"Score an individual highlight.","operationId":"create_chunk_feedback_evaluate_highlight__highlight_id__post","security":[{"APIKey":[]}],"parameters":[{"name":"highlight_id","in":"path","required":true,"schema":{"type":"string","title":"Highlight Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HighlightFeedbackRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/evaluate/queries":{"get":{"tags":["Evaluation"],"summary":"List prior queries","description":"Paginate through all prior queries for the app, newest first.\n\nRequests scoped to a user only see that user's queries. App-wide requests\nsee every query in the app and can filter by ``user_id``.","operationId":"list_queries_evaluate_queries_get","security":[{"APIKey":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter queries by the user that issued them.","title":"User Id"},"description":"Filter queries by the user that issued them."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":0,"default":50,"title":"Size"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_QueryListItem_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/user_token":{"post":{"tags":["Authentication"],"summary":"Get a user token","description":"Use this endpoint to create a user token for a specific user.\nThis token can be safely passed to your user-facing front-end.","operationId":"generate_user_token_auth_user_token_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserTokenRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserTokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/me":{"get":{"tags":["Authentication"],"summary":"Get Basic user data","description":"Endpoint to get basic user data.","operationId":"user_info_auth_me_get","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/delete":{"delete":{"tags":["Authentication"],"summary":"Delete user","description":"Delete the calling user's data (GDPR erasure).\n\nDeletion is processed asynchronously. The endpoint returns ``202 Accepted``\nwith an identifier for the deletion request.","operationId":"delete_user_auth_delete_delete","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDeletionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/users":{"get":{"tags":["Users","Users"],"summary":"List users","description":"List the app's users — the users who added documents, with document counts.\n\nEach ``user_id`` is valid for the ``X-As-User`` header. ``display_name`` is\nincluded when available. Requires an app-scoped credential; user-scoped\ncredentials cannot enumerate other users.","operationId":"list_users_users_get","security":[{"APIKey":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUsersResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/device-login":{"post":{"tags":["Device Auth"],"summary":"Device Login","description":"Start a device login flow and return a code and approval URL.\n\nThis endpoint is unauthenticated because the device has no credentials yet.\nAn administrator must verify and approve the request before credentials are\nissued.","operationId":"device_login_auth_device_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceLoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceLoginResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/device-poll":{"post":{"tags":["Device Auth"],"summary":"Device Poll","description":"Poll for device code approval. Returns a JWT when approved.","operationId":"device_poll_auth_device_poll_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevicePollRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DevicePollResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/list":{"get":{"tags":["Integrations","Integrations"],"summary":"List all integrations","description":"List all integrations for the user.","operationId":"list_integrations_integrations_list_get","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/connect":{"get":{"tags":["Integrations","Integrations"],"summary":"Link an integration","description":"Redirects to the connect URL to link an integration.","operationId":"connect_integration_integrations__integration_id__connect_get","security":[{"APIKey":[]}],"parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}},{"name":"redirect_url","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Url"}},{"name":"connection_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Connection Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/connections/{connection_id}/permissions":{"post":{"tags":["Integrations","Integrations"],"summary":"Update connection permissions","description":"Authorize additional Slack permissions without replaying historical data.\n\nThe existing personal connection, account, workspace and data are preserved.\nOpen the returned link immediately and finish consent within ten minutes of\nissuance. Opening the link does not extend its lifetime. No change occurs\nuntil approval.","operationId":"update_connection_permissions_integrations__integration_id__connections__connection_id__permissions_post","security":[{"APIKey":[]}],"parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Integration Id"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Connection Id"}},{"name":"redirect_url","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Url"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/channels":{"get":{"tags":["Integrations","Integrations"],"summary":"List available channels","description":"List available channels/chats for a connected integration.\n\nAlso returns the connection's currently selected channel IDs.","operationId":"list_channels_integrations__integration_id__channels_get","security":[{"APIKey":[]}],"parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}},{"name":"connection_id","in":"query","required":true,"schema":{"type":"string","description":"The connection ID to use for listing channels","title":"Connection Id"},"description":"The connection ID to use for listing channels"},{"name":"parent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"For hierarchical providers (e.g. Microsoft Teams): omit to list root containers (workspaces); pass a container's id to list its children (sub-channels). Selected IDs in the response always identify leaf channels, regardless of which level is queried.","title":"Parent Id"},"description":"For hierarchical providers (e.g. Microsoft Teams): omit to list root containers (workspaces); pass a container's id to list its children (sub-channels). Selected IDs in the response always identify leaf channels, regardless of which level is queried."},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListChannelsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/{integration_id}/connections/{connection_id}":{"patch":{"tags":["Integrations","Integrations"],"summary":"Update per-connection user options (e.g., channel allowlist)","description":"Save per-user options on a connection owned by the authenticated user.\n\nConnections outside the current app cannot be updated.","operationId":"update_connection_options_integrations__integration_id__connections__connection_id__patch","security":[{"APIKey":[]}],"parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","title":"Integration Id"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConnectionOptionsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionUserOptions"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/web_crawler/websites":{"get":{"tags":["Integrations"],"summary":"List indexed websites","description":"List saved website collections, independently of crawl-history retention.","operationId":"list_websites_integrations_web_crawler_websites_get","security":[{"APIKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Cursor"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":2048,"default":"","title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":30,"title":"Limit"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/web_crawler/websites/pages":{"get":{"tags":["Integrations"],"summary":"List indexed website pages","description":"List accessible pages in an exact website collection.","operationId":"website_pages_integrations_web_crawler_websites_pages_get","security":[{"APIKey":[]}],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":2048,"title":"Url"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":30,"title":"Limit"}},{"name":"X-Hyperspell-Response-Profile","in":"header","required":false,"schema":{"$ref":"#/components/schemas/ResponseProfile","default":"api"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentListPage"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/web_crawler/schedule":{"get":{"tags":["Integrations"],"summary":"Read a website refresh schedule","operationId":"website_schedule_integrations_web_crawler_schedule_get","security":[{"APIKey":[]}],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":2048,"title":"Url"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteScheduleInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Integrations"],"summary":"Set a website refresh schedule","operationId":"set_website_schedule_integrations_web_crawler_schedule_put","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteScheduleParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteScheduleInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/web_crawler/crawl/refresh":{"post":{"tags":["Integrations"],"summary":"Refresh an indexed website","operationId":"refresh_website_integrations_web_crawler_crawl_refresh_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteRefreshParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteCrawlProgress"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/web_crawler/crawl":{"post":{"tags":["Integrations"],"summary":"Index a public website","operationId":"index_website_integrations_web_crawler_crawl_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteIndexParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteCrawlProgress"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/web_crawler/crawl/status":{"get":{"tags":["Integrations"],"summary":"Read the latest website crawl progress","operationId":"website_crawl_progress_integrations_web_crawler_crawl_status_get","security":[{"APIKey":[]}],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":2048,"title":"Url"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteCrawlProgress"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/web_crawler/crawl/cancel":{"post":{"tags":["Integrations"],"summary":"Cancel a website crawl","operationId":"cancel_website_crawl_integrations_web_crawler_crawl_cancel_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteURLParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Cancel Website Crawl Integrations Web Crawler Crawl Cancel Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/web_crawler/websites/remove":{"post":{"tags":["Integrations"],"summary":"Remove an indexed website","description":"Preview removal, or remove up to 100 owned pages and stop automatic refresh.\n\nRepeat a confirmed request while remaining is greater than zero. Running crawls\nmust be cancelled and reach a terminal state before pages can be removed.","operationId":"remove_website_integrations_web_crawler_websites_remove_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebsiteRemovalParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Remove Website Integrations Web Crawler Websites Remove Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/web_crawler/index":{"get":{"tags":["Integrations"],"summary":"Crawl a website for indexed search","description":"Recursively crawl a website to make it available for indexed search.","operationId":"crawl_website_integrations_web_crawler_index_get","security":[{"APIKey":[]}],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":2048,"description":"The base URL of the website to crawl","title":"Url"},"description":"The base URL of the website to crawl"},{"name":"max_depth","in":"query","required":false,"schema":{"type":"integer","maximum":5,"minimum":0,"description":"Maximum depth of links to follow during crawling","default":2,"title":"Max Depth"},"description":"Maximum depth of links to follow during crawling"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of pages to crawl in total","default":20,"title":"Limit"},"description":"Maximum number of pages to crawl in total"},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/integrations/web_crawler/status":{"get":{"tags":["Integrations"],"summary":"Check crawl status for a URL","description":"Check whether a URL has been crawled and its current indexing status.","operationId":"crawl_status_integrations_web_crawler_status_get","security":[{"APIKey":[]}],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"The URL to check crawl status for","title":"Url"},"description":"The URL to check crawl status for"},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrawlStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/connections/list":{"get":{"tags":["Connections","Connections"],"summary":"List connections","description":"List all connections for the user.","operationId":"list_connections_connections_list_get","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListConnectionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/connections/{connection_id}/revoke":{"delete":{"tags":["Connections","Connections"],"summary":"Revoke connection","description":"Revoke Hyperspell's access to a provider and delete this user's stored data.\n\nRevocation and deletion are processed asynchronously, so the endpoint returns\n``202 Accepted`` immediately. Repeated requests for the same app, user, and\nprovider are safe.","operationId":"revoke_connection_connections__connection_id__revoke_delete","security":[{"APIKey":[]}],"parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionDeletionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/connections/{connection_id}/folder-policies":{"get":{"tags":["Folder Policies"],"summary":"List folder policies for a connection","description":"List all folder policies for a specific connection.","operationId":"list_connection_policies_connections__connection_id__folder_policies_get","security":[{"APIKey":[]}],"parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Connection Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderPolicyListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Folder Policies"],"summary":"Create a folder policy for a connection","description":"Create or update a folder policy for a specific connection.","operationId":"create_connection_policy_connections__connection_id__folder_policies_post","security":[{"APIKey":[]}],"parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Connection Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFolderPolicyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderPolicyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Folder Policies"],"summary":"Batch-apply folder policies for a connection","description":"Apply multiple folder-policy changes as one operation.\n\nThe request is validated as a whole before any changes are applied. It triggers\nat most one resync and returns the connection's complete policy set.","operationId":"batch_update_connection_policies_connections__connection_id__folder_policies_put","security":[{"APIKey":[]}],"parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Connection Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchFolderPolicyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderPolicyListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/connections/{connection_id}/folder-policies/{policy_id}":{"delete":{"tags":["Folder Policies"],"summary":"Delete a folder policy","description":"Delete a folder policy for a specific connection.","operationId":"delete_connection_policy_connections__connection_id__folder_policies__policy_id__delete","security":[{"APIKey":[]}],"parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Connection Id"}},{"name":"policy_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Policy Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderPolicyDeleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/connections/{connection_id}/folders":{"get":{"tags":["Folders","Folders"],"summary":"List folders for a connection","description":"List one level of folders from the user's connected source.\n\nReturns folders decorated with their explicit folder policy (if any).\nUse parent_id to drill into subfolders.","operationId":"list_folders_connections__connection_id__folders_get","security":[{"APIKey":[]}],"parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Connection Id"}},{"name":"parent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Parent folder ID. Omit for root-level folders.","title":"Parent Id"},"description":"Parent folder ID. Omit for root-level folders."},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/oauth/token-exchange/issue":{"post":{"tags":["OAuth"],"summary":"Issue a one-time exchange code for the current user JWT","description":"Exchange a user token for a short-lived, one-time connection code.\n\nUse the returned code in a ``/oauth/link/{integration_id}`` link to start a\nconnection without placing the user token in a browser URL. Only user tokens are accepted.","operationId":"issue_oauth_token_exchange_oauth_token_exchange_issue_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenExchangeIssueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/vault/list":{"get":{"tags":["Vault"],"summary":"List vaults","description":"This endpoint lists all collections, and how many documents are in each collection.\nAll documents that do not have a collection assigned are in the `null` collection.","operationId":"list_vaults_vault_list_get","security":[{"APIKey":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":0,"default":50,"title":"Size"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorPage_Collection_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/emotional-state":{"get":{"tags":["Emotional State"],"summary":"Get latest emotional state","description":"Retrieve the most recent emotional state for the authenticated user.\n\nOptionally filter by `relationship_id` for per-relationship scoping.\nReturns null if no emotional state exists.","operationId":"get_latest_emotional_state_emotional_state_get","security":[{"APIKey":[]}],"parameters":[{"name":"relationship_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/EmotionalStateLatest"},{"type":"null"}],"title":"Response Get Latest Emotional State Emotional State Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Emotional State"],"summary":"Store emotional state","description":"Store a conversation transcript as emotional state and trigger indexing.\n\nMood extraction happens asynchronously, so the returned record may initially\ncontain a placeholder summary and update when processing completes.","operationId":"store_emotional_state_emotional_state_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmotionalStateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmotionalStateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Emotional State"],"summary":"Delete emotional state","description":"Delete emotional state for the authenticated user.\n\nAssociated indexed content is also deleted. Optionally filter by\n``relationship_id`` to delete only a specific relationship's emotional state.","operationId":"delete_emotional_state_emotional_state_delete","security":[{"APIKey":[]}],"parameters":[{"name":"relationship_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmotionalStateDeleteResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/emotional-state/recent":{"get":{"tags":["Emotional State"],"summary":"Get recent emotional states","description":"Return up to `limit` most recent emotional states, newest first.\n\nOptionally filter by ``relationship_id``.","operationId":"get_recent_emotional_states_emotional_state_recent_get","security":[{"APIKey":[]}],"parameters":[{"name":"relationship_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"default":5,"title":"Limit"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EmotionalStateLatest"},"title":"Response Get Recent Emotional States Emotional State Recent Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/entities":{"get":{"tags":["entities"],"summary":"List Entities","description":"List entities available to the current app.\n\nResults can be filtered by type, status, name, and supporting-document count.\nUse the returned cursor to retrieve the next page.","operationId":"list_entities_entities_get","security":[{"APIKey":[]}],"parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Type"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EntityStatus"},{"type":"null"}],"title":"Status"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Search"}},{"name":"name_prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Name Prefix"}},{"name":"min_supporting_documents","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Min Supporting Documents"}},{"name":"sort_by","in":"query","required":false,"schema":{"$ref":"#/components/schemas/EntitySortBy","default":"id"}},{"name":"sort_dir","in":"query","required":false,"schema":{"$ref":"#/components/schemas/EntitySortDir","default":"asc"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":4096},{"type":"null"}],"title":"Cursor"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/entities/{entity_id}":{"get":{"tags":["entities"],"summary":"Get Entity","description":"Fetch a single entity belonging to the current app.\n\nReturns 404 when the entity does not exist or is not visible to the app.","operationId":"get_entity_entities__entity_id__get","security":[{"APIKey":[]}],"parameters":[{"name":"entity_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Entity Id"}},{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/entities/search":{"post":{"tags":["entities"],"summary":"Search Entities","description":"Search the current app's entities by meaning.","operationId":"search_entities_entities_search_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntitySearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntitySearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/actions/send_message":{"post":{"tags":["Actions"],"summary":"Send a message","description":"Send a message to a channel or conversation on a connected integration.","operationId":"send_message_actions_send_message_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/actions/add_reaction":{"post":{"tags":["Actions"],"summary":"Add a reaction","description":"Add an emoji reaction to a message on a connected integration.","operationId":"add_reaction_actions_add_reaction_post","security":[{"APIKey":[]}],"parameters":[{"name":"X-As-User","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token","title":"X-As-User"},"description":"Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddReactionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ActionProvider":{"type":"string","const":"slack"},"ActionResult":{"properties":{"success":{"type":"boolean","title":"Success"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"provider_response":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Provider Response"}},"type":"object","required":["success"],"title":"ActionResult","description":"Result from executing an integration action."},"ActivityCheckpointText":{"properties":{"checkpoint_id":{"type":"string","format":"uuid","title":"Checkpoint Id"},"resource_id":{"type":"string","title":"Resource Id"},"revision":{"type":"integer","title":"Revision"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Title preview, at most 500 characters."},"captured_at":{"type":"string","format":"date-time","title":"Captured At"},"document_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Document Date"},"baseline":{"type":"boolean","title":"Baseline"},"content_hash":{"type":"string","title":"Content Hash"},"agent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent"},"workstream":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workstream"},"text":{"type":"string","title":"Text"},"offset":{"type":"integer","title":"Offset"},"next_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Offset"},"total_characters":{"type":"integer","title":"Total Characters"},"history_type":{"type":"string","title":"History Type","default":"captured_summary"},"visibility":{"type":"string","title":"Visibility","default":"personal"}},"type":"object","required":["checkpoint_id","resource_id","revision","title","captured_at","document_date","baseline","content_hash","agent","workstream","text","offset","next_offset","total_characters"],"title":"ActivityCheckpointText"},"ActivityHistory":{"properties":{"resource_id":{"type":"string","title":"Resource Id"},"checkpoints":{"items":{"$ref":"#/components/schemas/CheckpointPreview"},"type":"array","title":"Checkpoints"},"next_before_revision":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Before Revision"},"history_type":{"type":"string","title":"History Type","default":"captured_summaries"},"visibility":{"type":"string","title":"Visibility","default":"personal"}},"type":"object","required":["resource_id","checkpoints","next_before_revision"],"title":"ActivityHistory"},"AddReactionRequest":{"properties":{"provider":{"$ref":"#/components/schemas/ActionProvider","description":"Integration provider."},"connection":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection","description":"Connection ID. If omitted, auto-resolved from provider + user."},"channel":{"type":"string","title":"Channel","description":"Channel ID containing the message"},"timestamp":{"type":"string","title":"Timestamp","description":"Message timestamp to react to"},"name":{"type":"string","title":"Name","description":"Emoji name without colons (e.g., thumbsup)"}},"type":"object","required":["provider","channel","timestamp","name"],"title":"AddReactionRequest","description":"Add an emoji reaction to a message."},"Alignment":{"type":"string","enum":["left","center","right"],"title":"Alignment"},"AnswerModel":{"type":"string","enum":["llama-3.1","gemma2","qwen-qwq","mistral-saba","llama-4-scout","deepseek-r1","gpt-oss-20b","gpt-oss-120b","claude-sonnet-4-6","claude-sonnet-5","claude-opus-4-7","claude-opus-4-8"],"title":"AnswerModel","description":"Models available for answer generation.\n\nAPI requests use these short, stable names."},"AppInfo":{"properties":{"id":{"type":"string","title":"Id","description":"The Hyperspell app's id this user belongs to"},"name":{"type":"string","title":"Name","description":"The app's name"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url","description":"The app's icon"},"redirect_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Url","description":"The app's redirect URL"}},"type":"object","required":["id","name","icon_url","redirect_url"],"title":"AppInfo"},"AuthProvider":{"type":"string","enum":["legacy","unified","whitelabel"],"title":"AuthProvider"},"BackfillState":{"type":"string","enum":["backfilling","quiesced","completed","unknown"],"title":"BackfillState","description":"Current historical backfill state for a connection."},"BatchFolderPolicyItem":{"properties":{"provider_folder_id":{"type":"string","title":"Provider Folder Id","description":"Folder ID from the source provider"},"folder_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Name","description":"Display name of the folder"},"folder_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Path","description":"Display path of the folder"},"parent_folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id","description":"Parent folder's provider ID for inheritance resolution"},"sync_mode":{"anyOf":[{"$ref":"#/components/schemas/SyncMode"},{"type":"null"}],"description":"Sync mode for this folder (required when action='set')"},"action":{"type":"string","enum":["set","delete"],"title":"Action","description":"'set' creates or updates the policy; 'delete' removes it","default":"set"}},"type":"object","required":["provider_folder_id"],"title":"BatchFolderPolicyItem","description":"One folder-policy change in a batch save.\n\n``action=\"set\"`` creates or updates the folder's policy and requires\n``sync_mode``. ``action=\"delete\"`` removes the policy. Both actions identify the\nfolder using ``provider_folder_id``."},"BatchFolderPolicyRequest":{"properties":{"changes":{"items":{"$ref":"#/components/schemas/BatchFolderPolicyItem"},"type":"array","title":"Changes","description":"Folder-policy changes to apply in a single transaction"}},"type":"object","required":["changes"],"title":"BatchFolderPolicyRequest"},"Blob":{"properties":{"type":{"type":"string","const":"blob","title":"Type","default":"blob"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"mimetype":{"type":"string","title":"Mimetype"},"data":{"type":"string","title":"Data"}},"type":"object","required":["mimetype","data"],"title":"Blob","description":"Represents embedded binary data using data URI scheme.\n\nFormat: data:[<media type>][;base64],<data>\nExample: data:text/html;base64,PGh0bWw+..."},"BodyStatus":{"type":"string","enum":["full","excerpt","preview","omitted"],"title":"BodyStatus"},"Body_upload_memories_upload_post":{"properties":{"file":{"type":"string","format":"binary","title":"File","description":"The file to ingest."},"collection":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection","description":"The collection to add the document to — deprecated, set the collection using metadata instead.","deprecated":true},"metadata":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadata","description":"Custom metadata as JSON string for filtering. Keys must be alphanumeric with underscores, max 64 chars. Values must be string, number, or boolean."},"share":{"anyOf":[{"type":"string","enum":["personal","suggest","shared"]},{"type":"null"}],"title":"Share","description":"Who should see this memory, for a file uploaded on behalf of a user. `personal` (the default) keeps it visible to that user only. `suggest` keeps it personal and asks the user, in their Inbox, whether to share it with everyone in the app. `shared` shares it with everyone in the app once it is processed, and is only accepted when the app allows direct sharing. A file uploaded without a user is always visible to everyone in the app, so it accepts `suggest` and `shared` and refuses `personal`."}},"type":"object","required":["file"],"title":"Body_upload_memories_upload_post"},"BulkIngestRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/IngestRequest"},"type":"array","maxItems":100,"minItems":1,"title":"Items","description":"List of memories to ingest. Maximum 100 items."}},"type":"object","required":["items"],"title":"BulkIngestRequest","description":"Request schema for bulk memory ingestion."},"BulkIngestResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"count":{"type":"integer","title":"Count","description":"Number of items successfully processed"},"items":{"items":{"$ref":"#/components/schemas/DocumentStatusResponse"},"type":"array","title":"Items","description":"Status of each ingested item"},"skipped":{"items":{"$ref":"#/components/schemas/BulkItemSkip"},"type":"array","title":"Skipped","description":"Items not ingested because their resource_id is already owned by another user on this app. Empty in the common case; a non-empty list is a partial success, not an error."}},"type":"object","required":["count","items"],"title":"BulkIngestResponse","description":"Response schema for successful bulk ingestion."},"BulkItemSkip":{"properties":{"resource_id":{"type":"string","title":"Resource Id","description":"Resource ID of the skipped item"},"reason":{"type":"string","title":"Reason","description":"Why the item was skipped: 'owned_by_another_user' or 'not_an_activity_entry'"}},"type":"object","required":["resource_id","reason"],"title":"BulkItemSkip","description":"A bulk item that was neither written nor indexed, with the reason.\n\n``owned_by_another_user`` means the resource ID already belongs to another\nuser in the app; ``not_an_activity_entry`` means an activity entry\n(``metadata.kind = agent_activity``) named a memory that is not one. The bulk\nendpoint skips that item without modifying the existing document. Single-item\n``/memories/add`` returns 409 instead."},"Callout":{"properties":{"type":{"type":"string","const":"callout","title":"Type","default":"callout"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array"},{"type":"null"}],"title":"Children","chunkable":false,"index":false,"response_body":true},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},"type":"object","title":"Callout"},"Capability":{"type":"string","enum":["list_resources","fetch_resource","search_live","passthrough","resolve","query_structured"],"title":"Capability","description":"On-demand access capabilities supported by an integration."},"ChannelInfo":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type","default":"channel"}},"type":"object","required":["id","name"],"title":"ChannelInfo","description":"A selectable channel/chat from an integration provider."},"CheckpointPreview":{"properties":{"checkpoint_id":{"type":"string","format":"uuid","title":"Checkpoint Id"},"revision":{"type":"integer","title":"Revision"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Title preview, at most 500 characters."},"captured_at":{"type":"string","format":"date-time","title":"Captured At"},"document_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Document Date"},"baseline":{"type":"boolean","title":"Baseline"},"content_hash":{"type":"string","title":"Content Hash"},"preview":{"type":"string","title":"Preview"},"total_characters":{"type":"integer","title":"Total Characters"}},"type":"object","required":["checkpoint_id","revision","title","captured_at","document_date","baseline","content_hash","preview","total_characters"],"title":"CheckpointPreview"},"CheckpointSharingRequest":{"properties":{"confirm":{"type":"boolean","title":"Confirm","default":false}},"type":"object","title":"CheckpointSharingRequest"},"Chunk":{"properties":{"type":{"type":"string","const":"chunk","title":"Type","default":"chunk"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array","title":"Children","chunkable":false,"index":false}},"type":"object","title":"Chunk"},"Code":{"properties":{"type":{"type":"string","const":"code","title":"Type","default":"code"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"type":"string","title":"Text"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"}},"type":"object","required":["text"],"title":"Code"},"Collection":{"properties":{"collection":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection"},"document_count":{"type":"integer","title":"Document Count"}},"type":"object","required":["collection","document_count"],"title":"Collection"},"Comment":{"properties":{"type":{"type":"string","const":"comment","title":"Type","default":"comment"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"type":"string","title":"Text"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["text"],"title":"Comment"},"Company":{"properties":{"type":{"type":"string","const":"company","title":"Type","default":"company"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array","title":"Children","chunkable":true,"index":false,"response_body":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","chunkable":false,"index":true},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","chunkable":false,"index":true,"response_body":true},"status_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Summary","chunkable":false,"index":true,"response_body":true},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry","chunkable":false,"index":true},"employees":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Employees"},"last_activity_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity At"},"websites":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Websites"},"domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Domains"},"link_urls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Link Urls"},"emails":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Emails"},"phone_numbers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Phone Numbers"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"deal_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Deal Ids"},"contact_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Contact Ids"}},"type":"object","title":"Company","description":"A CRM company or account record."},"ConnectResponse":{"properties":{"url":{"type":"string","title":"Url"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["url","expires_at"],"title":"ConnectResponse"},"ConnectionDeletionResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","message"],"title":"ConnectionDeletionResponse"},"ConnectionErrorKind":{"type":"string","enum":["auth","rate_limited","provider","internal"],"title":"ConnectionErrorKind","description":"Classification of the most recent synchronization or indexing failure."},"ConnectionHealthError":{"properties":{"kind":{"$ref":"#/components/schemas/ConnectionErrorKind"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"},"at":{"type":"string","format":"date-time","title":"At"},"retry_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Retry At"},"origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Origin"}},"type":"object","required":["kind","detail","at"],"title":"ConnectionHealthError","description":"The current error for a connection.\n\n``detail`` contains a sanitized summary suitable for display."},"ConnectionHealthStatus":{"type":"string","enum":["broken","stalled","error","rate_limited","unverified","syncing","connected","live","never_synced","not_connected"],"title":"ConnectionHealthStatus","description":"Current health status of a connection or integration."},"ConnectionInfo":{"properties":{"id":{"type":"string","title":"Id","description":"The connection's id"},"integration_id":{"type":"string","title":"Integration Id","description":"The connection's integration id"},"provider":{"$ref":"#/components/schemas/DocumentProviders","description":"The connection's provider"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label","description":"The connection's label"},"selected_count":{"type":"integer","title":"Selected Count","description":"Number of items selected for this connection. For integrations that require selection, 0 means nothing is being indexed.","default":0},"scope":{"$ref":"#/components/schemas/ConnectionScope","description":"'user' for a personal connection; 'app' for an org-wide (app-level) connection installed once by an app admin and shared with every user of the app.","default":"user"},"permission_update_available":{"type":"boolean","title":"Permission Update Available","description":"Whether this personal connection can request a permission update without replaying history.","default":false},"permission_update_recommended":{"type":"boolean","title":"Permission Update Recommended","description":"Whether an available permission update is recommended because this connection has no stored verified Slack search grant. Unknown grants also require approval before live search is enabled; this does not mean syncing is broken.","default":false},"backfill_state":{"$ref":"#/components/schemas/BackfillState","description":"State of the historical backfill for providers that deliver history asynchronously: 'backfilling' while history is still streaming in, 'quiesced' once no backfill batch has arrived for a while (drained or stalled), 'completed' if the provider confirmed completion, and 'unknown' when the provider has not reported a backfill state.","default":"unknown"}},"type":"object","required":["id","integration_id","provider","label"],"title":"ConnectionInfo"},"ConnectionScope":{"type":"string","enum":["user","app"],"title":"ConnectionScope","description":"Who owns a connection.\n\n``user`` identifies a connection owned by one user. ``app`` identifies a\nshared connection owned by the app."},"ConnectionStatusEntry":{"properties":{"id":{"type":"string","title":"Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"status":{"$ref":"#/components/schemas/ConnectionHealthStatus"},"last_synced_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Synced At"},"last_activity_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity At"},"error":{"anyOf":[{"$ref":"#/components/schemas/ConnectionHealthError"},{"type":"null"}]}},"type":"object","required":["id","label","status","last_synced_at","last_activity_at","error"],"title":"ConnectionStatusEntry","description":"The current health of one connection."},"ConnectionUserOptions":{"properties":{"channels":{"items":{"type":"string"},"type":"array","title":"Channels","default":[]}},"type":"object","title":"ConnectionUserOptions","description":"Options selected by a user for a specific connection.\n\nFor example, a user can choose which Teams channels to index."},"Conversation":{"properties":{"type":{"type":"string","const":"conversation","title":"Type","default":"conversation"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"$ref":"#/components/schemas/Message"},"type":"array","title":"Children","chunkable":true,"index":false,"response_body":true},"channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","chunkable":false,"index":false},"participants":{"anyOf":[{"items":{"$ref":"#/components/schemas/Person"},"type":"array"},{"type":"null"}],"title":"Participants","chunkable":false,"index":false,"response_body":true}},"type":"object","title":"Conversation"},"CrawlStatusResponse":{"properties":{"url":{"type":"string","title":"Url"},"is_indexed":{"type":"boolean","title":"Is Indexed"},"total":{"type":"integer","title":"Total"},"completed":{"type":"integer","title":"Completed"},"processing":{"type":"integer","title":"Processing"},"failed":{"type":"integer","title":"Failed"}},"type":"object","required":["url","is_indexed","total","completed","processing","failed"],"title":"CrawlStatusResponse","description":"Response for crawl status check."},"CreateFolderPolicyRequest":{"properties":{"provider_folder_id":{"type":"string","title":"Provider Folder Id","description":"Folder ID from the source provider"},"folder_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Name","description":"Display name of the folder"},"folder_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Path","description":"Display path of the folder"},"parent_folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id","description":"Parent folder's provider ID for inheritance resolution"},"sync_mode":{"$ref":"#/components/schemas/SyncMode","description":"Sync mode for this folder"}},"type":"object","required":["provider_folder_id","sync_mode"],"title":"CreateFolderPolicyRequest","examples":[{"provider_folder_id":"folder_123","sync_mode":"sync"}]},"CursorPage_Collection_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/Collection"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items","next_cursor"],"title":"CursorPage[Collection]"},"CursorPage_DocumentResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DocumentResponse"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items","next_cursor"],"title":"CursorPage[DocumentResponse]"},"CursorPage_QueryListItem_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/QueryListItem"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items","next_cursor"],"title":"CursorPage[QueryListItem]"},"Deal":{"properties":{"type":{"type":"string","const":"deal","title":"Type","default":"deal"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array","title":"Children","chunkable":true,"index":false,"response_body":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","chunkable":false,"index":true},"amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Amount"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage","chunkable":false,"index":true},"pipeline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pipeline"},"probability":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Probability"},"closed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Closed At"},"expected_close_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expected Close At"},"won_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Won Reason","chunkable":false,"index":false,"response_body":true},"lost_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lost Reason","chunkable":false,"index":false,"response_body":true},"close_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Close Reason","chunkable":false,"index":false,"response_body":true},"status_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Summary","chunkable":false,"index":true,"response_body":true},"next_step":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Step","chunkable":false,"index":false,"response_body":true},"last_activity_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Activity At"},"deal_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deal Source"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"company_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Company Ids"},"contact_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Contact Ids"}},"type":"object","title":"Deal","description":"A CRM deal or opportunity record."},"Description":{"properties":{"type":{"type":"string","const":"description","title":"Type","default":"description"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array"},{"type":"null"}],"title":"Children","chunkable":false,"index":false,"response_body":true}},"type":"object","title":"Description","description":"A document's standfirst: one or two sentences under the title.\n\nA distinct type rather than \"the first paragraph\", because position is not\nmeaning — a renderer that styles children[0] differently breaks the moment\na writer puts a heading first, and a reader extracting the summary would\nhave to guess. One per document by convention; nothing enforces it."},"DeviceLoginRequest":{"properties":{"app_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Slug"},"device_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Name"},"requester_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requester Name"},"admin":{"type":"boolean","title":"Admin","default":false}},"type":"object","title":"DeviceLoginRequest"},"DeviceLoginResponse":{"properties":{"device_code":{"type":"string","title":"Device Code"},"login_url":{"type":"string","title":"Login Url"},"poll_interval":{"type":"integer","title":"Poll Interval","default":2},"expires_in":{"type":"integer","title":"Expires In","default":600}},"type":"object","required":["device_code","login_url"],"title":"DeviceLoginResponse"},"DevicePollRequest":{"properties":{"device_code":{"type":"string","title":"Device Code"}},"type":"object","required":["device_code"],"title":"DevicePollRequest"},"DevicePollResponse":{"properties":{"status":{"type":"string","title":"Status"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"},"user_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Key"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"is_admin":{"type":"boolean","title":"Is Admin","default":false},"expires_in":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires In"},"app_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Slug"}},"type":"object","required":["status"],"title":"DevicePollResponse"},"Divider":{"properties":{"type":{"type":"string","const":"divider","title":"Type","default":"divider"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]}},"type":"object","title":"Divider"},"Document":{"properties":{"type":{"type":"string","const":"document","title":"Type","default":"document"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array","title":"Children","chunkable":true,"index":false,"response_body":true},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"comments":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"Comments","chunkable":true,"index":false,"response_body":true}},"type":"object","title":"Document"},"DocumentListPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DocumentResponse"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"notices":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResponseContentLimitedNotice"},"type":"array"},{"type":"null"}],"title":"Notices"}},"type":"object","required":["items","next_cursor"],"title":"DocumentListPage"},"DocumentProviders":{"type":"string","enum":["reddit","notion","slack","google_calendar","google_mail","imap","google_meet","box","dropbox","github","gitlab","google_drive","vault","web_crawler","trace","microsoft_outlook","microsoft_teams","granola","fathom","fireflies","figma","linear","hubspot","salesforce","coda","confluence","jira","metabase","gong","clickup","lightfield","pylon","fellow","odoo","external_mcp","page"],"title":"DocumentProviders"},"DocumentReadResponse":{"properties":{"resource_id":{"type":"string","title":"Resource Id"},"body_status":{"anyOf":[{"$ref":"#/components/schemas/BodyStatus"},{"type":"null"}],"description":"Content representation: full, matched excerpt, partial preview, or omitted. Absent on reads that do not yet report this status."},"source":{"$ref":"#/components/schemas/DocumentProviders"},"type":{"type":"string","title":"Type","description":"Hyperdoc document type discriminator (document, message, file, event, ...)."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Human-readable document title."},"status":{"anyOf":[{"$ref":"#/components/schemas/DocumentStatus"},{"type":"null"}],"description":"Indexing status of the document."},"collection":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection","description":"The document's collection, if any."},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","description":"Filterable custom metadata attached to the document."},"ingested_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ingested At","description":"When Hyperspell first indexed the document."},"last_modified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified At","description":"When the source document was last modified, if supplied by the source."},"document_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Document Date","description":"The document's own date (e.g. email sent date, event date)."},"document":{"$ref":"#/components/schemas/DocumentType","description":"The hyperdoc tree. Switch on `type` for the document frame and recurse through `children` for the body.","examples":[{"children":[{"text":"The next release adds calendar search.","type":"text"}],"title":"Project notes","type":"document"}]},"chunks":{"anyOf":[{"items":{"$ref":"#/components/schemas/MemoryChunk"},"type":"array"},{"type":"null"}],"title":"Chunks","description":"Extracted memories (chunks with summaries) for this document, in document order. Present only when explicitly requested via `include_chunks`; omitted otherwise."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"notices":{"anyOf":[{"items":{"$ref":"#/components/schemas/ReadContentNotice"},"type":"array"},{"type":"null"}],"title":"Notices"}},"type":"object","required":["resource_id","source","type","document"],"title":"DocumentReadResponse"},"DocumentResponse":{"properties":{"resource_id":{"type":"string","title":"Resource Id"},"body_status":{"anyOf":[{"$ref":"#/components/schemas/BodyStatus"},{"type":"null"}],"description":"Content representation: full, matched excerpt, partial preview, or omitted. Absent on reads that do not yet report this status."},"source":{"$ref":"#/components/schemas/DocumentProviders"},"type":{"type":"string","title":"Type","description":"Hyperdoc document type discriminator (document, message, file, event, ...)."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Human-readable document title."},"status":{"anyOf":[{"$ref":"#/components/schemas/DocumentStatus"},{"type":"null"}],"description":"Indexing status of the document."},"collection":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection","description":"The document's collection, if any."},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","description":"Filterable custom metadata attached to the document."},"ingested_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ingested At","description":"When Hyperspell first indexed the document."},"last_modified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified At","description":"When the source document was last modified, if supplied by the source."},"document_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Document Date","description":"The document's own date (e.g. email sent date, event date)."},"document":{"$ref":"#/components/schemas/DocumentType","description":"The hyperdoc tree. Switch on `type` for the document frame and recurse through `children` for the body.","examples":[{"children":[{"text":"The next release adds calendar search.","type":"text"}],"title":"Project notes","type":"document"}]},"chunks":{"anyOf":[{"items":{"$ref":"#/components/schemas/MemoryChunk"},"type":"array"},{"type":"null"}],"title":"Chunks","description":"Extracted memories (chunks with summaries) for this document, in document order. Present only when explicitly requested via `include_chunks`; omitted otherwise."}},"type":"object","required":["resource_id","source","type","document"],"title":"DocumentResponse","description":"A document-shaped API response containing the hyperdoc tree."},"DocumentStatus":{"type":"string","enum":["pending","processing","completed","failed","pending_review","skipped","filtered","cancelled"],"title":"DocumentStatus"},"DocumentStatusResponse":{"properties":{"source":{"$ref":"#/components/schemas/DocumentProviders"},"resource_id":{"type":"string","title":"Resource Id"},"status":{"$ref":"#/components/schemas/DocumentStatus"}},"type":"object","required":["source","resource_id","status"],"title":"DocumentStatusResponse"},"DocumentType":{"oneOf":[{"$ref":"#/components/schemas/Document"},{"$ref":"#/components/schemas/Website"},{"$ref":"#/components/schemas/Task"},{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Message"},{"$ref":"#/components/schemas/Event"},{"$ref":"#/components/schemas/File"},{"$ref":"#/components/schemas/Conversation"},{"$ref":"#/components/schemas/Trace"},{"$ref":"#/components/schemas/Transcript"},{"$ref":"#/components/schemas/Company"},{"$ref":"#/components/schemas/Deal"},{"$ref":"#/components/schemas/Invoice"}],"discriminator":{"propertyName":"type","mapping":{"company":"#/components/schemas/Company","conversation":"#/components/schemas/Conversation","deal":"#/components/schemas/Deal","document":"#/components/schemas/Document","event":"#/components/schemas/Event","file":"#/components/schemas/File","invoice":"#/components/schemas/Invoice","message":"#/components/schemas/Message","person":"#/components/schemas/Person","task":"#/components/schemas/Task","trace":"#/components/schemas/Trace","transcript":"#/components/schemas/Transcript","website":"#/components/schemas/Website"}}},"EffortLevel":{"type":"string","enum":["minimal","low","medium","high","very_high"],"title":"EffortLevel","description":"How much compute to spend on a query.\n\n``minimal`` favors speed and cost, while higher levels perform more retrieval\nand refinement for complex questions."},"EmotionalStateDeleteResponse":{"properties":{"deleted_count":{"type":"integer","title":"Deleted Count"}},"type":"object","required":["deleted_count"],"title":"EmotionalStateDeleteResponse","description":"Response after deleting emotional state."},"EmotionalStateLatest":{"properties":{"resource_id":{"type":"string","title":"Resource Id"},"summary":{"type":"string","title":"Summary"},"extracted_at":{"type":"string","title":"Extracted At"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"relationship_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship Id"},"summary_source":{"type":"string","title":"Summary Source","default":"unknown"}},"type":"object","required":["resource_id","summary","extracted_at","session_id","relationship_id"],"title":"EmotionalStateLatest","description":"Latest emotional state for a user/relationship."},"EmotionalStateRequest":{"properties":{"conversation":{"type":"string","title":"Conversation","description":"The conversation transcript to extract emotional state from."},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session identifier for the conversation."},"relationship_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship Id","description":"Per-relationship scoping key (e.g. 'partner-anna', 'slack:C01234')."},"metadata":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"}]},"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for filtering."}},"type":"object","required":["conversation"],"title":"EmotionalStateRequest","description":"Request to store an emotional state extraction."},"EmotionalStateResponse":{"properties":{"resource_id":{"type":"string","title":"Resource Id"},"summary":{"type":"string","title":"Summary"},"extracted_at":{"type":"string","title":"Extracted At"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"relationship_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship Id"},"status":{"type":"string","title":"Status"},"summary_source":{"type":"string","title":"Summary Source","default":"placeholder"}},"type":"object","required":["resource_id","summary","extracted_at","session_id","relationship_id","status"],"title":"EmotionalStateResponse","description":"Response after storing emotional state."},"EntityListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EntityResponse"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["items"],"title":"EntityListResponse"},"EntityReferenceCandidate":{"properties":{"entity_id":{"type":"string","format":"uuid","title":"Entity Id"},"canonical_name":{"type":"string","title":"Canonical Name"},"entity_type":{"type":"string","title":"Entity Type"},"description":{"anyOf":[{"type":"string","maxLength":600},{"type":"null"}],"title":"Description"},"reason":{"type":"string","maxLength":400,"title":"Reason"},"evidence":{"items":{"$ref":"#/components/schemas/EntityReferenceEvidence"},"type":"array","maxItems":3,"title":"Evidence"}},"type":"object","required":["entity_id","canonical_name","entity_type","reason","evidence"],"title":"EntityReferenceCandidate"},"EntityReferenceEvidence":{"properties":{"source":{"$ref":"#/components/schemas/DocumentProviders"},"resource_id":{"type":"string","minLength":1,"title":"Resource Id"},"chunk_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunk Id"},"text":{"type":"string","maxLength":600,"title":"Text"}},"type":"object","required":["source","resource_id","text"],"title":"EntityReferenceEvidence"},"EntityResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"type":{"type":"string","title":"Type"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"attributes":{"additionalProperties":true,"type":"object","title":"Attributes"},"status":{"anyOf":[{"$ref":"#/components/schemas/EntityStatus"},{"type":"null"}]},"supporting_document_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Supporting Document Count"},"supporting_scope_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Supporting Scope Count"},"record_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Record Count"},"hard_linked_mention_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Hard Linked Mention Count"},"prominence_calculated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Prominence Calculated At"},"prominence_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prominence Version"},"discovery_rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Discovery Rank"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","type","name"],"title":"EntityResponse"},"EntitySearchRequest":{"properties":{"query":{"type":"string","title":"Query"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","default":20}},"type":"object","required":["query"],"title":"EntitySearchRequest"},"EntitySearchResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EntityWithScoreResponse"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"EntitySearchResponse"},"EntitySortBy":{"type":"string","enum":["id","name","type","prominence","discovery_rank"],"title":"EntitySortBy"},"EntitySortDir":{"type":"string","enum":["asc","desc"],"title":"EntitySortDir"},"EntityStatus":{"type":"string","enum":["provisional","confirmed"],"title":"EntityStatus","description":"How strongly the entity's current identity has been established."},"EntityWithScoreResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"type":{"type":"string","title":"Type"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"attributes":{"additionalProperties":true,"type":"object","title":"Attributes"},"status":{"anyOf":[{"$ref":"#/components/schemas/EntityStatus"},{"type":"null"}]},"supporting_document_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Supporting Document Count"},"supporting_scope_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Supporting Scope Count"},"record_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Record Count"},"hard_linked_mention_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Hard Linked Mention Count"},"prominence_calculated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Prominence Calculated At"},"prominence_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prominence Version"},"discovery_rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Discovery Rank"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"similarity":{"type":"number","title":"Similarity"}},"type":"object","required":["id","type","name","similarity"],"title":"EntityWithScoreResponse"},"Equation":{"properties":{"type":{"type":"string","const":"equation","title":"Type","default":"equation"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array"},{"type":"null"}],"title":"Children","chunkable":false,"index":false,"response_body":true}},"type":"object","title":"Equation"},"Event":{"properties":{"type":{"type":"string","const":"event","title":"Type","default":"event"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array","title":"Children","chunkable":true,"index":false,"response_body":true},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","chunkable":false,"index":true},"start_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start At"},"end_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End At"},"meeting_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Meeting Url"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location","chunkable":false,"index":true},"attendees":{"items":{"$ref":"#/components/schemas/Person"},"type":"array","title":"Attendees","chunkable":true,"index":false,"response_body":true}},"type":"object","title":"Event"},"FeedbackRequest":{"properties":{"score":{"type":"number","maximum":1.0,"minimum":-1.0,"title":"Score","description":"Rating of the query result from -1 (bad) to +1 (good).","default":0.0},"comment":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Comment","description":"What was right or wrong with the result."}},"type":"object","title":"FeedbackRequest"},"FeedbackResponse":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the feedback was successfully saved."},"message":{"type":"string","title":"Message","description":"A message describing the result."}},"type":"object","required":["success","message"],"title":"FeedbackResponse"},"File":{"properties":{"type":{"type":"string","const":"file","title":"Type","default":"file"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array","title":"Children","chunkable":true,"index":false,"response_body":true},"filename":{"type":"string","title":"Filename"},"content_type":{"type":"string","title":"Content Type"},"path":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Path"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","chunkable":false,"index":true},"content_truncated":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Content Truncated","description":"Whether the stored readable body is a capped preview of the full file.","chunkable":false,"index":false}},"type":"object","required":["filename","content_type"],"title":"File"},"FolderItem":{"properties":{"provider_folder_id":{"type":"string","title":"Provider Folder Id","description":"Folder ID from the source provider"},"name":{"type":"string","title":"Name","description":"Display name of the folder"},"parent_folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id","description":"Parent folder's provider ID"},"has_children":{"type":"boolean","title":"Has Children","description":"Whether this folder may have subfolders"},"policy":{"anyOf":[{"$ref":"#/components/schemas/FolderPolicyInline"},{"type":"null"}],"description":"Explicit policy on this folder, or null if inheriting/default"}},"type":"object","required":["provider_folder_id","name","has_children"],"title":"FolderItem"},"FolderListResponse":{"properties":{"folders":{"items":{"$ref":"#/components/schemas/FolderItem"},"type":"array","title":"Folders","description":"Folders at this level"}},"type":"object","required":["folders"],"title":"FolderListResponse"},"FolderPolicyDeleteResponse":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the deletion was successful"}},"type":"object","required":["success"],"title":"FolderPolicyDeleteResponse"},"FolderPolicyInline":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Policy UUID"},"sync_mode":{"$ref":"#/components/schemas/SyncMode","description":"Sync mode set on this folder"}},"type":"object","required":["id","sync_mode"],"title":"FolderPolicyInline"},"FolderPolicyListResponse":{"properties":{"policies":{"items":{"$ref":"#/components/schemas/FolderPolicyResponse"},"type":"array","title":"Policies","description":"List of folder policies"}},"type":"object","required":["policies"],"title":"FolderPolicyListResponse"},"FolderPolicyResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique policy ID"},"provider_folder_id":{"type":"string","title":"Provider Folder Id","description":"Folder ID from the source provider"},"folder_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Name","description":"Display name of the folder"},"folder_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Path","description":"Display path of the folder"},"parent_folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Folder Id","description":"Parent folder's provider ID"},"sync_mode":{"$ref":"#/components/schemas/SyncMode","description":"Sync mode for this folder"},"connection_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Connection Id","description":"Connection ID (null for integration defaults)"}},"type":"object","required":["id","provider_folder_id","sync_mode"],"title":"FolderPolicyResponse"},"Footnote":{"properties":{"type":{"type":"string","const":"footnote","title":"Type","default":"footnote"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array"},{"type":"null"}],"title":"Children","chunkable":false,"index":false,"response_body":true}},"type":"object","title":"Footnote"},"GmailSearchOptions":{"properties":{"weight":{"type":"number","minimum":0.0,"title":"Weight","description":"Weight of results from this source. A weight greater than 1.0 means more results from this source will be returned, a weight less than 1.0 means fewer results will be returned. This will only affect results if multiple sources are queried at the same time.","default":1.0},"label_ids":{"items":{"type":"string"},"type":"array","title":"Label Ids","description":"List of label IDs to filter messages (e.g., ['INBOX', 'SENT', 'DRAFT']). Multiple labels are combined with OR logic - messages matching ANY specified label will be returned. If empty, no label filtering is applied (searches all accessible messages)."}},"type":"object","title":"GmailSearchOptions","description":"Search options specific to Gmail integration."},"GoogleDriveSearchOptions":{"properties":{"weight":{"type":"number","minimum":0.0,"title":"Weight","description":"Weight of results from this source. A weight greater than 1.0 means more results from this source will be returned, a weight less than 1.0 means fewer results will be returned. This will only affect results if multiple sources are queried at the same time.","default":1.0}},"type":"object","title":"GoogleDriveSearchOptions"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Heading":{"properties":{"type":{"type":"string","const":"heading","title":"Type","default":"heading"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array"},{"type":"null"}],"title":"Children","chunkable":false,"index":false,"response_body":true},"level":{"type":"integer","title":"Level"}},"type":"object","required":["level"],"title":"Heading"},"Highlight":{},"HighlightFeedbackRequest":{"properties":{"score":{"type":"number","maximum":1.0,"minimum":-1.0,"title":"Score","description":"Rating of the chunk from -1 (bad) to +1 (good).","default":0.0},"comment":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Comment","description":"What was right or wrong with the highlight."}},"type":"object","title":"HighlightFeedbackRequest"},"HighlightSpeaker":{"properties":{"name":{"type":"string","title":"Name","description":"Speaker display name declared by the writing app."},"role":{"anyOf":[{"type":"string","enum":["user","assistant","system","other"]},{"type":"null"}],"title":"Role","description":"Conversational role declared by the writing app, when known."},"basis":{"type":"string","const":"declared","title":"Basis","description":"How the attribution was established. Only 'declared' (asserted by the writing app) exists today.","default":"declared"}},"type":"object","required":["name"],"title":"HighlightSpeaker","description":"Who said the text of a highlight, as declared by the application that\nwrote the conversation. Declared, not verified: Hyperspell carries the\nassertion, it does not check it."},"Image":{"properties":{"type":{"type":"string","const":"image","title":"Type","default":"image"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"type":"string","title":"Text"},"src":{"type":"string","title":"Src"}},"type":"object","required":["text","src"],"title":"Image"},"IndexingStatus":{"properties":{"total":{"additionalProperties":{"type":"integer"},"propertyNames":{"$ref":"#/components/schemas/DocumentStatus"},"type":"object","title":"Total"},"providers":{"additionalProperties":{"additionalProperties":{"type":"integer"},"propertyNames":{"$ref":"#/components/schemas/DocumentStatus"},"type":"object"},"propertyNames":{"$ref":"#/components/schemas/DocumentProviders"},"type":"object","title":"Providers"},"integrations":{"items":{"$ref":"#/components/schemas/IntegrationStatusEntry"},"type":"array","title":"Integrations","default":[]}},"type":"object","required":["total","providers"],"title":"IndexingStatus"},"IngestRequest":{"properties":{"resource_id":{"type":"string","title":"Resource Id","description":"The resource ID to add the document to. If not provided, a new resource ID will be generated. If provided, the document will be updated if it already exists."},"text":{"type":"string","minLength":1,"title":"Text","description":"Full text of the document."},"collection":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection","description":"The collection to add the document to — deprecated, set the collection using metadata instead.","deprecated":true},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Title of the document."},"date":{"type":"string","format":"date-time","title":"Date","description":"Date of the document. Depending on the document, this could be the creation date or date the document was last updated (eg. for a chat transcript, this would be the date of the last message). This helps the ranking algorithm and allows you to filter by date range."},"metadata":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for filtering. Keys must be alphanumeric with underscores, max 64 chars. Values must be string, number, boolean, or null."},"share":{"anyOf":[{"type":"string","enum":["personal","suggest","shared"]},{"type":"null"}],"title":"Share","description":"Who should see this memory, for a memory written on behalf of a user. `personal` (the default) keeps it visible to that user only. `suggest` keeps it personal and asks the user, in their Inbox, whether to share it with everyone in the app. `shared` shares it with everyone in the app once it is processed, and is only accepted when the app allows direct sharing. A memory written without a user is always visible to everyone in the app, so it accepts `suggest` and `shared` and refuses `personal`."}},"type":"object","required":["text"],"title":"IngestRequest","examples":[{"collection":"my-collection","metadata":{"author":"John Doe","date":"2025-05-20T02:31:00Z","rating":3},"text":"...","title":"My Document"}]},"IntegrationInfo":{"properties":{"id":{"type":"string","title":"Id","description":"The integration's id"},"provider":{"$ref":"#/components/schemas/DocumentProviders","description":"The integration's provider"},"name":{"type":"string","title":"Name","description":"The integration's display name"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon","description":"URL to the integration's icon"},"allow_multiple_connections":{"type":"boolean","title":"Allow Multiple Connections","description":"Whether the integration allows multiple connections"},"auth_provider":{"$ref":"#/components/schemas/AuthProvider","description":"The integration's auth provider"},"actions_only":{"type":"boolean","title":"Actions Only","description":"Whether this integration only supports write actions (no sync)","default":false},"requires_channel_selection":{"type":"boolean","title":"Requires Channel Selection","description":"Whether the user must select channels before indexing starts","default":false},"supports_channel_selection":{"type":"boolean","title":"Supports Channel Selection","description":"Whether the integration allows users to choose specific channels to index. Unless selection is required, an empty selection indexes all channels.","default":false},"channel_selection_required":{"type":"boolean","title":"Channel Selection Required","description":"Whether indexing waits until the user selects at least one channel.","default":false},"private_channels_included":{"type":"boolean","title":"Private Channels Included","description":"Whether private channels are included by default when no explicit channel selection is provided.","default":false},"public_channels_included":{"type":"boolean","title":"Public Channels Included","description":"Whether public channels are included by default when no explicit channel selection is provided.","default":true},"supports_folder_selection":{"type":"boolean","title":"Supports Folder Selection","description":"Whether the integration supports listing folders and configuring per-folder sync policies.","default":false},"folder_selection_required":{"type":"boolean","title":"Folder Selection Required","description":"Whether a new personal connection waits for the user to select at least one folder before indexing begins. Shared service-account connections are exempt.","default":false},"supports_live_queries":{"type":"boolean","title":"Supports Live Queries","description":"Whether this source can answer at query time beyond its index — a live retrieval arm, a live search, a raw provider passthrough, or a mapped structured query. Excludes single-resource fetch and name resolution, which nearly every source has.","default":false},"live_routes":{"items":{"type":"string"},"type":"array","title":"Live Routes","description":"The query-time routes this source supports, as stable names: 'indexed', 'retrieval_live', 'search_live', 'passthrough', 'structured', 'resolve', 'fetch'."},"connected_via_service_account":{"type":"boolean","title":"Connected Via Service Account","description":"Whether this app already has a scope='app' (service-account/bot) connection for this integration. Informational only: a shared connection no longer blocks personal OAuth — shared and personal connections can coexist.","default":false}},"type":"object","required":["id","provider","name","icon","allow_multiple_connections","auth_provider"],"title":"IntegrationInfo"},"IntegrationListResponse":{"properties":{"integrations":{"items":{"$ref":"#/components/schemas/IntegrationInfo"},"type":"array","title":"Integrations"}},"type":"object","required":["integrations"],"title":"IntegrationListResponse"},"IntegrationStatusEntry":{"properties":{"provider":{"type":"string","title":"Provider"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"status":{"$ref":"#/components/schemas/ConnectionHealthStatus"},"last_synced_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Synced At"},"error":{"anyOf":[{"$ref":"#/components/schemas/ConnectionHealthError"},{"type":"null"}]},"connections":{"items":{"$ref":"#/components/schemas/ConnectionStatusEntry"},"type":"array","title":"Connections"}},"type":"object","required":["provider","integration_id","status","last_synced_at","error","connections"],"title":"IntegrationStatusEntry","description":"Health summary for a configured integration.\n\n``provider`` uses lowercase snake_case naming (e.g. ``google_drive``)."},"Invoice":{"properties":{"type":{"type":"string","const":"invoice","title":"Type","default":"invoice"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array","title":"Children","chunkable":true,"index":false,"response_body":true},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"invoice_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invoice Type","chunkable":false,"index":true},"number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Number","chunkable":false,"index":true},"reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference","chunkable":false,"index":true},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","chunkable":false,"index":true},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"contact_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Name","chunkable":false,"index":true},"total_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Amount"},"paid_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Paid Amount"},"balance_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Balance Amount"},"tax_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Tax Amount"},"refund_amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Refund Amount"},"posted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Posted At"},"due_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Due At"},"paid_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paid At"},"cancelled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancelled At"},"refunded_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Refunded At"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","chunkable":false,"index":false,"response_body":true},"refund_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refund Reason","chunkable":false,"index":false,"response_body":true},"attachment_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Attachment Names"},"contact_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Id"},"organization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Id"}},"type":"object","title":"Invoice","description":"A customer invoice, vendor bill, or credit memo.\n\nLine items are included in ``children``."},"LineBreak":{"properties":{"type":{"type":"string","const":"line_break","title":"Type","default":"line_break"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]}},"type":"object","title":"LineBreak"},"Link":{"properties":{"type":{"type":"string","const":"link","title":"Type","default":"link"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"type":"string","title":"Text"},"url":{"type":"string","title":"Url"}},"type":"object","required":["text","url"],"title":"Link"},"List":{"properties":{"type":{"type":"string","const":"list","title":"Type","default":"list"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/ToDo"}],"discriminator":{"propertyName":"type","mapping":{"list_item":"#/components/schemas/ListItem","todo":"#/components/schemas/ToDo"}}},"type":"array","title":"Children","chunkable":false,"index":false},"ordered":{"type":"boolean","title":"Ordered","default":false}},"type":"object","title":"List"},"ListChannelsResponse":{"properties":{"channels":{"items":{"$ref":"#/components/schemas/ChannelInfo"},"type":"array","title":"Channels"},"selected":{"items":{"type":"string"},"type":"array","title":"Selected","description":"IDs currently selected for indexing."},"pending":{"type":"boolean","title":"Pending","description":"True while the provider's channel list is being walked in the background (large workspaces can take a minute) — poll again shortly; channels is empty and NOT the workspace's real state while pending.","default":false},"truncated":{"type":"boolean","title":"Truncated","description":"True when the workspace has more channels than could be listed, so channels is incomplete. A saved non-empty selection indexes only the channels it contains, so channels that were not listed stop being indexed.","default":false}},"type":"object","required":["channels"],"title":"ListChannelsResponse"},"ListConnectionsResponse":{"properties":{"connections":{"items":{"$ref":"#/components/schemas/ConnectionInfo"},"type":"array","title":"Connections"}},"type":"object","required":["connections"],"title":"ListConnectionsResponse"},"ListItem":{"properties":{"type":{"type":"string","const":"list_item","title":"Type","default":"list_item"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array"},{"type":"null"}],"title":"Children","chunkable":false,"index":false,"response_body":true}},"type":"object","title":"ListItem"},"ListUsersResponse":{"properties":{"users":{"items":{"$ref":"#/components/schemas/UserInfo"},"type":"array","title":"Users"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["users","total","limit","offset"],"title":"ListUsersResponse"},"LiveResourceResponse":{"properties":{"documents":{"items":{"$ref":"#/components/schemas/DocumentResponse"},"type":"array","title":"Documents"},"indexed":{"type":"boolean","title":"Indexed","default":false},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"}},"type":"object","required":["documents"],"title":"LiveResourceResponse","description":"A fetch/search result: the live documents plus what happened to them."},"LiveSearchRequest":{"properties":{"query":{"type":"string","title":"Query","description":"Live search query."},"index":{"type":"boolean","title":"Index","description":"If true, queue each hit for indexing so it's on-hand next time.","default":false},"connection_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection Id","description":"Specific connection id when the user has multiple for this source."}},"type":"object","required":["query"],"title":"LiveSearchRequest"},"LiveSourceInfo":{"properties":{"source":{"anyOf":[{"$ref":"#/components/schemas/DocumentProviders"},{"type":"string"}],"title":"Source"},"auth_provider":{"$ref":"#/components/schemas/AuthProvider"},"capabilities":{"items":{"$ref":"#/components/schemas/Capability"},"type":"array","title":"Capabilities"}},"type":"object","required":["source","auth_provider","capabilities"],"title":"LiveSourceInfo"},"LiveSourcesResponse":{"properties":{"sources":{"items":{"$ref":"#/components/schemas/LiveSourceInfo"},"type":"array","title":"Sources"}},"type":"object","required":["sources"],"title":"LiveSourcesResponse"},"Markup":{"type":"string","enum":["bold","italic","underline","strikethrough","code","math"],"title":"Markup"},"MemoryChunk":{"properties":{"chunk_id":{"type":"string","title":"Chunk Id","description":"Stable identifier of the chunk."},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary","description":"Generated summary of the chunk, when available within response limits."}},"type":"object","required":["chunk_id"],"title":"MemoryChunk","description":"A searchable chunk extracted from a document during ingestion.\n\n`summary` may be absent when none was generated or response limits omit it.\nList responses report size-related omissions through limitation notices."},"MemoryDeletionResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"resource_id":{"type":"string","title":"Resource Id"},"source":{"$ref":"#/components/schemas/DocumentProviders"},"chunks_deleted":{"type":"integer","title":"Chunks Deleted"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","resource_id","source","chunks_deleted","message"],"title":"MemoryDeletionResponse"},"MemoryType":{"type":"string","enum":["procedure","memory","mood"],"title":"MemoryType"},"Message":{"properties":{"type":{"type":"string","const":"message","title":"Type","default":"message"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array","title":"Children","chunkable":true,"index":false,"response_body":true},"sender":{"$ref":"#/components/schemas/Person"},"date":{"type":"string","format":"date-time","title":"Date"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"The subject or title of the message","chunkable":false,"index":false},"upvotes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Upvotes","description":"The number of upvotes, likes, or reactions on the message","chunkable":false,"index":false},"replies":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"Replies","description":"The replies or comments to the message","chunkable":true,"index":false,"response_body":true},"channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel","description":"The channel or platform where the message was posted, if this Message is not explicitly part of a conversation","chunkable":false,"index":false},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id","description":"Provider message id (e.g. Slack ts, Gmail message id) — merge-dedup key","chunkable":false,"index":false},"is_self":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Self","chunkable":false,"index":false},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","chunkable":false,"index":false},"num_replies":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Num Replies","chunkable":false,"index":false},"thread_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id","chunkable":false,"index":false},"mentioned_users":{"anyOf":[{"items":{"$ref":"#/components/schemas/Person"},"type":"array"},{"type":"null"}],"title":"Mentioned Users","chunkable":false,"index":false,"response_body":true},"speaker_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker Role","chunkable":false,"index":false}},"type":"object","required":["sender","date"],"title":"Message"},"MessageItem":{"properties":{"resource_id":{"type":"string","title":"Resource Id","description":"Identifier for the conversation"},"message_id":{"type":"string","title":"Message Id","description":"Unique message identifier within the conversation"},"content":{"type":"string","maxLength":512000,"minLength":1,"title":"Content","description":"Message text content"},"metadata":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for filtering the consolidated conversation. Uses the same format and limits as /memories/add: up to 50 keys containing letters, numbers, underscores, dashes, or periods; values may be strings, numbers, booleans, or null, with no nesting."},"speaker":{"anyOf":[{"$ref":"#/components/schemas/SpeakerDeclaration"},{"type":"null"}],"description":"Who said this message, declared by the writing application. Carried onto the consolidated conversation's message, its chunks and search highlights; rendered as app-declared, never as verified. Omit for rows with no known speaker."}},"type":"object","required":["resource_id","message_id","content"],"title":"MessageItem"},"MessagesRequest":{"properties":{"source":{"type":"string","title":"Source","description":"Integration source (e.g., 'slack', 'vault')"},"messages":{"items":{"$ref":"#/components/schemas/MessageItem"},"type":"array","maxItems":1000,"minItems":1,"title":"Messages"}},"type":"object","required":["source","messages"],"title":"MessagesRequest"},"MessagesResponse":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"MessagesResponse"},"Metadata":{"properties":{"sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/SourceRef"},"type":"array"},{"type":"null"}],"title":"Sources"},"edited_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Edited By"},"template_block":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Block"},"placeholder":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Placeholder"}},"type":"object","title":"Metadata","description":"Optional annotations carried by a hyperdoc node.\n\nIncludes the sources a node is grounded in, human edit attribution, and on\na generated page the template block that wrote the node. Unset metadata is\nomitted from serialized responses."},"NotionSearchOptions":{"properties":{"weight":{"type":"number","minimum":0.0,"title":"Weight","description":"Weight of results from this source. A weight greater than 1.0 means more results from this source will be returned, a weight less than 1.0 means fewer results will be returned. This will only affect results if multiple sources are queried at the same time.","default":1.0}},"type":"object","title":"NotionSearchOptions"},"Page":{"properties":{"type":{"type":"string","const":"page","title":"Type","default":"page"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array"},{"type":"null"}],"title":"Children","chunkable":false,"index":false,"response_body":true},"page_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page Number"},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Url"}},"type":"object","title":"Page"},"Paragraph":{"properties":{"type":{"type":"string","const":"paragraph","title":"Type","default":"paragraph"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array"},{"type":"null"}],"title":"Children","chunkable":false,"index":false,"response_body":true}},"type":"object","title":"Paragraph"},"Person":{"properties":{"type":{"type":"string","const":"person","title":"Type","default":"person"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array","title":"Children","chunkable":true,"index":false,"response_body":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","chunkable":false,"index":true},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"Source system that issued `external_id`, e.g. `slack`","chunkable":false,"index":false},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id","description":"The person's user id in the source system","chunkable":false,"index":false},"alt_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Alt Names"},"is_bot":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Bot"},"is_app_user":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is App User"},"job_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Job Title","chunkable":false,"index":true},"department":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department","chunkable":false,"index":true},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company","chunkable":false,"index":true},"lifecycle_stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lifecycle Stage","chunkable":false,"index":true},"lead_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lead Status","chunkable":false,"index":true},"employment_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employment Role","chunkable":false,"index":true},"employment_seniority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employment Seniority","chunkable":false,"index":true},"employment_sub_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Employment Sub Role","chunkable":false,"index":true},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Industry","chunkable":false,"index":true},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","chunkable":false,"index":true},"persona":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Persona","chunkable":false,"index":true},"buying_roles":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Buying Roles"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website","chunkable":false,"index":true},"linkedin_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Linkedin Url","chunkable":false,"index":true},"original_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Source","chunkable":false,"index":true},"marketing_contact_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Marketing Contact Status","chunkable":false,"index":true},"last_sales_activity_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Sales Activity At","chunkable":false,"index":true},"last_sales_activity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Sales Activity Type","chunkable":false,"index":true},"emails":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Emails","description":"All known email addresses; `email` holds the primary one","chunkable":false,"index":false},"phone_numbers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Phone Numbers"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"date_of_birth":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Of Birth"},"deal_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Deal Ids"},"company_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Company Ids"},"link_urls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Link Urls"}},"type":"object","title":"Person"},"Priority":{"type":"string","enum":["urgent","high","medium","low"],"title":"Priority"},"Provenance":{"properties":{"sources":{"items":{"$ref":"#/components/schemas/ProvenanceSource"},"type":"array","title":"Sources","description":"Deprecated: the documents ranked for return. Use documents, the response's document list. Will be removed in a future release.","deprecated":true},"entities":{"items":{"$ref":"#/components/schemas/ProvenanceEntity"},"type":"array","title":"Entities","description":"Entities for this query, at medium effort and above. Items with reason and evidence are possible identities from lookups during search, not confirmed matches; items without them are entities in the returned documents."},"failed_sources":{"items":{"type":"string"},"type":"array","title":"Failed Sources","description":"Deprecated: live sources that could not be reached. Use the per-source notices in errors, each with a source field. Will be removed in a future release.","deprecated":true},"steps":{"items":{"$ref":"#/components/schemas/ProvenanceStep"},"type":"array","title":"Steps","description":"Deprecated: the tool calls in turns, flattened. Use turns. Will be removed in a future release.","deprecated":true},"turns":{"items":{"$ref":"#/components/schemas/ProvenanceTurn"},"type":"array","title":"Turns","description":"Ordered model turns, with their summaries and observed tool calls."},"entity_searches":{"anyOf":[{"items":{"$ref":"#/components/schemas/ProvenanceEntitySearch"},"type":"array"},{"type":"null"}],"title":"Entity Searches","description":"Deprecated: records from a retired search tool; current queries do not set it. Use entities. Will be removed in a future release.","deprecated":true},"entity_resolutions":{"anyOf":[{"items":{"$ref":"#/components/schemas/ProvenanceEntityResolution"},"type":"array"},{"type":"null"}],"title":"Entity Resolutions","description":"Deprecated: identity lookup results. Use entities, whose items with reason and evidence carry the same possible matches. Will be removed in a future release.","deprecated":true}},"type":"object","title":"Provenance","description":"Auditability record returned when requested for a supported query."},"ProvenanceEntity":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference","description":"The name or description the search looked up."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Why the lookup suggested this entity as a possible match."},"evidence":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntityReferenceEvidence"},"type":"array"},{"type":"null"}],"title":"Evidence","description":"Source excerpts that support the possible match."},"searched":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Searched","description":"True when a search was restricted to this entity's linked content. False when the entity was suggested but no search used it."}},"type":"object","required":["id","name","type"],"title":"ProvenanceEntity","description":"An entity from an identity lookup during search, or from the returned documents."},"ProvenanceEntityContext":{"properties":{"source":{"$ref":"#/components/schemas/DocumentProviders"},"resource_id":{"type":"string","minLength":1,"title":"Resource Id"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner"},"chunk_id":{"type":"string","title":"Chunk Id"},"span":{"anyOf":[{"prefixItems":[{"type":"integer"},{"type":"integer"}],"type":"array","maxItems":2,"minItems":2},{"type":"null"}],"title":"Span","examples":[[0,120]]},"content_sha256":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}],"title":"Content Sha256"},"title":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Title"},"text":{"type":"string","maxLength":600,"title":"Text"},"kind":{"type":"string","enum":["retrieved_context","verified_mention"],"title":"Kind","default":"retrieved_context"},"mention":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Mention"},"observed_surface":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Observed Surface"}},"type":"object","required":["source","resource_id","chunk_id","text"],"title":"ProvenanceEntityContext","description":"Returned passage context associated with a possible entity match."},"ProvenanceEntityMatch":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference","description":"The name or description the search looked up."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Why the lookup suggested this entity as a possible match."},"evidence":{"anyOf":[{"items":{"$ref":"#/components/schemas/EntityReferenceEvidence"},"type":"array"},{"type":"null"}],"title":"Evidence","description":"Source excerpts that support the possible match."},"searched":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Searched","description":"True when a search was restricted to this entity's linked content. False when the entity was suggested but no search used it."},"match_kind":{"type":"string","title":"Match Kind"},"sources":{"items":{"$ref":"#/components/schemas/SourceReference"},"type":"array","title":"Sources"},"context":{"items":{"$ref":"#/components/schemas/ProvenanceEntityContext"},"type":"array","title":"Context"}},"type":"object","required":["id","name","type","match_kind"],"title":"ProvenanceEntityMatch","description":"A possible identity used to search linked evidence, not a confirmed identity."},"ProvenanceEntityResolution":{"properties":{"status":{"type":"string","enum":["complete","partial","unavailable"],"title":"Status","default":"complete"},"candidates":{"items":{"$ref":"#/components/schemas/EntityReferenceCandidate"},"type":"array","maxItems":5,"title":"Candidates"},"limitations":{"items":{"type":"string"},"type":"array","title":"Limitations"},"reference":{"type":"string","title":"Reference"}},"type":"object","required":["reference"],"title":"ProvenanceEntityResolution"},"ProvenanceEntitySearch":{"properties":{"surface":{"type":"string","title":"Surface"},"entity_type":{"type":"string","title":"Entity Type"},"query":{"type":"string","title":"Query"},"partial":{"type":"boolean","title":"Partial","default":false},"matches":{"items":{"$ref":"#/components/schemas/ProvenanceEntityMatch"},"type":"array","title":"Matches"},"passage_mapping":{"type":"string","enum":["unavailable","partial","available"],"title":"Passage Mapping","default":"unavailable"}},"type":"object","required":["surface","entity_type","query"],"title":"ProvenanceEntitySearch","description":"How a name influenced one additional evidence search."},"ProvenanceSource":{"properties":{"source":{"$ref":"#/components/schemas/DocumentProviders"},"resource_id":{"type":"string","minLength":1,"title":"Resource Id"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner"},"chunk_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunk Id"},"span":{"anyOf":[{"prefixItems":[{"type":"integer"},{"type":"integer"}],"type":"array","maxItems":2,"minItems":2},{"type":"null"}],"title":"Span","examples":[[0,120]]},"content_sha256":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}],"title":"Content Sha256"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score"}},"type":"object","required":["source","resource_id"],"title":"ProvenanceSource","description":"A source document that informed the final answer.\n\nIncludes available retrieval details such as title and relevance score."},"ProvenanceStep":{"properties":{"iteration":{"type":"integer","title":"Iteration","description":"Deprecated: the zero-based position of the enclosing turn in turns. Will be removed in a future release.","deprecated":true},"tool":{"type":"string","title":"Tool"},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"explanation":{"anyOf":[{"type":"string","maxLength":220},{"type":"null"}],"title":"Explanation","description":"Deprecated: current queries do not set this purpose label. Use the associated turn's reasoning_summary, and status and result_count for the observed outcome. Will be removed in a future release.","deprecated":true},"entity_filter_requested":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Entity Filter Requested","description":"For search_indexed, whether the model supplied entity_ids. This records an attempted restriction, not successful execution, a resolved identity, or entity presence in returned documents. Check status for the outcome. Omitted on historical responses and other tools. No entity IDs are exposed."},"result_count":{"type":"integer","title":"Result Count","default":0},"status":{"type":"string","title":"Status"}},"type":"object","required":["iteration","tool","status"],"title":"ProvenanceStep","description":"One tool invocation in the agent's search trajectory (audit trail)."},"ProvenanceTurn":{"properties":{"iteration":{"type":"integer","minimum":0.0,"title":"Iteration","description":"Deprecated: the turn's zero-based position in turns. Will be removed in a future release.","deprecated":true},"reasoning_summary":{"anyOf":[{"type":"string","maxLength":8192},{"type":"null"}],"title":"Reasoning Summary","description":"Readable reasoning summary returned by the provider for this turn. May discuss authorized context beyond the final returned documents. Model commentary is not a verified finding. Null when unavailable."},"tool_calls":{"items":{"$ref":"#/components/schemas/ProvenanceStep"},"type":"array","title":"Tool Calls"}},"type":"object","required":["iteration"],"title":"ProvenanceTurn","description":"One model response and the tool calls selected in that response."},"QueryListItem":{"properties":{"query_id":{"type":"string","title":"Query Id","description":"The ID of the query."},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"The ID of the user that issued the query, if any."},"time":{"type":"string","format":"date-time","title":"Time","description":"When the query was issued."},"query":{"type":"string","title":"Query","description":"The query string that was issued."}},"type":"object","required":["query_id","time","query"],"title":"QueryListItem"},"QueryOptions":{"properties":{"after":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"After","description":"Only query documents created on or after this date."},"before":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Before","description":"Only query documents created before this date."},"filter":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter","description":"Metadata filters using MongoDB-style operators. Example: {'status': 'published', 'priority': {'$gt': 3}}"},"resource_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Resource Ids","description":"Only return results from these specific resource IDs. Useful for scoping searches to specific documents (e.g., a specific email thread or uploaded file)."},"memory_types":{"items":{"$ref":"#/components/schemas/MemoryType"},"type":"array","title":"Memory Types","description":"Filter by memory type. Defaults to generic memories only. Pass multiple types to include procedures, etc."},"recency_half_life_days":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Recency Half Life Days","description":"Optional freshness preference based on the document's most recent activity timestamp (source-reported last_modified, falling back to document_date). Age reduces a result's score by at most 50%. The freshness component halves after this many days: one half-life old retains 75% of its score, two retain 62.5%, so to outrank a brand-new result an older one must be more relevant by 4/3x at one half-life, 1.6x at two, approaching 2x as it ages. Resources with no recency timestamp, or a timestamp in the future, are unchanged. Leave unset to disable; results are then ranked by relevance alone."},"vault":{"$ref":"#/components/schemas/VaultSearchOptions","description":"Search options for vault"},"notion":{"$ref":"#/components/schemas/NotionSearchOptions","description":"Search options for Notion"},"web_crawler":{"$ref":"#/components/schemas/WebCrawlerSearchOptions","description":"Search options for Web Crawler"},"slack":{"$ref":"#/components/schemas/SlackSearchOptions","description":"Search options for Slack"},"google_drive":{"$ref":"#/components/schemas/GoogleDriveSearchOptions","description":"Search options for Google Drive"},"google_mail":{"$ref":"#/components/schemas/GmailSearchOptions","description":"Search options for Gmail"},"max_results":{"type":"integer","maximum":200.0,"minimum":1.0,"title":"Max Results","description":"Maximum number of results to return.","default":10},"timezone":{"type":"string","maxLength":255,"title":"Timezone","description":"IANA timezone used to interpret date-only bounds and relative calendar phrases. Defaults to UTC.","default":"UTC"},"answer_model":{"$ref":"#/components/schemas/AnswerModel","description":"Model to use for answer generation when answer=True"}},"type":"object","title":"QueryOptions"},"QueryRequest":{"properties":{"query":{"type":"string","title":"Query","description":"Query to run."},"answer":{"type":"boolean","title":"Answer","description":"If true, the query will be answered along with matching source documents.","default":false},"provenance":{"type":"boolean","title":"Provenance","description":"If true, collect model turns and tool outcomes in the provenance record. At medium effort and above, provenance.entities also lists entities: possible identity matches from lookups during search, or else the entities in the returned documents.","default":false},"effort":{"$ref":"#/components/schemas/EffortLevel","description":"Controls retrieval thoroughness. 'minimal' performs direct retrieval. 'low' improves the query and extracts date filters. 'medium' adds up to 3 refinement rounds; 'high' allows up to 6. Higher levels can improve recall but add latency and cost.","default":"minimal"},"sources":{"items":{"$ref":"#/components/schemas/DocumentProviders"},"type":"array","title":"Sources","description":"Only query documents from these sources. Names are case-insensitive and accept either separator, so `Google Drive`'s provider may be given as `google_drive`, `google-drive`, or `GOOGLE_DRIVE`."},"options":{"$ref":"#/components/schemas/QueryOptions","description":"Search options for the query."},"max_results":{"type":"integer","maximum":200.0,"minimum":1.0,"title":"Max Results","description":"Maximum number of results to return.","default":10,"deprecated":true}},"type":"object","required":["query"],"title":"QueryRequest","description":"Memory-query payload; serialized request bodies are capped at 1 MiB.","examples":[{"answer":true,"options":{"filter":{}},"query":"What does Hyperspell do?","sources":["vault"]}]},"QueryResult":{"properties":{"query_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query Id","description":"The ID of the query. This can be used to retrieve the query later, or add feedback to it. If the query failed, this will be None."},"errors":{"anyOf":[{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},{"type":"null"}],"title":"Errors","description":"Errors that occurred during the query. These are meant to help the developer debug the query, and are not meant to be shown to the user."},"documents":{"items":{"$ref":"#/components/schemas/ScoredDocumentResponse"},"type":"array","title":"Documents","description":"The matching documents, each carrying its hyperdoc tree plus query-path score, highlights, and summary."},"answer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Answer","description":"The answer to the query, if the request was set to answer."},"disclaimer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Disclaimer","description":"Privacy notice for the answer, when applicable. If present, callers must display it alongside the answer."},"provenance":{"$ref":"#/components/schemas/Provenance","description":"Query provenance with a consistent turns array. Turn details are collected when provenance=True. At medium effort and above, entities lists possible identity matches from lookups during search, or else the entities in the returned documents."},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score","description":"Deprecated: the average score of the query feedback. Only saved-query reads set it; a future release moves it to a separate saved-query response.","deprecated":true},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","description":"Deprecated: the query string that was issued. Only saved-query reads set it; a future release moves it to a separate saved-query response.","deprecated":true}},"type":"object","title":"QueryResult"},"Quote":{"properties":{"type":{"type":"string","const":"quote","title":"Type","default":"quote"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array"},{"type":"null"}],"title":"Children","chunkable":false,"index":false,"response_body":true}},"type":"object","title":"Quote"},"ReadContentNotice":{"properties":{"code":{"type":"string","const":"ResponseContentLimited","title":"Code","default":"ResponseContentLimited"},"message":{"type":"string","title":"Message","default":"Showing part of the indexed channel content. The original channel may contain other messages. Large or unreadable messages and other details may be missing."},"skipped_chunk_count":{"type":"integer","title":"Skipped Chunk Count","default":0}},"type":"object","title":"ReadContentNotice"},"Reference":{"properties":{"type":{"type":"string","const":"reference","title":"Type","default":"reference"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"title":{"type":"string","title":"Title"},"resource_id":{"type":"string","title":"Resource Id"},"provider":{"type":"string","title":"Provider"}},"type":"object","required":["title","resource_id","provider"],"title":"Reference","description":"A pointer to another document in the brain.\n\nCarries the display title and the ``(provider, resource_id)`` pair that\nnames the document — the same coordinates a ``SourceRef`` uses, so a\nreader can resolve it through the same grant-filtered lookup as a\ncitation. Unlike a citation it is content: it stands on its own as a\nblock rather than annotating one."},"ResourceStatusResponse":{"properties":{"source":{"$ref":"#/components/schemas/DocumentProviders"},"resource_id":{"type":"string","title":"Resource Id"},"status":{"$ref":"#/components/schemas/DocumentStatus"}},"type":"object","required":["source","resource_id","status"],"title":"ResourceStatusResponse"},"ResponseContentLimitedNotice":{"properties":{"code":{"type":"string","const":"ResponseContentLimited","title":"Code","default":"ResponseContentLimited"},"message":{"type":"string","title":"Message"},"returned_count":{"type":"integer","minimum":0.0,"title":"Returned Count"},"reduced_count":{"type":"integer","minimum":0.0,"title":"Reduced Count"},"skipped_count":{"type":"integer","minimum":0.0,"title":"Skipped Count"},"skipped_identities":{"items":{"$ref":"#/components/schemas/SkippedDocumentIdentity"},"type":"array","title":"Skipped Identities"},"skipped_identity_omitted_count":{"type":"integer","minimum":0.0,"title":"Skipped Identity Omitted Count","default":0}},"type":"object","required":["message","returned_count","reduced_count","skipped_count"],"title":"ResponseContentLimitedNotice","description":"A successful list response reduced content to fit its byte limits."},"ResponseProfile":{"type":"string","enum":["api","mcp"],"title":"ResponseProfile"},"ReviewActionResponse":{"properties":{"resource_id":{"type":"string","title":"Resource Id"},"source":{"$ref":"#/components/schemas/DocumentProviders"},"status":{"$ref":"#/components/schemas/DocumentStatus"}},"type":"object","required":["resource_id","source","status"],"title":"ReviewActionResponse","description":"Response after approving or rejecting a resource."},"ScoredDocumentResponse":{"properties":{"resource_id":{"type":"string","title":"Resource Id"},"body_status":{"anyOf":[{"$ref":"#/components/schemas/BodyStatus"},{"type":"null"}],"description":"Content representation: full, matched excerpt, partial preview, or omitted. Absent on reads that do not yet report this status."},"source":{"$ref":"#/components/schemas/DocumentProviders"},"type":{"type":"string","title":"Type","description":"Hyperdoc document type discriminator (document, message, file, event, ...)."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Human-readable document title."},"status":{"anyOf":[{"$ref":"#/components/schemas/DocumentStatus"},{"type":"null"}],"description":"Indexing status of the document."},"collection":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection","description":"The document's collection, if any."},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","description":"Filterable custom metadata attached to the document."},"ingested_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ingested At","description":"When Hyperspell first indexed the document."},"last_modified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified At","description":"When the source document was last modified, if supplied by the source."},"document_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Document Date","description":"The document's own date (e.g. email sent date, event date)."},"document":{"$ref":"#/components/schemas/DocumentType","description":"The hyperdoc tree. Switch on `type` for the document frame and recurse through `children` for the body.","examples":[{"children":[{"text":"The next release adds calendar search.","type":"text"}],"title":"Project notes","type":"document"}]},"chunks":{"anyOf":[{"items":{"$ref":"#/components/schemas/MemoryChunk"},"type":"array"},{"type":"null"}],"title":"Chunks","description":"Extracted memories (chunks with summaries) for this document, in document order. Present only when explicitly requested via `include_chunks`; omitted otherwise."},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score","description":"Relevance of the document to the query."},"highlights":{"items":{"$ref":"#/components/schemas/Highlight"},"type":"array","title":"Highlights","description":"The matched chunks that made this document a hit, with per-chunk scores."},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary","description":"Concatenated text of the matched highlights."}},"type":"object","required":["resource_id","source","type","document"],"title":"ScoredDocumentResponse","description":"A document response with its relevance score, matched highlights, and\na summary of those highlights. Slack and Microsoft Teams search bodies\ncontain matched messages rather than the full channel history."},"SendMessageRequest":{"properties":{"provider":{"$ref":"#/components/schemas/ActionProvider","description":"Integration provider."},"connection":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection","description":"Connection ID. If omitted, auto-resolved from provider + user."},"text":{"type":"string","title":"Text","description":"Message text"},"channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel","description":"Channel ID (required for Slack)"},"parent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent","description":"Parent message ID for threading (thread_ts for Slack)"}},"type":"object","required":["provider","text"],"title":"SendMessageRequest","description":"Send a message to a channel or conversation."},"SharingDecision":{"properties":{"source":{"$ref":"#/components/schemas/DocumentProviders"},"resource_id":{"type":"string","maxLength":2048,"minLength":1,"title":"Resource Id"},"decision":{"type":"string","enum":["share","keep_private"],"title":"Decision"}},"type":"object","required":["source","resource_id","decision"],"title":"SharingDecision"},"SharingDecisionResult":{"properties":{"source":{"type":"string","title":"Source"},"resource_id":{"type":"string","title":"Resource Id"},"decision":{"type":"string","enum":["share","keep_private"],"title":"Decision"},"outcome":{"type":"string","enum":["shared","dismissed"],"title":"Outcome"}},"type":"object","required":["source","resource_id","decision","outcome"],"title":"SharingDecisionResult"},"SharingRequest":{"properties":{"source":{"type":"string","title":"Source"},"resource_id":{"type":"string","title":"Resource Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"},"preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview"},"document_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Document Date"},"audiences":{"items":{"type":"string"},"type":"array","title":"Audiences"}},"type":"object","required":["source","resource_id","title","kind","preview","document_date","audiences"],"title":"SharingRequest"},"SharingRequests":{"properties":{"requests":{"items":{"$ref":"#/components/schemas/SharingRequest"},"type":"array","title":"Requests"},"has_more":{"type":"boolean","title":"Has More"},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"},"kind":{"type":"string","enum":["agent_activity","all"],"title":"Kind"}},"type":"object","required":["requests","has_more","query","kind"],"title":"SharingRequests"},"SkippedDocumentIdentity":{"properties":{"source":{"type":"string","title":"Source"},"resource_id":{"type":"string","title":"Resource Id"}},"type":"object","required":["source","resource_id"],"title":"SkippedDocumentIdentity"},"SlackSearchOptions":{"properties":{"weight":{"type":"number","minimum":0.0,"title":"Weight","description":"Weight of results from this source. A weight greater than 1.0 means more results from this source will be returned, a weight less than 1.0 means fewer results will be returned. This will only affect results if multiple sources are queried at the same time.","default":1.0},"channels":{"items":{"type":"string"},"type":"array","title":"Channels","description":"List of Slack channels to include (by id, name, or #name)."},"include_private":{"type":"boolean","title":"Include Private","description":"Accepted for compatibility; has no effect on search results.","default":false},"include_dms":{"type":"boolean","title":"Include Dms","description":"Include direct messages (im) when listing conversations.","default":false},"include_group_dms":{"type":"boolean","title":"Include Group Dms","description":"Include group DMs (mpim) when listing conversations.","default":false},"exclude_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Exclude Archived","description":"If set, pass 'exclude_archived' to Slack. If None, omit the param."}},"type":"object","title":"SlackSearchOptions"},"SourceRef":{"properties":{"chunk_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunk Id"},"resource_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Id"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score"}},"type":"object","title":"SourceRef","description":"A reference to the source content a block is grounded in.\n\nReferences are progressively granular. ``source`` and ``resource_id`` name\nthe document; ``chunk_id`` narrows to one indexed chunk; ``score``\noptionally records relevance. Finer fields never replace coarser ones, and\na reference must name at least a document or a chunk."},"SourceReference":{"properties":{"source":{"$ref":"#/components/schemas/DocumentProviders"},"resource_id":{"type":"string","minLength":1,"title":"Resource Id"},"owner":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner"},"chunk_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chunk Id"},"span":{"anyOf":[{"prefixItems":[{"type":"integer"},{"type":"integer"}],"type":"array","maxItems":2,"minItems":2},{"type":"null"}],"title":"Span","examples":[[0,120]]},"content_sha256":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}],"title":"Content Sha256"}},"type":"object","required":["source","resource_id"],"title":"SourceReference","description":"A typed reference to source material, at progressive granularity.\n\n``source`` + ``resource_id`` are always present (a reference that cannot\nname its source system may not use this type). ``chunk_id`` narrows to one\nindexed chunk; ``span`` narrows to a half-open byte range within the\nreferenced content (the chunk when ``chunk_id`` is set, else the resource\ntext). Finer fields never replace coarser ones — a span-level reference\nstill names its chunk and resource, so consumers degrade losslessly.\n\n``owner`` is never set: a reference names its document by ``source`` and\n``resource_id`` alone, and the field remains only so existing response\nshapes keep it. ``content_sha256`` pins the reference to the content version\nit was minted against so consumers can detect drift instead of silently\nciting changed content."},"SpeakerDeclaration":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name","description":"Display name of the speaker as the writing app knows them."},"role":{"anyOf":[{"type":"string","enum":["user","assistant","system","other"]},{"type":"null"}],"title":"Role","description":"Conversational role of the speaker, when the app distinguishes one."}},"type":"object","required":["name"],"title":"SpeakerDeclaration","description":"Who said this message, as declared by the writing application.\n\nDeclared, not observed: the application that writes a conversation is the\nonly party that knows who spoke, so the declaration is the best evidence\nthere is, and it is rendered as asserted by that application, never as\nsystem-verified."},"Status":{"type":"string","enum":["completed","not_started","in_progress","cancelled"],"title":"Status"},"SyncMode":{"type":"string","enum":["sync","skip","manual"],"title":"SyncMode"},"Table":{"properties":{"type":{"type":"string","const":"table","title":"Type","default":"table"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"$ref":"#/components/schemas/TableRow"},"type":"array","title":"Children","chunkable":false,"index":false},"has_header":{"type":"boolean","title":"Has Header","description":"Whether the first row should be treated as a header","default":true,"chunkable":false,"index":false}},"type":"object","title":"Table"},"TableCell":{"properties":{"type":{"type":"string","const":"table_cell","title":"Type","default":"table_cell"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array"},{"type":"null"}],"title":"Children","chunkable":false,"index":false,"response_body":true},"align":{"$ref":"#/components/schemas/Alignment","default":"left"}},"type":"object","title":"TableCell"},"TableRow":{"properties":{"type":{"type":"string","const":"table_row","title":"Type","default":"table_row"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"$ref":"#/components/schemas/TableCell"},"type":"array","title":"Children","chunkable":false,"index":false}},"type":"object","title":"TableRow"},"Task":{"properties":{"type":{"type":"string","const":"task","title":"Type","default":"task"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array","title":"Children","chunkable":true,"index":false,"response_body":true},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"comments":{"anyOf":[{"items":{"$ref":"#/components/schemas/Message"},"type":"array"},{"type":"null"}],"title":"Comments","chunkable":true,"index":false,"response_body":true},"due_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Due At"},"status":{"anyOf":[{"$ref":"#/components/schemas/Status"},{"type":"null"}]},"priority":{"anyOf":[{"$ref":"#/components/schemas/Priority"},{"type":"null"}]}},"type":"object","title":"Task"},"TaskList":{"properties":{"type":{"type":"string","const":"task_list","title":"Type","default":"task_list"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"$ref":"#/components/schemas/Task"},"type":"array","title":"Children","chunkable":false,"index":false}},"type":"object","title":"TaskList","description":"A block of tasks, rendered as one row per task.\n\nChildren are ``Task`` documents and nothing else — a task list is the one\nplace a task appears as a row inside another document rather than as the\ndocument itself, so the row renderer can rely on every child carrying\nstatus, due date and priority. The type is a separate container rather\nthan a ``List`` of ``ToDo`` items because a to-do is a checkbox with text,\nwhile a task is a document with a lifecycle."},"Text":{"properties":{"type":{"type":"string","const":"text","title":"Type","default":"text"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"type":"string","title":"Text"},"marks":{"anyOf":[{"items":{"$ref":"#/components/schemas/Markup"},"type":"array"},{"type":"null"}],"title":"Marks"}},"type":"object","required":["text"],"title":"Text"},"ToDo":{"properties":{"type":{"type":"string","const":"todo","title":"Type","default":"todo"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"anyOf":[{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array"},{"type":"null"}],"title":"Children","chunkable":false,"index":false,"response_body":true},"checked":{"type":"boolean","title":"Checked","default":false}},"type":"object","title":"ToDo"},"TokenExchangeIssueResponse":{"properties":{"code":{"type":"string","title":"Code"},"expires_in":{"type":"integer","title":"Expires In","default":120}},"type":"object","required":["code"],"title":"TokenExchangeIssueResponse"},"ToolCall":{"properties":{"type":{"type":"string","const":"tool_call","title":"Type","default":"tool_call"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"tool_call_id":{"type":"string","title":"Tool Call Id"},"tool_name":{"type":"string","title":"Tool Name"},"args":{"additionalProperties":true,"type":"object","title":"Args","chunkable":false,"index":false}},"type":"object","required":["tool_call_id","tool_name"],"title":"ToolCall","description":"A tool/function call made by the assistant."},"ToolResult":{"properties":{"type":{"type":"string","const":"tool_result","title":"Type","default":"tool_result"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"tool_call_id":{"type":"string","title":"Tool Call Id"},"tool_name":{"type":"string","title":"Tool Name"},"output":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"items":{},"type":"array"}],"title":"Output"},"is_error":{"type":"boolean","title":"Is Error","default":false}},"type":"object","required":["tool_call_id","tool_name","output"],"title":"ToolResult","description":"The result of a tool call."},"Trace":{"properties":{"type":{"type":"string","const":"trace","title":"Type","default":"trace"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"}],"discriminator":{"propertyName":"type","mapping":{"tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage"}}},"type":"array","title":"Children","chunkable":true,"index":false,"response_body":true},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","chunkable":false,"index":true}},"type":"object","title":"Trace","description":"An agent trace/transcript containing a sequence of steps.\n\nSteps can be TraceMessage (user/assistant messages or thinking),\nToolCall (function calls), or ToolResult (tool responses)."},"TraceMessage":{"properties":{"type":{"type":"string","const":"trace_message","title":"Type","default":"trace_message"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"type":"string","title":"Text"},"role":{"type":"string","enum":["user","assistant"],"title":"Role","default":"assistant"},"message_type":{"type":"string","enum":["message","thinking"],"title":"Message Type","default":"message"},"timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Timestamp"}},"type":"object","required":["text"],"title":"TraceMessage","description":"A message in an agent trace (user message, assistant message, or thinking)."},"TraceRequest":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Resource identifier for the trace."},"history":{"type":"string","maxLength":2000000,"title":"History","description":"The trace history as a string. Can be a JSON array of Hyperdoc steps, a JSON array of Vercel AI SDK steps, or OpenClaw JSONL."},"format":{"anyOf":[{"type":"string","enum":["vercel","hyperdoc","openclaw"]},{"type":"null"}],"title":"Format","description":"Trace format: 'vercel', 'hyperdoc', or 'openclaw'. Auto-detected if not set."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Title of the trace"},"metadata":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"}]},"type":"object"},{"type":"null"}],"title":"Metadata","description":"Custom metadata for filtering. Keys must be alphanumeric with underscores, max 64 chars."},"date":{"type":"string","format":"date-time","title":"Date","description":"Date of the trace"},"extract":{"items":{"$ref":"#/components/schemas/MemoryType"},"type":"array","title":"Extract","description":"What kind of memories to extract from the trace","default":["procedure"]}},"type":"object","required":["history"],"title":"TraceRequest","description":"Request to add an agent trace."},"Transcript":{"properties":{"type":{"type":"string","const":"transcript","title":"Type","default":"transcript"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"$ref":"#/components/schemas/Utterance"},"type":"array","title":"Children","chunkable":true,"index":false,"response_body":true},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","chunkable":false,"index":true},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ended At"},"participants":{"items":{"$ref":"#/components/schemas/Person"},"type":"array","title":"Participants","chunkable":false,"index":false,"response_body":true}},"type":"object","title":"Transcript","description":"A time-anchored, speaker-attributed transcript for a meeting or call.\n\nUtterance timestamps are relative offsets from `started_at`, which is the\nabsolute wall-clock anchor."},"UpdateConnectionOptionsRequest":{"properties":{"channels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Channels","description":"Channel/chat IDs to index. For required-selection integrations (Teams) an empty list blocks all; for optional-selection integrations (Slack) an empty list indexes all. Deselected channels' indexed data is purged."},"shown_channel_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Shown Channel Ids","description":"IDs of every channel/chat the caller displayed when this selection was made, at all levels of a hierarchical listing. Where selection is optional, only a displayed channel left out of `channels` has its indexed data purged; channels that were not displayed keep theirs. Omit to fall back to the most recent channel listing served for the connection."}},"type":"object","title":"UpdateConnectionOptionsRequest"},"UpdateRequest":{"properties":{"text":{"anyOf":[{"type":"string"},{},{"type":"null"}],"title":"Text","description":"Full text of the document. If provided, the document will be re-indexed.","default":{}},"collection":{"anyOf":[{"type":"string"},{},{"type":"null"}],"title":"Collection","description":"The collection to move the document to — deprecated, set the collection using metadata instead.","default":{},"deprecated":true},"title":{"anyOf":[{"type":"string"},{},{"type":"null"}],"title":"Title","description":"Title of the document.","default":{}},"date":{"anyOf":[{"type":"string","format":"date-time"},{},{"type":"null"}],"title":"Date","description":"Date of the document for ranking and filtering.","default":{}},"metadata":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"type":"object"},{},{"type":"null"}],"title":"Metadata","description":"Custom metadata for filtering. Keys must be alphanumeric with underscores, max 64 chars. Values must be string, number, boolean, or null. Will be merged with existing metadata.","default":{}},"share":{"anyOf":[{"type":"string","enum":["personal","suggest","shared"]},{}],"title":"Share","description":"Change who can see this memory. Omit to leave sharing unchanged. `personal` makes it visible only to its user, removing it from everyone in the app if it was shared. `suggest` keeps it personal and, unless it is already shared, asks the user in their Inbox whether to share it; on an already-shared memory it simply makes it personal again. `shared` shares it with everyone in the app, and is only accepted when the app allows direct sharing.","default":{}}},"type":"object","title":"UpdateRequest"},"User":{"properties":{"id":{"type":"string","title":"Id","description":"The user's id"},"app":{"$ref":"#/components/schemas/AppInfo","description":"The Hyperspell app's id this user belongs to"},"available_integrations":{"items":{"$ref":"#/components/schemas/DocumentProviders"},"type":"array","title":"Available Integrations","description":"All integrations available for the app"},"installed_integrations":{"items":{"$ref":"#/components/schemas/DocumentProviders"},"type":"array","title":"Installed Integrations","description":"All integrations installed for the user"},"token_expiration":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Token Expiration","description":"The expiration time of the user token used to make the request"}},"type":"object","required":["id","app","available_integrations","installed_integrations","token_expiration"],"title":"User"},"UserDeletionResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"workflow_id":{"type":"string","title":"Workflow Id"}},"type":"object","required":["success","message","workflow_id"],"title":"UserDeletionResponse"},"UserInfo":{"properties":{"user_id":{"type":"string","title":"User Id"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"document_count":{"type":"integer","title":"Document Count"},"last_indexed":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Indexed"}},"type":"object","required":["user_id","document_count"],"title":"UserInfo"},"UserTokenRequest":{"properties":{"user_id":{"type":"string","title":"User Id"},"origin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Origin","description":"Origin of the request, used for CSRF protection. If set, the token will only be valid for requests originating from this origin."},"expires_in":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires In","description":"Token lifetime, e.g., '30m', '2h', '1d'. Defaults to 24 hours if not provided. Maximum 30 days.","examples":["30m","2h","1d"]}},"type":"object","required":["user_id"],"title":"UserTokenRequest"},"UserTokenResponse":{"properties":{"token":{"type":"string","title":"Token"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["token","expires_at"],"title":"UserTokenResponse"},"Utterance":{"properties":{"type":{"type":"string","const":"utterance","title":"Type","default":"utterance"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"type":"string","title":"Text"},"speaker":{"anyOf":[{"$ref":"#/components/schemas/Person"},{"type":"null"}]},"start":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Start"},"end":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"End"}},"type":"object","required":["text"],"title":"Utterance","description":"A speaker-attributed segment of a transcript.\n\nStart and end times are offsets in seconds from the beginning of the transcript."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VaultSearchOptions":{"properties":{"weight":{"type":"number","minimum":0.0,"title":"Weight","description":"Weight of results from this source. A weight greater than 1.0 means more results from this source will be returned, a weight less than 1.0 means fewer results will be returned. This will only affect results if multiple sources are queried at the same time.","default":1.0}},"type":"object","title":"VaultSearchOptions"},"WebCrawlerSearchOptions":{"properties":{"weight":{"type":"number","minimum":0.0,"title":"Weight","description":"Weight of results from this source. A weight greater than 1.0 means more results from this source will be returned, a weight less than 1.0 means fewer results will be returned. This will only affect results if multiple sources are queried at the same time.","default":1.0},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"The URL to read"},"max_depth":{"type":"integer","title":"Max Depth","description":"Live retrieval reads one page","default":2}},"type":"object","title":"WebCrawlerSearchOptions"},"Website":{"properties":{"type":{"type":"string","const":"website","title":"Type","default":"website"},"id":{"type":"string","title":"Id","chunkable":false,"index":false},"metadata":{"anyOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","chunkable":false,"index":false,"response_body":true},"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/Person"},{"$ref":"#/components/schemas/Blob"},{"$ref":"#/components/schemas/Callout"},{"$ref":"#/components/schemas/Chunk"},{"$ref":"#/components/schemas/Code"},{"$ref":"#/components/schemas/Comment"},{"$ref":"#/components/schemas/Description"},{"$ref":"#/components/schemas/Divider"},{"$ref":"#/components/schemas/Equation"},{"$ref":"#/components/schemas/Footnote"},{"$ref":"#/components/schemas/Heading"},{"$ref":"#/components/schemas/Image"},{"$ref":"#/components/schemas/Link"},{"$ref":"#/components/schemas/LineBreak"},{"$ref":"#/components/schemas/List"},{"$ref":"#/components/schemas/ListItem"},{"$ref":"#/components/schemas/Page"},{"$ref":"#/components/schemas/Paragraph"},{"$ref":"#/components/schemas/Quote"},{"$ref":"#/components/schemas/Reference"},{"$ref":"#/components/schemas/Table"},{"$ref":"#/components/schemas/TableCell"},{"$ref":"#/components/schemas/TableRow"},{"$ref":"#/components/schemas/TaskList"},{"$ref":"#/components/schemas/Text"},{"$ref":"#/components/schemas/ToDo"},{"$ref":"#/components/schemas/ToolCall"},{"$ref":"#/components/schemas/ToolResult"},{"$ref":"#/components/schemas/TraceMessage"},{"$ref":"#/components/schemas/Utterance"}],"discriminator":{"propertyName":"type","mapping":{"blob":"#/components/schemas/Blob","callout":"#/components/schemas/Callout","chunk":"#/components/schemas/Chunk","code":"#/components/schemas/Code","comment":"#/components/schemas/Comment","description":"#/components/schemas/Description","divider":"#/components/schemas/Divider","equation":"#/components/schemas/Equation","footnote":"#/components/schemas/Footnote","heading":"#/components/schemas/Heading","image":"#/components/schemas/Image","line_break":"#/components/schemas/LineBreak","link":"#/components/schemas/Link","list":"#/components/schemas/List","list_item":"#/components/schemas/ListItem","page":"#/components/schemas/Page","paragraph":"#/components/schemas/Paragraph","person":"#/components/schemas/Person","quote":"#/components/schemas/Quote","reference":"#/components/schemas/Reference","table":"#/components/schemas/Table","table_cell":"#/components/schemas/TableCell","table_row":"#/components/schemas/TableRow","task_list":"#/components/schemas/TaskList","text":"#/components/schemas/Text","todo":"#/components/schemas/ToDo","tool_call":"#/components/schemas/ToolCall","tool_result":"#/components/schemas/ToolResult","trace_message":"#/components/schemas/TraceMessage","utterance":"#/components/schemas/Utterance"}}},"type":"array","title":"Children","chunkable":true,"index":false,"response_body":true},"url":{"type":"string","title":"Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","chunkable":false,"index":true,"response_body":true},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"favicon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Favicon"}},"type":"object","required":["url"],"title":"Website"},"WebsiteCrawlProgress":{"properties":{"url":{"type":"string","title":"Url","default":""},"status":{"type":"string","title":"Status","default":"queued"},"discovered":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Discovered","default":0},"indexed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Indexed","default":0},"failed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Failed","default":0},"limit":{"type":"integer","title":"Limit","default":0},"limit_reached":{"type":"boolean","title":"Limit Reached","default":false},"errors":{"items":{"type":"string"},"type":"array","title":"Errors"},"duplicates":{"type":"integer","title":"Duplicates","default":0},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"}},"type":"object","title":"WebsiteCrawlProgress"},"WebsiteIndexParams":{"properties":{"share":{"anyOf":[{"type":"string","enum":["personal","shared"]},{"type":"null"}],"title":"Share","description":"Visibility for new pages. New websites default to shared; existing websites keep their saved choice."},"url":{"type":"string","maxLength":2048,"minLength":1,"title":"Url"},"max_depth":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":0.0},{"type":"null"}],"title":"Max Depth","description":"Link depth to follow. Defaults to the saved website's depth, or 3 for a new website."},"limit":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Limit","description":"Maximum pages to index. Defaults to the saved website's limit, or 100 for a new website."}},"type":"object","required":["url"],"title":"WebsiteIndexParams"},"WebsiteList":{"properties":{"websites":{"items":{"$ref":"#/components/schemas/WebsiteSummary"},"type":"array","title":"Websites"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["websites"],"title":"WebsiteList"},"WebsiteRefreshParams":{"properties":{"url":{"type":"string","maxLength":2048,"minLength":1,"title":"Url"},"max_depth":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":0.0},{"type":"null"}],"title":"Max Depth"},"limit":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Limit"}},"type":"object","required":["url"],"title":"WebsiteRefreshParams"},"WebsiteRemovalParams":{"properties":{"url":{"type":"string","maxLength":2048,"minLength":1,"title":"Url"},"confirm":{"type":"boolean","title":"Confirm","default":false}},"type":"object","required":["url"],"title":"WebsiteRemovalParams"},"WebsiteScheduleInfo":{"properties":{"url":{"type":"string","title":"Url"},"frequency":{"anyOf":[{"type":"string","enum":["never","daily","weekly"]},{"type":"null"}],"title":"Frequency","default":"never"},"configured":{"type":"boolean","title":"Configured","default":false},"enabled":{"type":"boolean","title":"Enabled","default":false},"cron":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cron"},"timezone":{"type":"string","title":"Timezone","default":"UTC"},"max_depth":{"type":"integer","title":"Max Depth","default":3},"limit":{"type":"integer","title":"Limit","default":100},"next_run":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Run"},"schedule_missing":{"type":"boolean","title":"Schedule Missing","default":false},"share":{"type":"string","enum":["personal","shared"],"title":"Share","default":"personal"}},"type":"object","required":["url"],"title":"WebsiteScheduleInfo"},"WebsiteScheduleParams":{"properties":{"url":{"type":"string","maxLength":2048,"minLength":1,"title":"Url"},"frequency":{"anyOf":[{"type":"string","enum":["never","daily","weekly"]},{"type":"null"}],"title":"Frequency"},"cron":{"anyOf":[{"type":"string","maxLength":128,"minLength":1},{"type":"null"}],"title":"Cron","description":"Five-field cron expression: minute hour day-of-month month day-of-week. Omitted keeps the saved expression; a new website refreshes daily at 09:00."},"timezone":{"anyOf":[{"type":"string","maxLength":100,"minLength":1},{"type":"null"}],"title":"Timezone"},"enabled":{"type":"boolean","title":"Enabled","default":true},"share":{"anyOf":[{"type":"string","enum":["personal","shared"]},{"type":"null"}],"title":"Share"},"max_depth":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":0.0},{"type":"null"}],"title":"Max Depth"},"limit":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Limit"}},"type":"object","required":["url"],"title":"WebsiteScheduleParams"},"WebsiteSummary":{"properties":{"url":{"type":"string","title":"Url"},"favicon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Favicon"},"pages":{"type":"integer","title":"Pages"},"indexed":{"type":"integer","title":"Indexed"},"processing":{"type":"integer","title":"Processing"},"failed":{"type":"integer","title":"Failed"},"schedule":{"anyOf":[{"$ref":"#/components/schemas/WebsiteScheduleInfo"},{"type":"null"}],"description":"The saved refresh schedule and crawl bounds. Omitted when none is saved."}},"type":"object","required":["url","pages","indexed","processing","failed"],"title":"WebsiteSummary"},"WebsiteURLParams":{"properties":{"url":{"type":"string","maxLength":2048,"minLength":1,"title":"Url"}},"type":"object","required":["url"],"title":"WebsiteURLParams"}},"securitySchemes":{"APIKey":{"type":"http","description":"API Key or JWT User Token. If using an API Key, set the X-As-User header to act as a specific user. A JWT User Token is always scoped to a specific user.","scheme":"bearer","bearerFormat":"Bearer <token>"}}}}