Skip to main content
POST
/
smartbrowse
/
recipes
/
{id}
/
run
Dispatch a SmartBrowse run
curl --request POST \
  --url https://api.webscrape.ai/v1/smartbrowse/recipes/{id}/run \
  --header 'X-API-Key: <api-key>'
{
  "status": "queued",
  "request_id": "req_aB3xY9Kp",
  "data": {
    "run_id": "k7Xb9dRmQ2p",
    "recipe_id": "m3Yc2tFvN8q",
    "run_status": "running",
    "poll_url": "/v1/smartbrowse/runs/k7Xb9dRmQ2p",
    "created_at": "2023-11-07T05:31:56Z"
  }
}
Dispatch a SmartBrowse recipe run. Comes back right away with a run_id; poll GET /v1/smartbrowse/runs/{id} for progress and the final result. Recipes are authored visually in the dashboard studio — click, type, and paginate against a real page. The API only dispatches and polls. Cost: 2 credits per page extracted (initial load + each pagination hop). Billed on completion. Cancelled or timed-out runs cost 0.

Example

curl -X POST https://api.webscrape.ai/v1/smartbrowse/recipes/m3Yc2tFvN8q/run \
  -H "X-API-Key: wsg_live_..."
{
  "status": "queued",
  "data": {
    "run_id": "k7Xb9dRmQ2p",
    "recipe_id": "m3Yc2tFvN8q",
    "run_status": "running",
    "poll_url": "/v1/smartbrowse/runs/k7Xb9dRmQ2p",
    "created_at": "2026-05-21T17:42:01Z"
  },
  "request_id": "req_aB3xY9Kp"
}
Poll GET /v1/smartbrowse/runs/{id} until data.run_status is completed or failed.

Tips

  • We require 2 credits (one page’s worth) up front. If you can’t cover it, dispatch fails with error.code: insufficient_credits.
  • Actual cost is 2 credits per page extracted, charged on completion. Failed runs cost 0.
  • Pair with the Schedules dashboard for cron-driven runs that fire webhooks on completion.
Set up a webhook on the recipe to receive smartbrowse.completed and smartbrowse.failed events. Push delivery is cheaper and faster than holding a poll loop open.
If the data is on a static page — no clicks, no login, no JS-driven content — you don’t need SmartBrowse. Scrape is 1 credit instead of 2 per page.
Each run has a hard 15-minute timeout. For very long crawls, split the work into multiple recipes you dispatch in parallel rather than one giant recipe.
For recipe authoring, drift score interpretation, and scheduling, see the SmartBrowse feature page.

Authorizations

X-API-Key
string
header
required

Generate from the dashboard. Format: wsg_live_<32 base62 chars>.

Path Parameters

id
string
required

Opaque recipe ID (~11 base62 chars).

Example:

"m3Yc2tFvN8q"

Response

Run dispatched.

status
enum<string>
required

Discriminator for the envelope variant.

Available options:
queued
request_id
string
required

Per-request id. Also returned as the X-Request-ID response header. Include it when reporting issues.

Example:

"req_aB3xY9Kp"

data
object
required