codai docs
Referință APIGateway

Host-uri

Relay-ul care lasă un telefon să ruleze o operație pe desktop-ul tău: stream de prezență, exec și rezultat.

Un host e un dispozitiv care ține deschis GET /v1/hosts/stream. Alt dispozitiv trimite un exec; gateway-ul îl retransmite peste acel stream și blochează până când host-ul trimite rezultatul sau expiră timeout-ul. Prezența expiră la 45 s după ultimul heartbeat. Relay-ul e best-effort și nu face parte din specificația publică a protocolului de sesiuni. Pas cu pas: ghidul de host-uri.

GET
/v1/hosts

Autorizare

bearerAuth
AutorizareBearer <token>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.

În: header

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

application/json

application/json

application/json

curl -X GET "https://example.com/v1/hosts"
{  "hosts": [    {      "device_id": "2b6d8c1e-4f3a-4e9b-9c0d-7a1e5f6b8c2d",      "name": "codai desktop",      "platform": "desktop",      "os": "windows",      "hostname": "dragos-desktop",      "roots": [        "E:\\gh",        "C:\\Users\\me\\Projects"      ],      "since": 1758616800000,      "last_seen": 1758616845000    }  ]}
GET
/v1/hosts/stream

Autorizare

bearerAuth
AutorizareBearer <token>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.

În: header

Parametri query

os?string

Eticheta sistemului de operare al host-ului; trunchiată la 40 de caractere.

Lungimelength <= 40
hostname?string

Numele mașinii host; trunchiat la 120 de caractere.

Lungimelength <= 120
roots?string

Listă separată prin virgulă cu rădăcinile de fișiere expuse de host; golurile sunt eliminate, max 32 intrări.

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
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

Corpul răspunsului

text/event-stream

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/hosts/stream" \  -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08"
"string"
POST
/v1/hosts/{deviceId}/exec

Autorizare

bearerAuth
AutorizareBearer <token>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.

În: header

Parametri de cale

deviceId*string

UUID-ul dispozitivului host țintă (din GET /v1/hosts).

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
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

Corpul 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

application/json

application/json

curl -X POST "https://example.com/v1/hosts/497f6eca-6276-4993-bfeb-53cbbbba6f08/exec" \  -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{    "op": "shell"  }'
{  "req_id": "b0b81fb9-c6eb-4a11-855e-45e48af9566f",  "ok": true,  "result": null,  "error": "string"}
POST
/v1/hosts/exec/{reqId}/result

Autorizare

bearerAuth
AutorizareBearer <token>

O cheie API codai (prefix codai_). Tokenurile efemere de la POST /v1/tokens sunt acceptate doar de /v1/realtime.

În: header

Parametri de cale

reqId*string

req_id-ul din evenimentul exec (UUID; malformat → 400).

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
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

Corpul 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/hosts/exec/497f6eca-6276-4993-bfeb-53cbbbba6f08/result" \  -H "x-codai-device: 497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{    "ok": true  }'
{  "ok": true}