Sesiuni
Protocolul de sesiuni partajate v2: jurnal de evenimente, controale, lease de executor, dispatch și stream-ul SSE live.
Fiecare apel poartă x-codai-device (un UUID stabil) — acel header e cel care selectează protocolul v2 și înregistrează dispozitivul. Un singur executor ține lease-ul; viewer-ii și editorii trimit controale; toți citesc același jurnal de evenimente. Protocolul în sine e specificat în secțiunea de sesiuni.
Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri header
UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidNume lizibil al dispozitivului, folosit la prima înregistrare (trunchiat la 120 de caractere).
length <= 120Platforma înregistrată la prima folosire; valorile necunoscute devin agent.
Valoare în
- "android"
- "ios"
- "web"
- "desktop"
- "cli"
- "agent"
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul cererii
application/json
Definiții TypeScript
Folosește tipul request body în TypeScript.
Corpul răspunsului
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/sessions" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{}'{ "id": "3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34", "session_key": "desktop-2026-09-23-main", "owner_user_id": "65139110-7c3c-4777-b692-80c218be3b9d", "title": "string", "created_at": "2019-08-24T14:15:22Z", "last_event_at": "2019-08-24T14:15:22Z", "last_seq": 0, "executor_device_id": "4a403d11-3f52-4f9c-8024-3e4b6ac6da4c", "lease_expires_at": "2019-08-24T14:15:22Z", "e2e": true, "archived": true}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri query
Număr maxim de rânduri per listă (proprii și partajate sunt limitate separat). Implicit 50, maxim 200.
0 <= value <= 20050Include sesiunile arhivate când e 1 sau true.
Valoare în
- "0"
- "1"
- "true"
- "false"
Forțează protocolul v2 fără header-ul de dispozitiv. Doar 2 are sens.
Valoare în
- "2"
Parametri header
UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidNume lizibil al dispozitivului, folosit la prima înregistrare (trunchiat la 120 de caractere).
length <= 120Platforma înregistrată la prima folosire; valorile necunoscute devin agent.
Valoare în
- "android"
- "ios"
- "web"
- "desktop"
- "cli"
- "agent"
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul răspunsului
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/sessions" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "sessions": [ { "id": "3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34", "session_key": "desktop-2026-09-23-main", "owner_user_id": "65139110-7c3c-4777-b692-80c218be3b9d", "title": "string", "created_at": "2019-08-24T14:15:22Z", "last_event_at": "2019-08-24T14:15:22Z", "last_seq": 0, "executor_device_id": "4a403d11-3f52-4f9c-8024-3e4b6ac6da4c", "lease_expires_at": "2019-08-24T14:15:22Z", "e2e": true, "archived": true, "role": "viewer", "presence_count": 0 } ]}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri de cale
UUID-ul de server al sesiunii SAU session_key-ul ei de client. La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 256Parametri query
Forțează protocolul v2 fără header-ul de dispozitiv. Doar 2 are sens.
Valoare în
- "2"
Parametri header
UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidNume lizibil al dispozitivului, folosit la prima înregistrare (trunchiat la 120 de caractere).
length <= 120Platforma înregistrată la prima folosire; valorile necunoscute devin agent.
Valoare în
- "android"
- "ios"
- "web"
- "desktop"
- "cli"
- "agent"
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul răspunsului
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/sessions/3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "id": "3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34", "session_key": "desktop-2026-09-23-main", "owner_user_id": "65139110-7c3c-4777-b692-80c218be3b9d", "title": "string", "created_at": "2019-08-24T14:15:22Z", "last_event_at": "2019-08-24T14:15:22Z", "last_seq": 0, "executor_device_id": "4a403d11-3f52-4f9c-8024-3e4b6ac6da4c", "lease_expires_at": "2019-08-24T14:15:22Z", "e2e": true, "archived": true, "role": "viewer", "members": [ { "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5", "role": "viewer", "remote": true, "devices": [ { "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940", "name": "string", "platform": "android", "last_seen_at": "2019-08-24T14:15:22Z", "remote": true } ] } ], "lease": { "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940", "expires_at": "2019-08-24T14:15:22Z" }, "presence": [ { "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940", "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5", "role": "viewer", "executor": true, "last_seen": 1758614400000, "driving": true, "remote": true } ]}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri de cale
UUID-ul de server al sesiunii SAU session_key-ul ei de client. La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 256Parametri header
UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul cererii
application/json
Definiții TypeScript
Folosește tipul request body în TypeScript.
Cel puțin unul dintre title / archived e obligatoriu.
Corpul răspunsului
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/v1/sessions/3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{}'{ "id": "3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34", "session_key": "desktop-2026-09-23-main", "owner_user_id": "65139110-7c3c-4777-b692-80c218be3b9d", "title": "string", "created_at": "2019-08-24T14:15:22Z", "last_event_at": "2019-08-24T14:15:22Z", "last_seq": 0, "executor_device_id": "4a403d11-3f52-4f9c-8024-3e4b6ac6da4c", "lease_expires_at": "2019-08-24T14:15:22Z", "e2e": true, "archived": true}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri de cale
UUID-ul de server al sesiunii SAU session_key-ul ei de client. La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 256Parametri header
UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul răspunsului
application/json
application/json
application/json
application/json
curl -X DELETE "https://example.com/v1/sessions/3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "deleted": true, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri de cale
UUID-ul de server al sesiunii SAU session_key-ul ei de client. La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 256Parametri query
Întoarce evenimentele cu seq strict mai mare decât această valoare. Implicit 0.
0 <= value0Dimensiunea paginii. Implicit 200, maxim 1000.
0 <= value <= 1000200Parametri header
UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul răspunsului
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/sessions/3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34/events" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "last_seq": 42, "events": [ { "seq": 1, "kind": "user_message", "ts": 1758614400000, "sender_device_id": "bc45c0f5-ada8-4820-b7a5-8dc052568462", "turn_id": "string", "client_event_id": "string", "payload": {} } ]}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri de cale
UUID-ul de server al sesiunii SAU session_key-ul ei de client. La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 256Parametri header
UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidNume lizibil al dispozitivului, folosit la prima înregistrare (trunchiat la 120 de caractere).
length <= 120Platforma înregistrată la prima folosire; valorile necunoscute devin agent.
Valoare în
- "android"
- "ios"
- "web"
- "desktop"
- "cli"
- "agent"
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul cererii
application/json
Definiții TypeScript
Folosește tipul request body în TypeScript.
Corpul răspunsului
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/sessions/3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34/events" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{ "events": [ { "kind": "string" } ] }'{ "last_seq": 0, "accepted": 0, "events": [ { "client_event_id": "string", "seq": 0 } ]}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri de cale
UUID-ul de server al sesiunii SAU session_key-ul ei de client. La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 256Parametri query
Întoarce controalele aplicate (1/true) în loc de cele în așteptare. Implicit cele în așteptare.
Valoare în
- "0"
- "1"
- "true"
- "false"
me (dispozitivul apelant) sau un UUID de dispozitiv; se întorc doar controalele trimise către acel dispozitiv.
Parametri header
UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul răspunsului
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/sessions/3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34/controls" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "controls": [ { "id": "string", "kind": "send", "text": "string", "turn_id": "string", "ask_id": "string", "from_device_id": "10624cda-85b4-412c-80da-8ce165bfd5b0", "target_device_id": "12785743-1d27-41cd-88a7-0ac66360e3d6", "seq": 0, "applied": true, "created_at": "2019-08-24T14:15:22Z" } ]}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri de cale
UUID-ul de server al sesiunii SAU session_key-ul ei de client. La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 256Parametri header
UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidNume lizibil al dispozitivului, folosit la prima înregistrare (trunchiat la 120 de caractere).
length <= 120Platforma înregistrată la prima folosire; valorile necunoscute devin agent.
Valoare în
- "android"
- "ios"
- "web"
- "desktop"
- "cli"
- "agent"
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul cererii
application/json
Definiții TypeScript
Folosește tipul request body în TypeScript.
Corpul răspunsului
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/sessions/3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34/control" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{ "id": "ctl-01J8Z7Q2K9", "kind": "send" }'{ "accepted": true, "seq": 0, "duplicate": true}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri de cale
UUID-ul de server al sesiunii SAU session_key-ul ei de client. La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 256id-ul controlului, ales de client.
length <= 128Parametri header
UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul răspunsului
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/sessions/3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34/control/string/applied" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "id": "string", "applied": true}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri de cale
UUID-ul de server al sesiunii SAU session_key-ul ei de client. La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 256Parametri header
UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidNume lizibil al dispozitivului, folosit la prima înregistrare (trunchiat la 120 de caractere).
length <= 120Platforma înregistrată la prima folosire; valorile necunoscute devin agent.
Valoare în
- "android"
- "ios"
- "web"
- "desktop"
- "cli"
- "agent"
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul cererii
application/json
Definiții TypeScript
Folosește tipul request body în TypeScript.
Corpul răspunsului
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/sessions/3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34/dispatch" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{ "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940", "text": "string" }'{ "control_id": "dispatch:8c2e5f1a-7b3d-4c9e-a0f1-2d3e4f5a6b7c", "seq": 0, "target_device_id": "12785743-1d27-41cd-88a7-0ac66360e3d6", "queued": true, "pushed": true, "duplicate": true, "push_reason": "no_push_token"}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri de cale
UUID-ul de server al sesiunii SAU session_key-ul ei de client. La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 256Parametri header
UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidNume lizibil al dispozitivului, folosit la prima înregistrare (trunchiat la 120 de caractere).
length <= 120Platforma înregistrată la prima folosire; valorile necunoscute devin agent.
Valoare în
- "android"
- "ios"
- "web"
- "desktop"
- "cli"
- "agent"
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul cererii
application/json
Definiții TypeScript
Folosește tipul request body în TypeScript.
Corpul răspunsului
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/sessions/3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34/lease" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{}'{ "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82", "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940", "expires_at": "2019-08-24T14:15:22Z"}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri de cale
UUID-ul de server al sesiunii SAU session_key-ul ei de client. La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 256Parametri header
UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul răspunsului
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/v1/sessions/3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34/lease" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82", "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940", "expires_at": "2019-08-24T14:15:22Z"}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri de cale
UUID-ul de server al sesiunii SAU session_key-ul ei de client. La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 256Parametri header
UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul răspunsului
application/json
application/json
application/json
application/json
application/json
curl -X DELETE "https://example.com/v1/sessions/3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34/lease" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82", "released": true}Autorizare
bearerAuth O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.
În: header
Parametri de cale
UUID-ul de server al sesiunii SAU session_key-ul ei de client. La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 256Parametri query
Redă evenimentele cu seq strict mai mare decât această valoare înainte de a trece live. Implicit 0 (redare completă, limitată la 1000).
0 <= value0Parametri header
UUID stabil al dispozitivului. Înregistrează dispozitivul la prima folosire (nume/platformă din x-codai-device-name / x-codai-device-platform) și selectează protocolul de sesiuni partajate.
uuidNume lizibil al dispozitivului, folosit la prima înregistrare (trunchiat la 120 de caractere).
length <= 120Platforma înregistrată la prima folosire; valorile necunoscute devin agent.
Valoare în
- "android"
- "ios"
- "web"
- "desktop"
- "cli"
- "agent"
Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Corpul răspunsului
text/event-stream
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/sessions/3f7a4c1e-9b2d-4e8f-a1b6-5c0d7e2f9a34/stream" \ -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08""string"