Base URL
Content-Type: application/json. Every response is JSON.
Resources and naming
Every resource uses the same verbs:
Skills and workflows are named by their slug. Runs and schedules by their id.
Two run routes differ by one letter on purpose:
/run waits for the result, /runs starts in the background. See Runs.
Conventions
- Field names are
snake_case. Timestamps are ISO 8601 in UTC with aZ, such as2026-10-06T18:37:00Z. - Ids are opaque strings. Most carry a prefix that says what they are (
skl_,sklsch_,wfsch_); some older ones (workflows, logins, workflow runs) are plain UUIDs. Never parse an id; store it as you got it. - Credit amounts on Account and usage are decimal strings with two places (
"3500.43"), so no precision is lost;credits.balance_numberhas the balance as a number. Run costs (credits,credits_charged) are numbers. - Booleans are JSON
trueandfalse. Enum values are listed on each route’s page. - Every response carries
X-Request-ID. Every error has the same body. See Errors and limits. - The full OpenAPI document is at
https://api.valendata.com/v1/openapi.json. Each operation’soperationIdis the name of the MCP tool that does the same thing (list_skills,create_workflow,run_skill);x-mcp-toolnames the tool where it differs.
Versioning and deprecation
The version is in the path:/v1. Within v1, changes are additive only: new routes, new optional parameters, new response fields, new error code values. Write your client to ignore fields it does not know.
A route that will go away is marked deprecated in the reference and answers with three headers, for at least six months before it is removed:
Deprecation is when it was deprecated (Unix time), Sunset is the earliest date it may be removed, and Link points to the route to use instead. Deprecated today:
The rest of the basics
Each of these has one page:Authentication and scopes
Send your key. What each scope allows.
Errors and limits
Status codes, error bodies, rate limits, and runs in progress.
Pagination and idempotency
Page through lists. Retry safely.
Webhooks
Get finished runs pushed to you, and verify them.

