codai docs
Referință APIGateway

Dispozitive

Dispozitivele legate de contul tău, tokenurile lor de push și inbox-ul de dispatch agregat.

Nu există un apel explicit de înregistrare: un dispozitiv e creat prima dată când UUID-ul său x-codai-device apare pe o cerere de sesiuni. Aceste endpoint-uri administrează ce există și lasă un dispozitiv să tragă tot ce e pus în coadă pentru el într-un singur apel.

Agenții îți listează dispozitivele prin unealta devices_list a serverului MCP (doar citire; doar has_push_token, niciodată tokenul de push brut).

GET
/v1/devices

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Dispozitivele apelantului, ordonate descrescător după lastSeenAt.

application/json
  1. response
devices*array<>
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/devices'
Exemplu de răspuns
{  "devices": [    {      "id": "2b6d8c1e-4f3a-4e9b-9c0d-7a1e5f6b8c2d",      "name": "Pixel 9 Pro",      "platform": "android",      "capabilities": [        "terminal",        "fs",        "voice"      ],      "has_push_token": true,      "app_version": "desktop/0.7.0",      "lastSeenAt": "2026-09-23T08:41:12.000Z",      "createdAt": "2026-09-01T10:00:00.000Z",      "online": true    }  ]}
PATCH
/v1/devices/{id}

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

UUID-ul dispozitivului (valoarea pe care o trimiți ca x-codai-device).

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul cererii

application/json
  1. body

Cel puțin unul dintre cele două câmpuri este obligatoriu.

push_token?|

Token de înregistrare FCM (ASCII opac, fără spații la capete). null îl șterge.

Lungime8 <= length <= 4096
capabilities?array<>

Înlocuiește întreaga listă de capabilități.

Elementeitems <= 64

Corpul răspunsului

Dispozitivul actualizat.

application/json
  1. response
id*string
Formatuuid
name*string
platform*DevicePlatform

Platforma clientului; orice altceva trimis în x-codai-device-platform este stocat ca agent.

Valoare din"android""ios""web""desktop""cli""agent"
capabilities*array<string>
has_push_token*boolean
lastSeenAt*string
Formatdate-time
Exemplu de cerere
curl -X PATCH 'https://ai.codai.ro/v1/devices/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Content-Type: application/json' \  -d '{}'
Exemplu de răspuns
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "name": "string",  "platform": "android",  "capabilities": [    "string"  ],  "has_push_token": true,  "lastSeenAt": "2019-08-24T14:15:22Z"}
DELETE
/v1/devices/{id}

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri de cale

id*string

UUID-ul dispozitivului.

Formatuuid

Parametri header

x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Șters.

application/json
  1. response
deleted*true
Valoare dintrue
id*string
Formatuuid
Exemplu de cerere
curl -X DELETE 'https://ai.codai.ro/v1/devices/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Exemplu de răspuns
{  "deleted": true,  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"}
GET
/v1/devices/me/dispatch

Autorizare

bearerAuth
headerAutorizareBearer <codai_…>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de suprafețele media potrivite scope-ului lor (/v1/realtime, /v1/audio/*, /v1/embeddings).

Parametri query

limit?integer

Număr maxim total de controale întoarse. Implicit 200, maxim 500.

Interval0 <= value <= 500
Implicit200

Parametri header

x-codai-device*string

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.

Formatuuid
x-codai-device-name?string

Nume lizibil al dispozitivului, folosit la prima înregistrare (trunchiat la 120 de caractere).

Lungimelength <= 120
x-codai-device-platform?string

Platforma înregistrată la prima folosire; valorile necunoscute devin agent.

Valoare din"android""ios""web""desktop""cli""agent"
x-request-id?string

Id de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.

Lungimelength <= 128

Corpul răspunsului

Controale în așteptare grupate pe sesiune (sessions gol când nu există).

application/json
  1. response
device_id*string

Dispozitivul apelant.

Formatuuid
sessions*array<>
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/devices/me/dispatch' \  -H 'x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08'
Exemplu de răspuns
{  "device_id": "3bafab7b-4400-4bcf-8e6e-09f954699940",  "sessions": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "session_key": "string",      "title": "string",      "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",          "mode": "open",          "seq": 0,          "applied": true,          "created_at": "2019-08-24T14:15:22Z"        }      ]    }  ]}

Ultima actualizare: