Sarcini
Facturare pe rezultat: listezi sarcinile deschise de cererile tale și confirmi sau respingi rezultatul lor.
O sarcină e deschisă de prima cerere a unei bucăți de lucru și e decontată după rezultat. Confirmarea cere cheia proprie a deținătorului — nu există o cale act-as. Câmpurile de bani sunt întregi în micro-EUR. Cum se leagă sarcinile de cheltuieli: sarcini și cheltuieli.
Agenții citesc sarcinile prin uneltele serverului MCP tasks_list (status, limit), tasks_get (id) și tasks_stats (since). Nu există unealtă de confirmare: decontarea unei sarcini înseamnă facturare și rămâne la om.
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).
outcome?stringDoar task-urile cu acest rezultat.
"pass""fail""error""unconfirmed""confirmed""cancelled""open"limit?integerDimensiunea paginii.
1 <= value <= 20050cursor?stringMarcaj de timp ISO 8601 cu offset — next_cursor din pagina anterioară.
date-timex-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128O pagină de task-uri.
application/json- response
tasks*array<>next_cursor*|Îl trimiți ca cursor pentru pagina următoare; null când nu mai există.
date-timecurl -X GET 'https://ai.codai.ro/v1/tasks'{ "tasks": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "surface": "proxy", "session_key": "string", "client_task_id": "string", "title": "string", "outcome": "pass", "evidence_kind": "exec_verdict", "evidence_ref": "string", "requests": 0, "cost_micro_usd": 0, "charged_micro_eur": 0, "billed_success": true, "billable_at": "2019-08-24T14:15:22Z", "confirm_deadline_at": "2019-08-24T14:15:22Z", "opened_at": "2019-08-24T14:15:22Z", "last_activity_at": "2019-08-24T14:15:22Z", "closed_at": "2019-08-24T14:15:22Z", "note": "string" } ], "next_cursor": "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).
x-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Task-uri în așteptarea confirmării.
application/json- response
tasks*array<>items <= 100curl -X GET 'https://ai.codai.ro/v1/tasks/pending'{ "tasks": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "surface": "proxy", "session_key": "string", "client_task_id": "string", "title": "string", "outcome": "pass", "evidence_kind": "exec_verdict", "evidence_ref": "string", "requests": 0, "cost_micro_usd": 0, "charged_micro_eur": 0, "billed_success": true, "billable_at": "2019-08-24T14:15:22Z", "confirm_deadline_at": "2019-08-24T14:15:22Z", "opened_at": "2019-08-24T14:15:22Z", "last_activity_at": "2019-08-24T14:15:22Z", "closed_at": "2019-08-24T14:15:22Z", "note": "string" } ]}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).
since?stringLimita inferioară pentru opened_at (inclusiv). Implicit acum minus 30 de zile.
date-timex-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Numărătorile pentru fereastră.
application/json- response
Numărători peste task-urile deschise la sau după since.
since*stringLimita inferioară efectivă, normalizată la ISO 8601 UTC.
date-timeopened*integer0 <= valueconfirmed*integer0 <= valuepass*integer0 <= valueunconfirmed*integer0 <= valuebilled*integerTask-uri cu billed_success setat.
0 <= valuecurl -X GET 'https://ai.codai.ro/v1/tasks/stats'{ "since": "2019-08-24T14:15:22Z", "opened": 0, "confirmed": 0, "pass": 0, "unconfirmed": 0, "billed": 0}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 task-ului.
uuidx-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Task-ul.
application/json- response
Vederea pe fir a unui task. Banii sunt micro-unități întregi (USD pentru cost, EUR pentru taxe); datele sunt ISO 8601.
id*stringuuidsurface*TaskSurfaceSuprafața de client care a deschis task-ul.
"proxy""desktop""cli""resolve""sandbox""mobile""hub"session_key*|Cheia de sesiune derivată sau x-codai-task-id-ul de client care grupează cererile task-ului.
client_task_id*|x-codai-task-id-ul tău, neschimbat, când a fost trimis.
title*|Primul mesaj al utilizatorului, ≤ 200 de caractere.
outcome*TaskOutcomeRezultatul task-ului. open cât timp rulează; pass/fail/error dintr-un verdict de execuție;
unconfirmed după închiderea pentru inactivitate; confirmed după confirmarea ta; cancelled când este
retras.
"pass""fail""error""unconfirmed""confirmed""cancelled""open"evidence_kind*TaskEvidenceKindCe a închis task-ul — un verdict automat, o re-execuție, confirmarea ta sau nimic încă.
"exec_verdict""reexec""user_confirmed""none"evidence_ref*|Id-ul cererii de verdict, id-ul job-ului resolve, id-ul evenimentului de usage sau x-request-id-ul apelului de confirmare.
requests*integerNumărul de cereri atribuite task-ului.
0 <= valuecost_micro_usd*integerCostul upstream real, în micro-USD.
0 <= valuecharged_micro_eur*integerCostul de tokeni debitat până acum din portofelul preplătit, în micro-EUR.
0 <= valuebilled_success*booleanTrue odată ce task-ul a fost facturat ca un succes (eveniment de meter task_succeeded).
billable_at*|Când rezultatul și dovada au concordat prima dată pe un succes facturabil.
date-timeconfirm_deadline_at*|Până când POST /v1/tasks/{id}/confirm mai convertește un task unconfirmed.
date-timeopened_at*stringdate-timelast_activity_at*stringdate-timeclosed_at*|date-timenote*|Nota ta din apelul de confirmare, când ai dat una.
curl -X GET 'https://ai.codai.ro/v1/tasks/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "surface": "proxy", "session_key": "string", "client_task_id": "string", "title": "string", "outcome": "pass", "evidence_kind": "exec_verdict", "evidence_ref": "string", "requests": 0, "cost_micro_usd": 0, "charged_micro_eur": 0, "billed_success": true, "billable_at": "2019-08-24T14:15:22Z", "confirm_deadline_at": "2019-08-24T14:15:22Z", "opened_at": "2019-08-24T14:15:22Z", "last_activity_at": "2019-08-24T14:15:22Z", "closed_at": "2019-08-24T14:15:22Z", "note": "string"}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 task-ului.
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
Corpul lui POST /v1/tasks/{id}/confirm.
outcome*stringconfirmed = codai a rezolvat (facturabil); fail = nu a rezolvat (nu se facturează niciodată).
"confirmed""fail"note?stringNotă opțională în text liber (cu spațiile de la capete eliminate), stocată pe task.
length <= 500Task-ul este închis cu rezultatul ales.
application/json- response
Rezultatul confirmării. Cheile sunt camelCase, spre deosebire de obiectul Task.
taskId*stringuuidoutcome*stringRezultatul pe care l-ai trimis.
"confirmed""fail"billed*booleanTrue când această confirmare a emis un eveniment de meter task_succeeded.
refundedMicroEur*integerCostul de tokeni întors în portofelul preplătit la conversia într-o taxă fixă de succes, în micro-EUR.
0 <= valuecurl -X POST 'https://ai.codai.ro/v1/tasks/497f6eca-6276-4993-bfeb-53cbbbba6f08/confirm' \ -H 'Content-Type: application/json' \ -d '{ "outcome": "confirmed"}'{ "taskId": "e6e9d88a-9b63-468a-aec3-b7a11de27af8", "outcome": "confirmed", "billed": true, "refundedMicroEur": 0}Ultima actualizare:
Carduri
Date pentru carduri tipizate: vreme, locuri, geocodare, hărți statice, cursuri de schimb și previzualizări de linkuri, ca blocuri de card gata făcute.
Declanșatoare
Webhook-uri care transformă evenimentele din GitHub, Sentry, monitorizare sau surse proprii în sesiuni de agent, plus inbox-ul de notificări.