Chordian Deep Search APIs
Chordian Deep Search APIs run multi-step AI research workflows over the web with optional live browser sessions, configurable LLM models, and support for uploading reference documents.
Overview
The Deep Search workflow lets you:
- Start – Launch a deep search with a natural-language
promptand optional workflow fields - Upload – Attach reference files to an active search thread before or during the run
- Clarifying answers – Continue the same thread by calling the same start API with
thread_idandlist_id - Stream progress – Connect to the
websocket_urlreturned in the start response for real-time updates and results
Base URL: https://chordian-core.chordian.ai
Authentication: Bearer token. Send your API key in the header: Authorization: Bearer <api-key>.
Supported configuration values
Use the values below when setting llm_model and proxy_country_code in the start request.
llm_model
Chordian Deep Search accepts legacy labels (same as Web and Research) or Browser v3 model IDs (canonical IDs sent upstream).
| Legacy labels | Browser v3 model IDs |
|---|---|
chordian-r1 | gemini-3-flash |
gpt-5.4 mini | claude-sonnet-4.6 |
gemini 3 flash | claude-opus-4.6 |
claude sonnet 4.6 | gpt-5.4-mini |
claude opus 4.6 | |
claude opus 4.7 | |
qwen3.5:cloud |
proxy_country_code
Required when proxy is true. Use a lowercase ISO 3166-1 alpha-2 country code from the list below.
ad, ae, af, ag, ai, al, am, an, ao, aq, ar, as, at, au, aw, az, ba, bb, bd, be, bf, bg, bh, bi, bj, bl, bm, bn, bo, bq, br, bs, bt, bv, bw, by, bz, ca, cc, cd, cf, cg, ch, ck, cl, cm, co, cr, cs, cu, cv, cw, cx, cy, cz, de, dj, dk, dm, do, dz, ec, ee, eg, eh, er, es, et, fi, fj, fk, fm, fo, fr, ga, gd, ge, gf, gg, gh, gi, gl, gm, gn, gp, gq, gr, gs, gt, gu, gw, gy, hk, hm, hn, hr, ht, hu, id, ie, il, im, in, iq, ir, is, it, je, jm, jo, jp, ke, kg, kh, ki, km, kn, kp, kr, kw, ky, kz, la, lb, lc, li, lk, lr, ls, lt, lu, lv, ly, ma, mc, md, me, mf, mg, mh, mk, ml, mm, mn, mo, mp, mq, mr, ms, mt, mu, mv, mw, mx, my, mz, na, nc, ne, nf, ng, ni, nl, no, np, nr, nu, nz, om, pa, pe, pf, pg, ph, pk, pl, pm, pn, pr, ps, pt, pw, py, qa, re, ro, rs, ru, rw, sa, sb, sc, sd, se, sg, sh, si, sj, sk, sl, sm, sn, so, sr, ss, st, sv, sx, sy, sz, tc, td, tf, tg, th, tj, tk, tl, tm, tn, to, tr, tt, tv, tw, tz, ua, ug, uk, us, uy, uz, va, vc, ve, vg, vi, vn, vu, wf, ws, xk, ye, yt, za, zm, zwStart Deep Search
Start a Chordian Deep Search workflow for the given prompt.
POST /chordian-deep-search/startAuthentication: Authorization: Bearer <api-key>
Request Body
{
"prompt": "Research top autonomous vehicle sensor manufacturers in Europe",
"llm_model": "claude-sonnet-4.6",
"live_url": true,
"proxy": false,
"proxy_country_code": "",
"thread_id": "536c****-****-45c5-****-0a8dfa5*****",
"list_id": "6a3b60****2ea3a0609******"
}| Field | Type | Required | Description |
|---|---|---|---|
prompt | string | ✅ | Natural-language research query or answer to a clarifying question. |
llm_model | string | ❌ | LLM model for the workflow. See Supported configuration values. |
live_url | boolean | ❌ | When true, enable a live browser session URL in the response when available. |
proxy | boolean | ❌ | When true, route browser traffic through a proxy. |
proxy_country_code | string | ❌ | Required when proxy is true; otherwise optional. See Supported configuration values. |
thread_id | string | ❌ | Existing thread ID. Include to continue the same workflow thread. |
list_id | string | ❌ | Existing list ID. Include with thread_id when continuing the thread. |
Successful Response (200 OK)
{
"success": true,
"thread_id": "536c****-****-45c5-****-0a8dfa5*****",
"list_id": "6a3b60****2ea3a0609******",
"websocket_url": "wss://agent.chordian.ai/api/chordian-deep-search/ws/536c****-****-45c5-****-0a8dfa5*****?api-key=<your-api-key>",
"live_url": null,
"workspace_id": null,
"status": "processing"
}| Field | Type | Description |
|---|---|---|
success | boolean | true when the workflow was started successfully. |
thread_id | string | Workflow thread identifier. Use with Upload and the WebSocket endpoint. |
list_id | string | Identifier for the list that will store search results. |
websocket_url | string | WebSocket endpoint for real-time progress and results. Replace <your-api-key> with your API key. |
live_url | string | null | Live browser session URL when live_url was requested and a session is available. |
workspace_id | string | null | Workspace identifier; set after uploading files via Upload. |
status | string | Workflow state (e.g. processing). |
Validation Error (422)
{
"detail": [
{
"loc": ["string", 0],
"msg": "string",
"type": "string"
}
]
}Example
curl -X POST https://chordian-core.chordian.ai/chordian-deep-search/start \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <api-key>" \
-d '{
"prompt": "Research top autonomous vehicle sensor manufacturers in Europe",
"llm_model": "claude-sonnet-4.6",
"live_url": true,
"proxy": false,
"proxy_country_code": "",
"thread_id": "536c****-****-45c5-****-0a8dfa5*****",
"list_id": "6a3b60****2ea3a0609******"
}'Answer Clarifying Questions (Same Start API)
Use the same endpoint to answer clarifying questions in an ongoing deep search thread.
POST /chordian-deep-search/startInclude the original thread_id and list_id with the new answer in prompt.
{
"prompt": "Include only companies with more than 100 employees",
"thread_id": "536c****-****-45c5-****-0a8dfa5*****",
"list_id": "6a3b60****2ea3a0609******"
}Upload Reference File
Upload a reference document to an active deep search thread. Use this to provide context such as API documentation, reports, or data sheets that the agent should use during research.
POST /chordian-deep-search/uploadAuthentication: Authorization: Bearer <api-key>
Content-Type: multipart/form-data
Form Fields
| Field | Type | Required | Description |
|---|---|---|---|
file | file | ✅ | Reference document to upload (e.g. PDF, CSV). |
thread_id | text | ✅ | thread_id from the Start Deep Search response. |
Successful Response (200 OK)
{
"success": true,
"workspace_id": "36912e8e-3d76-450e-b46a-df4db597792f",
"paths": ["uploads/tmplucq1c0f.pdf"]
}| Field | Type | Description |
|---|---|---|
success | boolean | true when the file was uploaded successfully. |
workspace_id | string | Workspace identifier for the uploaded files. |
paths | array<string> | Server-side paths of the uploaded files. |
Example
curl -X POST https://chordian-core.chordian.ai/chordian-deep-search/upload \
-H "Authorization: Bearer <api-key>" \
-F "file=@/path/to/document.pdf" \
-F "thread_id=536c****-****-45c5-****-0a8dfa5*****"Connect to WebSocket
After a successful start response, open the websocket_url to receive real-time deep search updates and results.
The URL format is:
wss://agent.chordian.ai/api/chordian-deep-search/ws/<thread_id>?api-key=<your-api-key>Use the thread_id and websocket_url from the start response. Pass your API key as the api-key query parameter.
JavaScript Example
const API_KEY = '<api-key>';
// 1. Start deep search
const startResponse = await fetch('https://chordian-core.chordian.ai/chordian-deep-search/start', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${API_KEY}`
},
body: JSON.stringify({
prompt: 'Research top autonomous vehicle sensor manufacturers in Europe',
llm_model: 'claude-sonnet-4.6',
live_url: true,
proxy: false
})
});
const startData = await startResponse.json();
// 2. Optionally upload a reference file
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('thread_id', startData.thread_id);
await fetch('https://chordian-core.chordian.ai/chordian-deep-search/upload', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`
},
body: formData
});
// 3. Connect to WebSocket
const wsUrl = startData.websocket_url.replace('<your-api-key>', API_KEY);
const ws = new WebSocket(wsUrl);
ws.onmessage = (event) => {
console.log('Deep search update:', JSON.parse(event.data));
};
Next Steps
- Explore Deep Research APIs for multi-agent research reports
- Explore Web and Research APIs for web-grounded Q&A workflows
- See Agentic Crawler APIs for open-web crawling