Skip to main content

In the app

Open the skill, fill in its inputs, and click Run. The rows appear in a table you can download. See Export data.

From the API

Before you start, create an API key in Settings → API Keys with the skills:invoke scope (and runs:read to read background runs). See API keys. To see what a skill takes and returns, read its contract with GET /v1/skills/{slug}: input_schema lists the inputs, output_json_schema the row shape.

Wait for the rows

POST /v1/skills/{slug}/run runs the skill and answers when it finishes. Put the inputs at the top level of the body:
The rows are in data. If your account already has as many runs in progress as it may, this call does not wait: it returns 429 with Retry-After. Run in the background instead.

Run in the background

POST /v1/skills/{slug}/runs answers at once with a run_id. Inputs go under inputs. If your account is busy, the run waits in a queue.
Then either read GET /v1/runs/{run_id} until status is no longer queued or running, or set webhook_url and Valendata sends you the finished run. See Webhooks. In a finished background run, the rows are in rows. To stop a run, call POST /v1/runs/{run_id}/cancel. To list a skill’s past runs, call GET /v1/skills/{slug}/runs.

Run settings

These go next to the inputs and are not inputs themselves: Inputs are checked before anything runs. A missing input, a wrong type, or an unknown name returns 422 with every problem listed, and nothing is charged. See Errors and limits.

From an AI assistant

Each skill is a tool named skill_<slug>. See Connect your AI assistant.

What comes back

The rows, plus fields that say how far to trust them, which version ran, and what it cost. See Runs.