Chats
Chats in the Taad API: list chats, start a chat, get a chat, delete a chat, ask in a chat, confirm a proposed change, undo an action.
The chats started over the API with this account's keys, the latest first. The apps' own chats aren't listed.
Authorization
apiKey Authorization: Bearer taad_… (or taadtest_… for the sandbox). Never in a URL, never in a web page.
In: header
Query Parameters
1 <= value <= 10020length <= 500Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/chats"{ "object": "list", "data": [ { "id": "string", "object": "chat", "livemode": true, "title": "string", "recording_id": "string", "answering": true, "messages": [ { "id": "string", "object": "chat_message", "chat_id": "string", "role": "user", "text_markdown": "string", "citations": [ { "recording_id": "string", "start_ms": -9007199254740991, "end_ms": -9007199254740991, "quote": "string" } ], "recording_ids": [ "string" ], "actions": [ { "id": "string", "object": "chat_action", "chat_id": "string", "label": "string", "tool": "string", "kind": "create", "status": "proposed" } ], "status": "answering", "error": { "code": "string", "message": "string" }, "cost_usd": 0, "created_at": "string" } ], "created_at": "string", "updated_at": "string" } ], "has_more": true, "next_cursor": "string"}Starts a chat with its first question and answers it from the recordings the key reaches, with citations, as the apps' Chats do; it may add things (a to-do, an event: done at once, undo them) or propose changes (confirm them). Answers the chat with both messages once the answer is written (up to 3 minutes). A personal key's chat shows in its maker's Chats in the apps; an organization key's stays here.
Price: what answering it really cost us, plus a markup (50% unless your account says otherwise), from the API wallet; it holds up to $1.00 while it answers and is never charged more, and an answer that fails on our side is not charged. The apps' daily AI allowance is never used.
Authorization
apiKey Authorization: Bearer taad_… (or taadtest_… for the sandbox). Never in a URL, never in a web page.
In: header
Header Parameters
Any unique string (a UUID). Sending the same request again with the same key answers the first answer, and a paid call is never charged twice. Kept 24 hours.
length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/chats" \ -H "Content-Type: application/json" \ -d '{ "message": "string" }'{ "id": "string", "object": "chat", "livemode": true, "title": "string", "recording_id": "string", "answering": true, "messages": [ { "id": "string", "object": "chat_message", "chat_id": "string", "role": "user", "text_markdown": "string", "citations": [ { "recording_id": "string", "start_ms": -9007199254740991, "end_ms": -9007199254740991, "quote": "string" } ], "recording_ids": [ "string" ], "actions": [ { "id": "string", "object": "chat_action", "chat_id": "string", "label": "string", "tool": "string", "kind": "create", "status": "proposed" } ], "status": "answering", "error": { "code": "string", "message": "string" }, "cost_usd": 0, "created_at": "string" } ], "created_at": "string", "updated_at": "string"}A chat with its messages, oldest first, each answer's actions as they are now.
Authorization
apiKey Authorization: Bearer taad_… (or taadtest_… for the sandbox). Never in a URL, never in a web page.
In: header
Path Parameters
length <= 64Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/chats/string"{ "id": "string", "object": "chat", "livemode": true, "title": "string", "recording_id": "string", "answering": true, "messages": [ { "id": "string", "object": "chat_message", "chat_id": "string", "role": "user", "text_markdown": "string", "citations": [ { "recording_id": "string", "start_ms": -9007199254740991, "end_ms": -9007199254740991, "quote": "string" } ], "recording_ids": [ "string" ], "actions": [ { "id": "string", "object": "chat_action", "chat_id": "string", "label": "string", "tool": "string", "kind": "create", "status": "proposed" } ], "status": "answering", "error": { "code": "string", "message": "string" }, "cost_usd": 0, "created_at": "string" } ], "created_at": "string", "updated_at": "string"}Deletes the chat and its messages (from the apps too, for a personal key's). An answer still arriving stops.
Authorization
apiKey Authorization: Bearer taad_… (or taadtest_… for the sandbox). Never in a URL, never in a web page.
In: header
Path Parameters
length <= 64Header Parameters
Any unique string (a UUID). Sending the same request again with the same key answers the first answer, and a paid call is never charged twice. Kept 24 hours.
length <= 255Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X DELETE "https://example.com/v1/chats/string"{ "id": "string", "object": "chat", "deleted": true}Asks the next question in a chat: the answer reads what was asked and answered before in it. Answers the answer once it is written (up to 3 minutes). An answer still arriving in the chat: 409 not_ready.
Price: what answering it really cost us, plus a markup (50% unless your account says otherwise), from the API wallet; it holds up to $1.00 while it answers and is never charged more, and an answer that fails on our side is not charged. The apps' daily AI allowance is never used.
Authorization
apiKey Authorization: Bearer taad_… (or taadtest_… for the sandbox). Never in a URL, never in a web page.
In: header
Path Parameters
length <= 64Header Parameters
Any unique string (a UUID). Sending the same request again with the same key answers the first answer, and a paid call is never charged twice. Kept 24 hours.
length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/chats/string/messages" \ -H "Content-Type: application/json" \ -d '{ "message": "string" }'{ "id": "string", "object": "chat_message", "chat_id": "string", "role": "user", "text_markdown": "string", "citations": [ { "recording_id": "string", "start_ms": -9007199254740991, "end_ms": -9007199254740991, "quote": "string" } ], "recording_ids": [ "string" ], "actions": [ { "id": "string", "object": "chat_action", "chat_id": "string", "label": "string", "tool": "string", "kind": "create", "status": "proposed" } ], "status": "answering", "error": { "code": "string", "message": "string" }, "cost_usd": 0, "created_at": "string"}Makes a change an answer proposed (mark a to-do done, move an event, rewrite a summary…), once, as Confirm in the apps; confirming twice is once. It needs the key's scope for what it changes (todos:write, calendar:write, recordings:write). Too old, or no longer possible: 409 with why.
Authorization
apiKey Authorization: Bearer taad_… (or taadtest_… for the sandbox). Never in a URL, never in a web page.
In: header
Path Parameters
length <= 64length <= 64Header Parameters
Any unique string (a UUID). Sending the same request again with the same key answers the first answer, and a paid call is never charged twice. Kept 24 hours.
length <= 255Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/chats/string/actions/string/confirm"{ "id": "string", "object": "chat_action", "chat_id": "string", "label": "string", "tool": "string", "kind": "create", "status": "proposed"}Takes back what an answer added or a confirmed change, as Undo in the apps; twice is once.
Authorization
apiKey Authorization: Bearer taad_… (or taadtest_… for the sandbox). Never in a URL, never in a web page.
In: header
Path Parameters
length <= 64length <= 64Header Parameters
Any unique string (a UUID). Sending the same request again with the same key answers the first answer, and a paid call is never charged twice. Kept 24 hours.
length <= 255Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/chats/string/actions/string/undo"{ "id": "string", "object": "chat_action", "chat_id": "string", "label": "string", "tool": "string", "kind": "create", "status": "proposed"}