codai docs
Referință APIGateway

Organizații & Partajare

Partajezi o sesiune cu un utilizator, o organizație sau un link și administrezi organizațiile din care faci parte.

Share-urile acordă viewer, editor sau owner pe o sesiune; share-urile prin link returnează un token pe care destinatarul îl prezintă ca x-codai-share-token sau ?share=. Obiectele de organizație vin camelCase (ownerUserId, createdAt), iar listele de membri snake_case — reflectate aici exact cum le trimite gateway-ul. Context: partajare & organizații.

Agenții îți citesc organizațiile prin uneltele serverului MCP orgs_list și org_members_list (id; doar pentru membri). Ambele sunt doar citire: crearea organizațiilor și adăugarea sau eliminarea membrilor rămân în hub.

GET
/v1/sessions/shared-with-me

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

archived?string

Setează 1 sau true pentru a include și sesiunile arhivate.

Valoare din"1""true"

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

Sesiunile partajate, cu rolul tău efectiv.

application/json
  1. response
sessions*array<>
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/sessions/shared-with-me'
Exemplu de răspuns
{  "sessions": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "session_key": "string",      "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",      "share_id": "853fa54b-9753-4ffb-b7d0-6739f9ae0f8e"    }  ]}
GET
/v1/sessions/{id}/shares

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 sesiunii sau session_key-ul tău (valoarea folosită ca x-codai-session-id). La coliziuni de session_key, sesiunile proprii au prioritate.

Lungimelength <= 128

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

Partajările sesiunii.

application/json
  1. response
shares*array<>
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/sessions/6f1c2a4e-9d3b-4c7a-8e21-0b5f3d9a7c11/shares'
Exemplu de răspuns
{  "shares": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82",      "principal_type": "user",      "principal_id": "string",      "role": "viewer",      "has_token": true,      "expires_at": "2019-08-24T14:15:22Z",      "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473",      "created_at": "2019-08-24T14:15:22Z"    }  ]}
POST
/v1/sessions/{id}/shares

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 sesiunii sau session_key-ul tău (valoarea folosită ca x-codai-session-id). La coliziuni de session_key, sesiunile proprii au prioritate.

Lungimelength <= 128

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
principal_type*OrgSharePrincipalType

Cui îi este adresată partajarea.

Valoare din"user""org""link"
principal_id?string

Obligatoriu (UUID de utilizator sau de organizație) pentru user și org; interzis pentru link.

Lungime1 <= length <= 128
role?string

Rolul acordat. Implicit viewer.

Implicit"viewer"
Valoare din"viewer""editor""owner"
expires_at?string

ISO 8601 cu offset; trebuie să fie în viitor. Omite pentru fără expirare.

Formatdate-time

Corpul răspunsului

Partajarea creată; token apare doar la partajările prin link.

application/json
  1. response
id*string
Formatuuid
session_id*string
Formatuuid
principal_type*OrgSharePrincipalType

Cui îi este adresată partajarea.

Valoare din"user""org""link"
principal_id*|

UUID de utilizator sau de organizație; null la partajările prin link.

role*OrgSessionRole

Rol acordat pe o sesiune.

Valoare din"viewer""editor""owner"
has_token*boolean

Doar la partajările prin link — există un token. Textul în clar nu mai este returnat după creare.

expires_at*|
Formatdate-time
created_by_user_id*string
Formatuuid
created_at*string
Formatdate-time
token?string

Token-ul de link în clar (base64url, 43 caractere). Returnat o singură dată; doar la partajările prin link.

Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/sessions/6f1c2a4e-9d3b-4c7a-8e21-0b5f3d9a7c11/shares' \  -H 'Content-Type: application/json' \  -d '{  "principal_type": "user"}'
Exemplu de răspuns
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82",  "principal_type": "user",  "principal_id": "string",  "role": "viewer",  "has_token": true,  "expires_at": "2019-08-24T14:15:22Z",  "created_by_user_id": "209f54c4-4c33-43bc-9c6a-ef4c65ad7473",  "created_at": "2019-08-24T14:15:22Z",  "token": "Qm9keSBvZiB0aGUgdG9rZW4gaXMgcmFuZG9tIGJ5dGVz"}
DELETE
/v1/sessions/{id}/shares/{shareId}

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 sesiunii sau session_key-ul tău (valoarea folosită ca x-codai-session-id). La coliziuni de session_key, sesiunile proprii au prioritate.

Lungimelength <= 128
shareId*string

UUID-ul partajării.

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/sessions/6f1c2a4e-9d3b-4c7a-8e21-0b5f3d9a7c11/shares/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Exemplu de răspuns
{  "deleted": true,  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"}
POST
/v1/orgs

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 cererii

application/json
  1. body
name*string

Numele afișat; spațiile de la capete sunt eliminate.

Lungime1 <= length <= 200

Corpul răspunsului

Organizația nouă.

application/json
  1. response

Rândul organizației așa cum e stocat (camelCase) plus rolul apelantului.

id*string
Formatuuid
name*string
ownerUserId*string
Formatuuid
createdAt*string
Formatdate-time
role*OrgRole

Rol în cadrul unei organizații.

Valoare din"owner""admin""member"
Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/orgs' \  -H 'Content-Type: application/json' \  -d '{  "name": "Acme Robotics"}'
Exemplu de răspuns
{  "id": "7e2f9b4c-1a3d-4e5f-9b8c-2d4e6f8a0b1c",  "name": "Acme Robotics",  "ownerUserId": "283eeac5-beea-465a-80a5-763009480d0f",  "createdAt": "2026-09-23T08:41:12.000Z",  "role": "owner"}
GET
/v1/orgs

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

Organizațiile tale.

application/json
  1. response
orgs*array<>
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/orgs'
Exemplu de răspuns
{  "orgs": [    {      "id": "7e2f9b4c-1a3d-4e5f-9b8c-2d4e6f8a0b1c",      "name": "Acme Robotics",      "ownerUserId": "283eeac5-beea-465a-80a5-763009480d0f",      "createdAt": "2026-09-23T08:41:12.000Z",      "role": "owner"    }  ]}
GET
/v1/orgs/{id}/members

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 organizației.

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

Membrii organizației.

application/json
  1. response
org_id*string
Formatuuid
members*array<>
Exemplu de cerere
curl -X GET 'https://ai.codai.ro/v1/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/members'
Exemplu de răspuns
{  "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",  "members": [    {      "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",      "role": "owner",      "created_at": "2019-08-24T14:15:22Z",      "email": "user@example.com"    }  ]}
POST
/v1/orgs/{id}/members

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 organizației.

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

Exact unul dintre user_id sau email este obligatoriu.

user_id?string
Formatuuid
email?string
Formatemail
role?string

Implicit member. owner poate fi acordat doar de owner-ul organizației.

Implicit"member"
Valoare din"owner""admin""member"

Corpul răspunsului

Apartenența, așa cum a fost stocată.

application/json
  1. response
org_id*string
Formatuuid
user_id*string
Formatuuid
role*OrgRole

Rol în cadrul unei organizații.

Valoare din"owner""admin""member"
Exemplu de cerere
curl -X POST 'https://ai.codai.ro/v1/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/members' \  -H 'Content-Type: application/json' \  -d '{}'
Exemplu de răspuns
{  "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",  "role": "owner"}
DELETE
/v1/orgs/{id}/members/{userId}

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 organizației.

Formatuuid
userId*string

UUID-ul membrului de eliminat.

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

Eliminat.

application/json
  1. response
deleted*true
Valoare dintrue
org_id*string
Formatuuid
user_id*string
Formatuuid
Exemplu de cerere
curl -X DELETE 'https://ai.codai.ro/v1/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/members/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Exemplu de răspuns
{  "deleted": true,  "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"}

Ultima actualizare: