curl --request POST \
--url https://api.tryfuse.ai/api/v1/business/research/runs \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>"
}
'import requests
url = "https://api.tryfuse.ai/api/v1/business/research/runs"
payload = { "prompt": "<string>" }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({prompt: '<string>'})
};
fetch('https://api.tryfuse.ai/api/v1/business/research/runs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"run": {
"runId": "68a205cc9c41d20014b40888",
"status": "queued"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}Start a Deep Research run
Starts an autonomous Deep Research run for the prompt and returns immediately with 202. Billing is per provider action inside the run, gated by the balance and capped by effort (low 1000, medium 2000 (default), high 5000 credits); the run always produces a markdown report (reportMarkdown on GET /business/research/runs/) and, when it surfaces people or companies, a result list (resultListId). Send an X-Idempotency-Key header of 8 to 200 characters to make retries safe: a replay returns the existing run instead of starting another (a key outside that length is rejected with 422; an empty header is treated as if none was sent). Poll GET /business/research/runs/ until status is completed, failed or cancelled, or stream progress from GET /business/research/runs//events. Prompts are limited to 2000 characters by the research engine. Rate limits: 30 requests per minute and 1000 per day on this endpoint, plus 5 run starts per minute and 100 per day in the research engine.
Errors:
422VALIDATION_FAILED—promptis missing or outside 4-2000 characters,effortis not low, medium or high, or theX-Idempotency-Keyheader was sent with a value outside 8-200 characters.429RATE_LIMITED— Either this endpoint’s quota (30 per minute, 1000 per day) or the research engine’s own start quota (5 per minute, 100 per day) is exhausted; retry after the Retry-After / RateLimit-Reset seconds.
Requires one of the following token scopes: research.
curl --request POST \
--url https://api.tryfuse.ai/api/v1/business/research/runs \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "<string>"
}
'import requests
url = "https://api.tryfuse.ai/api/v1/business/research/runs"
payload = { "prompt": "<string>" }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({prompt: '<string>'})
};
fetch('https://api.tryfuse.ai/api/v1/business/research/runs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"run": {
"runId": "68a205cc9c41d20014b40888",
"status": "queued"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}Authorizations
Your API token (af_…) as the Basic-auth username, with an empty password.
Body
The research question or brief in plain text, 4 to 2000 characters.
4 - 2000Research depth tier that sets the run's credit spend cap: low (1000 credits), medium (2000, the default when omitted) or high (5000).
low, medium, high Response
Success
Show child attributes
Show child attributes