API

Every workflow, run, and fleet is an HTTP call away.

Bearer JWT or API token. JSON in and out. Async runs you poll. Live OpenAPI from the route handlers.

One header: Bearer or Token

JWTs use Authorization: Bearer. API tokens without dots use Token. Programmatic callers fetch a personal token from GET /api/users/me/token and rotate with POST /api/users/me/token/regenerate.

Prefer the CLI? Device authorization via trickest auth login. CLI overview. Check the current session with GET /api/auth/session.

curl · session
curl https://trickest.io/api/auth/session \  -H "Authorization: Bearer $TRICKEST_TOKEN" # { "user": { … }, "expiresAt": "…" }

Run a workflow, then poll

POST returns 201 immediately. Observe with GET run and subjobs. Subjob console is poll-based (mode=live or final), not SSE.

curl · execute
curl https://trickest.io/api/runs \  -H "Authorization: Bearer $TRICKEST_TOKEN" \  -H "Content-Type: application/json" \  -d '{    "workflow_id": "<workflow-uuid>",    "use_latest_version": true,    "fleet": "<fleet-uuid>",    "machines": { "small": 4 },    "inputs": { "target": "example.com" }  }' # 201 Created# { "id": "<run-uuid>", "status": "PENDING" }
curl · poll
curl https://trickest.io/api/runs/<run-uuid> \  -H "Authorization: Bearer $TRICKEST_TOKEN" curl https://trickest.io/api/runs/<run-uuid>/subjobs \  -H "Authorization: Bearer $TRICKEST_TOKEN" # Lists use page + page_size (default 20)

Recurring work: POST /api/schedule with an ISO date and integer repeat_period in seconds. No webhooks. Files: POST /api/files streaming proxy.

The routes the platform runs on

Orientation only. The live OpenAPI catalog is the system of record.

Workflows

Read workflow metadata and node graphs, copy into another space, list versions. A run binds a version to inputs.

versions · copy · graph

Runs

POST /api/runs starts an async execution. Poll the run, walk subjobs, read console snapshots, stop, or retry.

execute · poll · subjobs

Files

POST /api/files streams an upload through the API edge and injects auth server-side. No bearer handed to the browser for a direct PUT.

streaming proxy

Fleet & Machines

List and create fleets typed MANAGED or HOSTED, scoped to a vault, then query machines reporting into each one.

managed · hosted

Schedules

POST /api/schedule takes a workflow, a fleet, an ISO start date, an integer repeat period in seconds, and a parallelism cap. No cron expressions. No webhooks.

ISO date · repeat_period

Library, data & more

Reporting, workspaces, notifications, variables, teams, integrations, billing, memory, and the workflow library round out the surface.

browse OpenAPI tags

Browse the API reference →

Read the spec, not a mockup

Generated from the OpenAPI the route handlers emit. Typed access via the SDK.

questions

Frequently asked

Prefer typed calls? Open the SDK.

No. POST /api/runs returns 201 with a PENDING run. Poll GET /api/runs/{id} and walk subjobs until the run reaches a terminal status.

Get a personalized demo

See Trickest in Action

A 30-minute walkthrough. We map the platform to your stack and answer pricing and deployment questions for your environment.