Cercetare
Cercetare aprofundată asincronă: un raport cu citări, din mai multe căutări și citiri de pagini.
POST /v1/research pornește un job care planifică mai multe căutări, citește cele mai bune pagini și scrie un raport în care fiecare afirmație își citează sursa ca [S1]..[Sn] (sau, cu output_schema, un answer JSON). Cererea așteaptă cel mult wait_s secunde (implicit 0) și răspunde 200 cu jobul terminat sau 202 cât timp este queued / running; interoghezi GET /v1/research/{id} până când status devine done sau failed. Același Idempotency-Key trimis din nou întoarce jobul existent. Admiterea este aceeași ca la tool-uri — regulile tale îl văd ca web_search. Preț: 0,20 $ per job plus tokenii lui de model; joburile din alocarea gratuită lunară sau dintr-o tură de agent codai nu plătesc taxa de job.
SDK-urile se ocupă de interogare: codai.research.run({ question }) (TypeScript) și codai.research.run("…") (Python) pornesc jobul și îl așteaptă. Același motor este tool-ul deep_research din VS Code, desktop, telefon, headless și MCP-ul găzduit. Detalii: ghidul de tool-uri.
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 <= 128Idempotency-Key?stringÎntoarce jobul creat anterior cu aceeași cheie în loc să pornească altul (se folosesc primele 200 de caractere).
length <= 200application/json- body
Corpul lui POST /v1/research.
question*stringÎntrebarea de cercetat, cu eventualele constrângeri (regiune, perioadă, ce se compară).
1 <= length <= 2000time_budget_s?integerTimpul maxim de cercetare, în secunde.
20 <= value <= 30090max_sources?integerNumărul maxim de pagini citite.
3 <= value <= 3012include_domains?array<>Folosește doar pagini de pe aceste host-uri.
items <= 10published_after?stringFolosește doar pagini publicate la sau după această dată (YYYY-MM-DD).
^\d{4}-\d{2}(-\d{2})?$output_schema?JSON Schema opțională; rezultatul devine atunci un obiect JSON conform ei, în answer, în locul unui report în proză.
wait_s?numberCâte secunde se așteaptă terminarea jobului înainte de răspunsul 202.
0 <= value <= 550Jobul s-a terminat în wait_s (status este done sau failed).
application/json- response
Un job de cercetare aprofundată. Câmpurile de rezultat apar doar când status este done, iar error doar când este failed.
id*stringuuidstatus*string"queued""running""done""failed"created_at*stringdate-timefinished_at?stringdate-timereport?stringRaport Markdown care citează sursele ca [S1]..[Sn] (absent când s-a trimis output_schema).
answer?Obiect JSON conform output_schema, când s-a trimis una.
sources?array<>searches?integerNumărul de căutări web rulate de job.
0 <= valuepages_read?integerNumărul de pagini citite de job.
0 <= valueerror?curl -X POST 'https://ai.codai.ro/v1/research' \ -H 'Content-Type: application/json' \ -d '{ "question": "Compare the e-Factura obligations for B2C sales in Romania in 2025 and 2026"}'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "status": "queued", "created_at": "2019-08-24T14:15:22Z", "finished_at": "2019-08-24T14:15:22Z", "report": "string", "answer": {}, "sources": [ { "id": "string", "title": "string", "url": "http://example.com" } ], "searches": 0, "pages_read": 0, "error": { "message": "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 jobului de cercetare întors de POST /v1/research.
uuidx-request-id?stringId de corelare ales de client; e returnat ca x-codai-trace-id și persistat pe rândul de usage.
length <= 128Jobul.
application/json- response
Un job de cercetare aprofundată. Câmpurile de rezultat apar doar când status este done, iar error doar când este failed.
id*stringuuidstatus*string"queued""running""done""failed"created_at*stringdate-timefinished_at?stringdate-timereport?stringRaport Markdown care citează sursele ca [S1]..[Sn] (absent când s-a trimis output_schema).
answer?Obiect JSON conform output_schema, când s-a trimis una.
sources?array<>searches?integerNumărul de căutări web rulate de job.
0 <= valuepages_read?integerNumărul de pagini citite de job.
0 <= valueerror?curl -X GET 'https://ai.codai.ro/v1/research/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "status": "queued", "created_at": "2019-08-24T14:15:22Z", "finished_at": "2019-08-24T14:15:22Z", "report": "string", "answer": {}, "sources": [ { "id": "string", "title": "string", "url": "http://example.com" } ], "searches": 0, "pages_read": 0, "error": { "message": "string" }}