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.
bearerAuthAutorizareBearer <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).
archived?stringSetează 1 sau true pentru a include și sesiunile arhivate.
"1""true"x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Sesiunile partajate, cu rolul tău efectiv.
application/json- response
sessions*array<>curl -X GET 'https://ai.codai.ro/v1/sessions/shared-with-me'{ "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" } ]}bearerAuthAutorizareBearer <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).
id*stringUUID-ul sesiunii sau session_key-ul tău (valoarea folosită ca x-codai-session-id). La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 128x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Partajările sesiunii.
application/json- response
shares*array<>curl -X GET 'https://ai.codai.ro/v1/sessions/6f1c2a4e-9d3b-4c7a-8e21-0b5f3d9a7c11/shares'{ "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" } ]}bearerAuthAutorizareBearer <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).
id*stringUUID-ul sesiunii sau session_key-ul tău (valoarea folosită ca x-codai-session-id). La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 128x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128application/json- body
principal_type*OrgSharePrincipalTypeCui îi este adresată partajarea.
"user""org""link"principal_id?stringObligatoriu (UUID de utilizator sau de organizație) pentru user și org; interzis pentru link.
1 <= length <= 128role?stringRolul acordat. Implicit viewer.
"viewer""viewer""editor""owner"expires_at?stringISO 8601 cu offset; trebuie să fie în viitor. Omite pentru fără expirare.
date-timePartajarea creată; token apare doar la partajările prin link.
application/json- response
id*stringuuidsession_id*stringuuidprincipal_type*OrgSharePrincipalTypeCui îi este adresată partajarea.
"user""org""link"principal_id*|UUID de utilizator sau de organizație; null la partajările prin link.
role*OrgSessionRoleRol acordat pe o sesiune.
"viewer""editor""owner"has_token*booleanDoar la partajările prin link — există un token. Textul în clar nu mai este returnat după creare.
expires_at*|date-timecreated_by_user_id*stringuuidcreated_at*stringdate-timetoken?stringToken-ul de link în clar (base64url, 43 caractere). Returnat o singură dată; doar la partajările prin link.
curl -X POST 'https://ai.codai.ro/v1/sessions/6f1c2a4e-9d3b-4c7a-8e21-0b5f3d9a7c11/shares' \ -H 'Content-Type: application/json' \ -d '{ "principal_type": "user"}'{ "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"}bearerAuthAutorizareBearer <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).
id*stringUUID-ul sesiunii sau session_key-ul tău (valoarea folosită ca x-codai-session-id). La coliziuni de session_key, sesiunile proprii au prioritate.
length <= 128x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Șters.
application/json- response
deleted*truetrueid*stringuuidcurl -X DELETE 'https://ai.codai.ro/v1/sessions/6f1c2a4e-9d3b-4c7a-8e21-0b5f3d9a7c11/shares/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "deleted": true, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"}bearerAuthAutorizareBearer <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).
x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128application/json- body
name*stringNumele afișat; spațiile de la capete sunt eliminate.
1 <= length <= 200Organizația nouă.
application/json- response
Rândul organizației așa cum e stocat (camelCase) plus rolul apelantului.
id*stringuuidname*stringownerUserId*stringuuidcreatedAt*stringdate-timerole*OrgRoleRol în cadrul unei organizații.
"owner""admin""member"curl -X POST 'https://ai.codai.ro/v1/orgs' \ -H 'Content-Type: application/json' \ -d '{ "name": "Acme Robotics"}'{ "id": "7e2f9b4c-1a3d-4e5f-9b8c-2d4e6f8a0b1c", "name": "Acme Robotics", "ownerUserId": "283eeac5-beea-465a-80a5-763009480d0f", "createdAt": "2026-09-23T08:41:12.000Z", "role": "owner"}bearerAuthAutorizareBearer <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).
x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Organizațiile tale.
application/json- response
orgs*array<>curl -X GET 'https://ai.codai.ro/v1/orgs'{ "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" } ]}bearerAuthAutorizareBearer <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).
id*stringUUID-ul organizației.
uuidx-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Membrii organizației.
application/json- response
org_id*stringuuidmembers*array<>curl -X GET 'https://ai.codai.ro/v1/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/members'{ "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" } ]}bearerAuthAutorizareBearer <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).
id*stringUUID-ul organizației.
uuidx-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128application/json- body
Exact unul dintre user_id sau email este obligatoriu.
user_id?stringuuidemail?stringemailrole?stringImplicit member. owner poate fi acordat doar de owner-ul organizației.
"member""owner""admin""member"Apartenența, așa cum a fost stocată.
application/json- response
org_id*stringuuiduser_id*stringuuidrole*OrgRoleRol în cadrul unei organizații.
"owner""admin""member"curl -X POST 'https://ai.codai.ro/v1/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/members' \ -H 'Content-Type: application/json' \ -d '{}'{ "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b", "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5", "role": "owner"}bearerAuthAutorizareBearer <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).
id*stringUUID-ul organizației.
uuiduserId*stringUUID-ul membrului de eliminat.
uuidx-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Eliminat.
application/json- response
deleted*truetrueorg_id*stringuuiduser_id*stringuuidcurl -X DELETE 'https://ai.codai.ro/v1/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/members/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "deleted": true, "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b", "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"}Ultima actualizare: