Skip to main content
POST
Run a skill and wait
Put the skill’s inputs at the top level of the body (or in the query). The run settings (max_results, max_pages, version, browser_type, profile_id, proxy_config, scrape_mode) sit next to them. See Run settings. The rows are in data. The other fields are explained in Runs. If your account already has its maximum of runs in progress, this returns 429 with Retry-After instead of waiting. Use Start a skill run to queue instead. The older POST /v1/skills/run with skill_id and parameters in the body still works. New code should use this route. MCP tool: skill_<slug>.

Authorizations

Authorization
string
header
required

API key with the vd_sk_ prefix, as Authorization: Bearer vd_sk_.... Create keys in Settings → API Keys.

Headers

Idempotency-Key
string

Any unique string (such as your order id). Resending the same request with the same key within 24 hours returns the first answer (with Idempotent-Replayed: true) and does nothing twice; the same key with a different request is a 422 idempotency_key_reused.

Required string length: 1 - 255

Path Parameters

slug
string
required

Query Parameters

max_results
integer | null

Max rows to return; 0 means the entire list. Omit to use the skill's saved default.

Required range: 0 <= x <= 500
max_pages
integer

Page limit for paginated skills; 0 means all pages.

Required range: x >= 0
version
integer

Recipe version to replay for this call.

Required range: x >= 1

Body

application/json

The skill's inputs at the top level, plus optional run settings: max_pages, version, browser_type, proxy_config, profile_id, scrape_mode.

Response

Skill executed successfully

Response from skill execution.

status
string
required
data
Data · object[]
required
count
integer
required
execution_time_ms
integer
required
error
string | null
credits_charged
number
default:0
cost_usd
number
default:0
cost_final
boolean
default:true
cost_estimate_credits
number
default:0
drifted_fields
Drifted Fields · object
unverified_fields
Unverified Fields · object
rejected_values
Rejected Values · object[]
truncated_sections
Truncated Sections · object[]
scrape_mode_used
string | null
triage_kind
string | null
failure_class
string | null
credits_refunded
number
default:0
needs_user
Needs User · object | null
recipe_version
integer | null
heal_kind
string | null
tier_used
string | null
tier_timings
Tier Timings · object[]
draft_run
boolean
default:false
diagnosis
Diagnosis · object | null

Why the run came back short, and what a hint could say to fix it (POST /v1/skills/{slug}/improve).