codai docs
API referenceGateway

Pending prompts

Ready-to-paste prompts that agents (or you) leave for a future chat — handoffs, dated follow-ups — with reminders and one-click launch on a device.

A pending prompt is a complete, self-contained prompt saved for later: the handoff an agent writes when a goal is done, a follow-up that should only start after a date, or an idea you want to pick up in a fresh chat. It is stored centrally, so the same list shows up on the desktop app, the phone and the hub.

Agents read the list through the MCP server tools prompts_list (status, limit) and prompts_get (id). Both are read-only: launching a prompt starts a paid run, so it stays in the hub, desktop and phone.

Pending prompts: how agents leave prompts for later

  1. Capture. At the end of a goal the agent posts its "start a new chat with this" prompt to POST /v1/prompts. The Copilot Stop hook, the desktop handoff tool, the phone and the hub all use the same endpoint, with source saying which one.
  2. Dedupe and supersede. The same text is stored once (a sha256 of the whitespace-normalised prompt), so two capture paths never create twins — the second call answers 200 with created: false. Pass a stable goal_key and every older open prompt with that key becomes superseded: only the latest handoff for a goal stays open.
  3. Wait. Without not_before the prompt is due at once. With a date (2026-10-01 means 07:00 UTC that day) or an ISO datetime it stays quiet until then.
  4. Remind. When not_before passes you get a prompt.due notification in the inbox (plus a push) whose url is codai://prompts/<id>. With auto_run: true the prompt is also launched automatically on target_device_id, or on your freshest desktop/Android device.
  5. Act. Open the prompt and copy it, snooze it (PATCH a new not_before — this re-arms the reminder), mark it done / dismissed, or POST …/launch: that opens a new shared session and sends the text to a device as a send control. The prompt moves to launched and keeps the run_session_id.
import { Codai } from 'codai-sdk';

const codai = new Codai({ apiKey: process.env.CODAI_API_KEY! });
const saved = await codai.prompts.create({
  prompt: 'Goal: finish the billing export…',
  source: 'agent',
  goal_key: 'billing-export',
  not_before: '2026-10-01',
});
const due = await codai.prompts.list({ status: 'due' });
await codai.prompts.launch(saved.id);
from codai import Codai

codai = Codai(api_key="codai_...")
saved = codai.prompts.create({"prompt": "Goal: finish the billing export…", "goal_key": "billing-export"})
codai.prompts.update(saved["id"], {"not_before": "2026-10-03"})  # snooze
codai.prompts.launch(saved["id"])

Statuses: open → launched → sent → answered → verified, plus the closing states done / dismissed / superseded. GET /v1/prompts defaults to open; status=active returns everything still in flight (open, launched, sent, answered), status=due returns open prompts whose not_before is empty or already passed, status=all returns everything.

Sent, answered, verified

You do not have to mark a prompt by hand once you paste it into a chat:

  • Sent. When a session reports a turn_start whose text matches an active prompt (same hash, same first 4 000 characters, or word overlap of at least 85 %), the gateway marks the prompt sent and stores match_ref (the session) and match_turn_id. Clients that see chats the gateway does not (the VS Code extension scans local Copilot Chat sessions) report the same thing with POST /v1/prompts/{id}/match. Matching never blocks or fails the turn.
  • Answered. When that turn ends (turn_end), the prompt moves to answered.
  • Verified. POST /v1/prompts/{id}/verify asks codai-fast whether the chat actually did what the prompt asked. It reads the session transcript, plus an optional diff (for example git diff base_sha..HEAD) and files from the client, and stores a report (verdict done / partial / not_started, summary, changed, remaining). A done verdict moves the prompt to verified; any other verdict leaves the status alone. POST /v1/prompts/verify does the same for every active prompt that has a session (or for the ids you pass). Every client has a Verify all button for this.

Live updates

GET /v1/prompts/stream is a server-sent event stream: one prompt event per create, update or delete of any of your prompts, so the desktop app, phone, hub and VS Code show the same state within a second or two. A backgrounded phone gets a push instead.

GET
/v1/prompts

Authorization

bearerAuth
headerAuthorizationBearer <codai_…>

A codai API key (codai_ prefix). Ephemeral tokens from POST /v1/tokens are accepted only by the media surfaces matching their scope (/v1/realtime, /v1/audio/*, /v1/embeddings).

Query Parameters

status?string

Filter: a prompt status, active (open, launched, sent or answered), due or all.

Default"open"
Value in"open""due""all""launched""done""dismissed""superseded""active""sent""answered""verified"
limit?integer

Maximum rows (1–200).

Range1 <= value <= 200
Default100

Header Parameters

x-request-id?string

Client correlation id; echoed back as x-codai-trace-id and persisted on the usage row.

Lengthlength <= 128

Response Body

Matching prompts.

application/json
  1. response
data*array<>
Example Request
curl -X GET 'https://ai.codai.ro/v1/prompts'
Example Response
{  "data": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "title": "string",      "prompt": "string",      "status": "open",      "source": "vscode",      "repo": "string",      "tracker": "string",      "goal_key": "string",      "not_before": "2019-08-24T14:15:22Z",      "auto_run": true,      "target_device_id": "12785743-1d27-41cd-88a7-0ac66360e3d6",      "origin": {},      "notified_at": "2019-08-24T14:15:22Z",      "launched_at": "2019-08-24T14:15:22Z",      "run_session_id": "4b290cc7-5731-4ce8-8cd7-1bbbd88cfdb2",      "done_at": "2019-08-24T14:15:22Z",      "sent_at": "2019-08-24T14:15:22Z",      "answered_at": "2019-08-24T14:15:22Z",      "verified_at": "2019-08-24T14:15:22Z",      "match_ref": "string",      "match_turn_id": "string",      "match_score": 0,      "base_sha": "string",      "head_sha": "string",      "report": {        "verdict": "done",        "summary": "string",        "changed": [          "string"        ],        "remaining": [          "string"        ],        "evidence": "transcript+diff",        "model": "string",        "at": "2019-08-24T14:15:22Z"      },      "report_at": "2019-08-24T14:15:22Z",      "created_at": "2019-08-24T14:15:22Z",      "updated_at": "2019-08-24T14:15:22Z"    }  ]}
POST
/v1/prompts

Authorization

bearerAuth
headerAuthorizationBearer <codai_…>

A codai API key (codai_ prefix). Ephemeral tokens from POST /v1/tokens are accepted only by the media surfaces matching their scope (/v1/realtime, /v1/audio/*, /v1/embeddings).

Header Parameters

x-request-id?string

Client correlation id; echoed back as x-codai-trace-id and persisted on the usage row.

Lengthlength <= 128

Request Body

application/json
  1. body
prompt*string
Length1 <= length <= 32000
title?string
Length1 <= length <= 200
source?PromptSource
Value in"vscode""cli""desktop""phone""agent""hub""manual""transcript"
repo?string
Lengthlength <= 300
tracker?string
Lengthlength <= 300
goal_key?string

Stable key of the goal; a new prompt supersedes older open ones with the same key.

Length1 <= length <= 200
not_before?|

ISO datetime with offset, or YYYY-MM-DD (07:00 UTC). null = due immediately.

auto_run?boolean

Launch automatically when due.

Defaultfalse
target_device_id?|
Formatuuid
origin?

Free-form capture metadata (session, transcript, host).

Response Body

The same text already existed; nothing was created.

application/json
  1. response

A pending prompt. Timestamps are ISO strings or null.

id*string
Formatuuid
title*string

Defaults to the first line of the prompt (max 120 chars).

prompt*string
status*PromptStatus
Value in"open""launched""sent""answered""verified""done""dismissed""superseded"
source*PromptSource
Value in"vscode""cli""desktop""phone""agent""hub""manual""transcript"
repo*string|null
tracker*string|null
goal_key*string|null
not_before*|

The prompt is due from this moment on.

Formatdate-time
auto_run*boolean
target_device_id*|
Formatuuid
origin*
notified_at*|

When the due reminder was sent.

Formatdate-time
launched_at*|
Formatdate-time
run_session_id*|
Formatuuid
done_at*|
Formatdate-time
sent_at*|

When the prompt was seen sent in a chat.

Formatdate-time
answered_at*|

When the chat turn that carried it ended.

Formatdate-time
verified_at*|

When a report first judged it done.

Formatdate-time
match_ref*|

Session id or key the prompt was sent in.

match_turn_id*|

Turn id of that chat turn.

match_score*|

Match confidence, 0–1.

base_sha*|

Repository HEAD when sent.

head_sha*|

Repository HEAD at the last verification.

report*|

Last verification report, or null.

report_at*|

When report was produced.

Formatdate-time
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
created*boolean

false when the same text already existed.

superseded*integer

Older open prompts with the same goal_key now superseded.

Range0 <= value
Example Request
curl -X POST 'https://ai.codai.ro/v1/prompts' \  -H 'Content-Type: application/json' \  -d '{  "prompt": "string"}'
Example Response
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "title": "string",  "prompt": "string",  "status": "open",  "source": "vscode",  "repo": "string",  "tracker": "string",  "goal_key": "string",  "not_before": "2019-08-24T14:15:22Z",  "auto_run": true,  "target_device_id": "12785743-1d27-41cd-88a7-0ac66360e3d6",  "origin": {},  "notified_at": "2019-08-24T14:15:22Z",  "launched_at": "2019-08-24T14:15:22Z",  "run_session_id": "4b290cc7-5731-4ce8-8cd7-1bbbd88cfdb2",  "done_at": "2019-08-24T14:15:22Z",  "sent_at": "2019-08-24T14:15:22Z",  "answered_at": "2019-08-24T14:15:22Z",  "verified_at": "2019-08-24T14:15:22Z",  "match_ref": "string",  "match_turn_id": "string",  "match_score": 0,  "base_sha": "string",  "head_sha": "string",  "report": {    "verdict": "done",    "summary": "string",    "changed": [      "string"    ],    "remaining": [      "string"    ],    "evidence": "transcript+diff",    "model": "string",    "at": "2019-08-24T14:15:22Z"  },  "report_at": "2019-08-24T14:15:22Z",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z",  "created": true,  "superseded": 0}
GET
/v1/prompts/{id}

Authorization

bearerAuth
headerAuthorizationBearer <codai_…>

A codai API key (codai_ prefix). Ephemeral tokens from POST /v1/tokens are accepted only by the media surfaces matching their scope (/v1/realtime, /v1/audio/*, /v1/embeddings).

Path Parameters

id*string

Pending prompt id (uuid). A foreign or malformed id is 404.

Formatuuid

Header Parameters

x-request-id?string

Client correlation id; echoed back as x-codai-trace-id and persisted on the usage row.

Lengthlength <= 128

Response Body

The prompt.

application/json
  1. response

A pending prompt. Timestamps are ISO strings or null.

id*string
Formatuuid
title*string

Defaults to the first line of the prompt (max 120 chars).

prompt*string
status*PromptStatus
Value in"open""launched""sent""answered""verified""done""dismissed""superseded"
source*PromptSource
Value in"vscode""cli""desktop""phone""agent""hub""manual""transcript"
repo*string|null
tracker*string|null
goal_key*string|null
not_before*|

The prompt is due from this moment on.

Formatdate-time
auto_run*boolean
target_device_id*|
Formatuuid
origin*
notified_at*|

When the due reminder was sent.

Formatdate-time
launched_at*|
Formatdate-time
run_session_id*|
Formatuuid
done_at*|
Formatdate-time
sent_at*|

When the prompt was seen sent in a chat.

Formatdate-time
answered_at*|

When the chat turn that carried it ended.

Formatdate-time
verified_at*|

When a report first judged it done.

Formatdate-time
match_ref*|

Session id or key the prompt was sent in.

match_turn_id*|

Turn id of that chat turn.

match_score*|

Match confidence, 0–1.

base_sha*|

Repository HEAD when sent.

head_sha*|

Repository HEAD at the last verification.

report*|

Last verification report, or null.

report_at*|

When report was produced.

Formatdate-time
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
Example Request
curl -X GET 'https://ai.codai.ro/v1/prompts/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Example Response
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "title": "string",  "prompt": "string",  "status": "open",  "source": "vscode",  "repo": "string",  "tracker": "string",  "goal_key": "string",  "not_before": "2019-08-24T14:15:22Z",  "auto_run": true,  "target_device_id": "12785743-1d27-41cd-88a7-0ac66360e3d6",  "origin": {},  "notified_at": "2019-08-24T14:15:22Z",  "launched_at": "2019-08-24T14:15:22Z",  "run_session_id": "4b290cc7-5731-4ce8-8cd7-1bbbd88cfdb2",  "done_at": "2019-08-24T14:15:22Z",  "sent_at": "2019-08-24T14:15:22Z",  "answered_at": "2019-08-24T14:15:22Z",  "verified_at": "2019-08-24T14:15:22Z",  "match_ref": "string",  "match_turn_id": "string",  "match_score": 0,  "base_sha": "string",  "head_sha": "string",  "report": {    "verdict": "done",    "summary": "string",    "changed": [      "string"    ],    "remaining": [      "string"    ],    "evidence": "transcript+diff",    "model": "string",    "at": "2019-08-24T14:15:22Z"  },  "report_at": "2019-08-24T14:15:22Z",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}
PATCH
/v1/prompts/{id}

Authorization

bearerAuth
headerAuthorizationBearer <codai_…>

A codai API key (codai_ prefix). Ephemeral tokens from POST /v1/tokens are accepted only by the media surfaces matching their scope (/v1/realtime, /v1/audio/*, /v1/embeddings).

Path Parameters

id*string

Pending prompt id (uuid). A foreign or malformed id is 404.

Formatuuid

Header Parameters

x-request-id?string

Client correlation id; echoed back as x-codai-trace-id and persisted on the usage row.

Lengthlength <= 128

Request Body

application/json
  1. body
Properties1 <= properties
title?string
Length1 <= length <= 200
prompt?string
Length1 <= length <= 32000
status?PromptStatus
Value in"open""launched""sent""answered""verified""done""dismissed""superseded"
not_before?|

ISO datetime with offset, or YYYY-MM-DD (07:00 UTC). null = due immediately.

auto_run?boolean
target_device_id?|
Formatuuid
tracker?|
Lengthlength <= 300

Response Body

The updated prompt.

application/json
  1. response

A pending prompt. Timestamps are ISO strings or null.

id*string
Formatuuid
title*string

Defaults to the first line of the prompt (max 120 chars).

prompt*string
status*PromptStatus
Value in"open""launched""sent""answered""verified""done""dismissed""superseded"
source*PromptSource
Value in"vscode""cli""desktop""phone""agent""hub""manual""transcript"
repo*string|null
tracker*string|null
goal_key*string|null
not_before*|

The prompt is due from this moment on.

Formatdate-time
auto_run*boolean
target_device_id*|
Formatuuid
origin*
notified_at*|

When the due reminder was sent.

Formatdate-time
launched_at*|
Formatdate-time
run_session_id*|
Formatuuid
done_at*|
Formatdate-time
sent_at*|

When the prompt was seen sent in a chat.

Formatdate-time
answered_at*|

When the chat turn that carried it ended.

Formatdate-time
verified_at*|

When a report first judged it done.

Formatdate-time
match_ref*|

Session id or key the prompt was sent in.

match_turn_id*|

Turn id of that chat turn.

match_score*|

Match confidence, 0–1.

base_sha*|

Repository HEAD when sent.

head_sha*|

Repository HEAD at the last verification.

report*|

Last verification report, or null.

report_at*|

When report was produced.

Formatdate-time
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
Example Request
curl -X PATCH 'https://ai.codai.ro/v1/prompts/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "title": "string",  "prompt": "string",  "status": "open",  "source": "vscode",  "repo": "string",  "tracker": "string",  "goal_key": "string",  "not_before": "2019-08-24T14:15:22Z",  "auto_run": true,  "target_device_id": "12785743-1d27-41cd-88a7-0ac66360e3d6",  "origin": {},  "notified_at": "2019-08-24T14:15:22Z",  "launched_at": "2019-08-24T14:15:22Z",  "run_session_id": "4b290cc7-5731-4ce8-8cd7-1bbbd88cfdb2",  "done_at": "2019-08-24T14:15:22Z",  "sent_at": "2019-08-24T14:15:22Z",  "answered_at": "2019-08-24T14:15:22Z",  "verified_at": "2019-08-24T14:15:22Z",  "match_ref": "string",  "match_turn_id": "string",  "match_score": 0,  "base_sha": "string",  "head_sha": "string",  "report": {    "verdict": "done",    "summary": "string",    "changed": [      "string"    ],    "remaining": [      "string"    ],    "evidence": "transcript+diff",    "model": "string",    "at": "2019-08-24T14:15:22Z"  },  "report_at": "2019-08-24T14:15:22Z",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}
DELETE
/v1/prompts/{id}

Authorization

bearerAuth
headerAuthorizationBearer <codai_…>

A codai API key (codai_ prefix). Ephemeral tokens from POST /v1/tokens are accepted only by the media surfaces matching their scope (/v1/realtime, /v1/audio/*, /v1/embeddings).

Path Parameters

id*string

Pending prompt id (uuid). A foreign or malformed id is 404.

Formatuuid

Header Parameters

x-request-id?string

Client correlation id; echoed back as x-codai-trace-id and persisted on the usage row.

Lengthlength <= 128

Response Body

How many prompts were deleted (0 or 1).

application/json
  1. response
deleted*integer
Range0 <= value
Example Request
curl -X DELETE 'https://ai.codai.ro/v1/prompts/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Example Response
{  "deleted": 0}
POST
/v1/prompts/{id}/launch

Authorization

bearerAuth
headerAuthorizationBearer <codai_…>

A codai API key (codai_ prefix). Ephemeral tokens from POST /v1/tokens are accepted only by the media surfaces matching their scope (/v1/realtime, /v1/audio/*, /v1/embeddings).

Path Parameters

id*string

Pending prompt id (uuid). A foreign or malformed id is 404.

Formatuuid

Header Parameters

x-request-id?string

Client correlation id; echoed back as x-codai-trace-id and persisted on the usage row.

Lengthlength <= 128

Request Body

application/json
  1. body
device_id?string

One of your devices; overrides the prompt target.

Formatuuid

Response Body

The session that was started.

application/json
  1. response
session_id*string
Formatuuid
device_id*string
Formatuuid
pushed*boolean

Whether a push dispatch reached the device.

Example Request
curl -X POST 'https://ai.codai.ro/v1/prompts/497f6eca-6276-4993-bfeb-53cbbbba6f08/launch' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82",  "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940",  "pushed": true}
POST
/v1/prompts/{id}/match

Authorization

bearerAuth
headerAuthorizationBearer <codai_…>

A codai API key (codai_ prefix). Ephemeral tokens from POST /v1/tokens are accepted only by the media surfaces matching their scope (/v1/realtime, /v1/audio/*, /v1/embeddings).

Path Parameters

id*string

Pending prompt id (uuid). A foreign or malformed id is 404.

Formatuuid

Header Parameters

x-request-id?string

Client correlation id; echoed back as x-codai-trace-id and persisted on the usage row.

Lengthlength <= 128

Request Body

application/json
  1. body
ref*string

Where it was sent: a session id or session key the client uses.

Length1 <= length <= 300
turn_id?string

Turn id of the chat turn that carried the prompt.

Lengthlength <= 300
score?number

Match confidence, 0–1.

Range0 <= value <= 1
sent_at?string

When it was sent (defaults to now).

Formatdate-time
answered?boolean

The turn already ended: move straight to answered.

base_sha?string

Repository HEAD when the prompt was sent.

Lengthlength <= 100

Response Body

The updated prompt.

application/json
  1. response
prompt*

A pending prompt. Timestamps are ISO strings or null.

Example Request
curl -X POST 'https://ai.codai.ro/v1/prompts/497f6eca-6276-4993-bfeb-53cbbbba6f08/match' \  -H 'Content-Type: application/json' \  -d '{  "ref": "string"}'
Example Response
{  "prompt": {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "title": "string",    "prompt": "string",    "status": "open",    "source": "vscode",    "repo": "string",    "tracker": "string",    "goal_key": "string",    "not_before": "2019-08-24T14:15:22Z",    "auto_run": true,    "target_device_id": "12785743-1d27-41cd-88a7-0ac66360e3d6",    "origin": {},    "notified_at": "2019-08-24T14:15:22Z",    "launched_at": "2019-08-24T14:15:22Z",    "run_session_id": "4b290cc7-5731-4ce8-8cd7-1bbbd88cfdb2",    "done_at": "2019-08-24T14:15:22Z",    "sent_at": "2019-08-24T14:15:22Z",    "answered_at": "2019-08-24T14:15:22Z",    "verified_at": "2019-08-24T14:15:22Z",    "match_ref": "string",    "match_turn_id": "string",    "match_score": 0,    "base_sha": "string",    "head_sha": "string",    "report": {      "verdict": "done",      "summary": "string",      "changed": [        "string"      ],      "remaining": [        "string"      ],      "evidence": "transcript+diff",      "model": "string",      "at": "2019-08-24T14:15:22Z"    },    "report_at": "2019-08-24T14:15:22Z",    "created_at": "2019-08-24T14:15:22Z",    "updated_at": "2019-08-24T14:15:22Z"  }}
POST
/v1/prompts/{id}/verify

Authorization

bearerAuth
headerAuthorizationBearer <codai_…>

A codai API key (codai_ prefix). Ephemeral tokens from POST /v1/tokens are accepted only by the media surfaces matching their scope (/v1/realtime, /v1/audio/*, /v1/embeddings).

Path Parameters

id*string

Pending prompt id (uuid). A foreign or malformed id is 404.

Formatuuid

Header Parameters

x-request-id?string

Client correlation id; echoed back as x-codai-trace-id and persisted on the usage row.

Lengthlength <= 128

Request Body

application/json
  1. body
transcript?string

Chat transcript (max 40 000 chars).

Lengthlength <= 40000
diff?string

Repository diff since base_sha (max 40 000 chars).

Lengthlength <= 40000
head_sha?string

Repository HEAD the diff was taken at.

Lengthlength <= 100
files?array<string>

Changed file paths.

Itemsitems <= 500

Response Body

The updated prompt and the stored report.

application/json
  1. response
prompt*

A pending prompt. Timestamps are ISO strings or null.

report*

LLM verification report of a prompt.

Example Request
curl -X POST 'https://ai.codai.ro/v1/prompts/497f6eca-6276-4993-bfeb-53cbbbba6f08/verify' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "prompt": {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "title": "string",    "prompt": "string",    "status": "open",    "source": "vscode",    "repo": "string",    "tracker": "string",    "goal_key": "string",    "not_before": "2019-08-24T14:15:22Z",    "auto_run": true,    "target_device_id": "12785743-1d27-41cd-88a7-0ac66360e3d6",    "origin": {},    "notified_at": "2019-08-24T14:15:22Z",    "launched_at": "2019-08-24T14:15:22Z",    "run_session_id": "4b290cc7-5731-4ce8-8cd7-1bbbd88cfdb2",    "done_at": "2019-08-24T14:15:22Z",    "sent_at": "2019-08-24T14:15:22Z",    "answered_at": "2019-08-24T14:15:22Z",    "verified_at": "2019-08-24T14:15:22Z",    "match_ref": "string",    "match_turn_id": "string",    "match_score": 0,    "base_sha": "string",    "head_sha": "string",    "report": {      "verdict": "done",      "summary": "string",      "changed": [        "string"      ],      "remaining": [        "string"      ],      "evidence": "transcript+diff",      "model": "string",      "at": "2019-08-24T14:15:22Z"    },    "report_at": "2019-08-24T14:15:22Z",    "created_at": "2019-08-24T14:15:22Z",    "updated_at": "2019-08-24T14:15:22Z"  },  "report": {    "verdict": "done",    "summary": "string",    "changed": [      "string"    ],    "remaining": [      "string"    ],    "evidence": "transcript+diff",    "model": "string",    "at": "2019-08-24T14:15:22Z"  }}
POST
/v1/prompts/verify

Authorization

bearerAuth
headerAuthorizationBearer <codai_…>

A codai API key (codai_ prefix). Ephemeral tokens from POST /v1/tokens are accepted only by the media surfaces matching their scope (/v1/realtime, /v1/audio/*, /v1/embeddings).

Header Parameters

x-request-id?string

Client correlation id; echoed back as x-codai-trace-id and persisted on the usage row.

Lengthlength <= 128

Request Body

application/json
  1. body
ids?array<>

Your prompt ids to verify (max 20 are processed).

Items1 <= items <= 200
all_active?boolean

Verify your active prompts that have a session to read.

Response Body

One result per processed prompt.

application/json
  1. response
results*array<>
Example Request
curl -X POST 'https://ai.codai.ro/v1/prompts/verify' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "results": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "ok": true,      "verdict": "done",      "error": "string"    }  ]}
GET
/v1/prompts/stream

Authorization

bearerAuth
headerAuthorizationBearer <codai_…>

A codai API key (codai_ prefix). Ephemeral tokens from POST /v1/tokens are accepted only by the media surfaces matching their scope (/v1/realtime, /v1/audio/*, /v1/embeddings).

Header Parameters

x-request-id?string

Client correlation id; echoed back as x-codai-trace-id and persisted on the usage row.

Lengthlength <= 128

Response Body

SSE stream (text/event-stream, cache-control: no-cache).

response?stringtext/event-stream
Example Request
curl -X GET 'https://ai.codai.ro/v1/prompts/stream'
Example Response
"string"

Last updated:

On this page