sparkcrawlDocs

Start an asynchronous deep research job (research scope)

Plans 5 (standard) or 8 (max) sub-questions, researches each with the cited-answer pipeline (balanced or deep effort) plus arXiv abstracts for academic angles, and writes one report whose citations are checked against the collected sources. Always returns 202 with the job; read GET /api/v1/jobs/{id} until completed — result.research has outline, findings, sources, report, citationCoverage, completion, costUsd, durationMs. maxCostUsd (0.05-5, default 1) is the upstream budget, settled at the measured cost; runs are capped at 10 minutes. With billing on, the balance must cover US$0.005 + maxCostUsd × 1.5 up front (≈US$1.50 at the default, ≈US$7.50 at 5): on a US$1 balance pass maxCostUsd 0.6 or less.

POST
/api/v1/research

Plans 5 (standard) or 8 (max) sub-questions, researches each with the cited-answer pipeline (balanced or deep effort) plus arXiv abstracts for academic angles, and writes one report whose citations are checked against the collected sources. Always returns 202 with the job; read GET /api/v1/jobs/{id} until completed — result.research has outline, findings, sources, report, citationCoverage, completion, costUsd, durationMs. maxCostUsd (0.05-5, default 1) is the upstream budget, settled at the measured cost; runs are capped at 10 minutes. With billing on, the balance must cover US$0.005 + maxCostUsd × 1.5 up front (≈US$1.50 at the default, ≈US$7.50 at 5): on a US$1 balance pass maxCostUsd 0.6 or less.

Authorization

bearerAuth
headerAuthorizationBearer <sc_live_<43 characters>>

Organization API key created at /app/api. Scopes: scrape, crawl, search, research. The secret is shown once.

Header Parameters

Idempotency-Key?string

Replays the original job instead of creating a second one when the same key and body are retried.

Match^[A-Za-z0-9._~-]{1,128}$
Lengthlength <= 128

Request Body

application/json
  1. body
query*string
Length1 <= length <= 400
depth?string
Default"standard"
Value in"standard""max"
language?string
Length2 <= length <= 10
country?string
Length2 <= length <= 2
maxCostUsd?number
Range0.05 <= value <= 5
Default0.5
webhook?

Response Body

Queued research job

application/json
  1. response
job?
replayed?boolean
Example Request
curl -X POST 'https://sparkcrawl.com/api/v1/research' \  -H 'Content-Type: application/json' \  -d '{  "query": "string"}'
Example Response
{  "job": {    "id": "string",    "kind": "scrape",    "status": "queued",    "url": "http://example.com",    "createdAt": 0,    "updatedAt": 0,    "expiresAt": 0,    "pagesCompleted": 0,    "pagesFailed": 0,    "pagesQueued": 0,    "maxPages": 0,    "upstreamCostUsd": 0,    "reservedCostUsd": 0,    "uncertainCostUsd": 0,    "customerChargeUsd": 0,    "pricingVersion": "string",    "result": {      "id": "string",      "url": "http://example.com",      "finalUrl": "http://example.com",      "status": "success",      "httpStatus": 0,      "tierUsed": 0,      "htmlSource": "response",      "title": "string",      "html": "string",      "markdown": "string",      "json": {},      "structuredJson": null,      "jsonLd": [        null      ],      "screenshotBase64": "string",      "pdfBase64": "string",      "cacheHit": true,      "cacheRevalidated": true,      "etag": "string",      "cacheControl": "string",      "engine": "http",      "stage": "http_direct",      "verification": "passed",      "attempts": [        {          "id": "string",          "tier": 0,          "provider": "string",          "proxy": "string",          "status": "string",          "stage": "string",          "engine": "string",          "durationMs": 0,          "bytes": 0,          "upstreamCostUsd": 0,          "pricingStatus": "string"        }      ],      "durationMs": 0,      "bytes": 0,      "links": [        "http://example.com"      ],      "upstreamCostUsd": 0,      "pricingStatus": "known",      "customerChargeUsd": 0,      "artifacts": {        "html": "string",        "screenshot": "string",        "pdf": "string",        "json": "string"      },      "error": {        "code": "string",        "message": "string"      }    }  },  "replayed": true}