Skip to main content
The Knouds REST API lets you run deployed workflows, invoke individual registry models, manage workflow definitions, and poll async executions programmatically. Every request and response uses JSON over HTTPS.

Base URL

All endpoints are served from:
https://knouds.ai
There is no version prefix in the URL. The current stable surface is the v4.13+ contract (Phase 11 capabilities + Phase 12 dashboard + Phase 13 async/webhooks). Additive changes (new optional fields, new capabilities, new endpoints) roll out continuously without versioning. Breaking changes ship with a major-version entry in the changelog.

Request format

Set Content-Type: application/json on every request that includes a body. Endpoints that accept no body (GET requests) ignore the header.

Authentication

Every API endpoint requires a valid API key passed in the x-api-key request header. Keys are generated in the Developer Dashboard (or Settings → API Keys, which redirects there).
curl https://knouds.ai/api/whoami \
  -H "x-api-key: YOUR_KEY"
See Authentication for the full guide on capabilities, presets, and how to handle 401 and 403 responses.

Response format

All responses — including errors — are JSON objects. Successful responses vary by endpoint. Error responses always include at minimum:
{ "error": "<message>", "code": "<CODE>" }
Some error codes include additional context fields. See Error codes for the complete reference.

Available endpoints

Capabilities below are the minimum required. A key with * (admin-only) passes everything.

Identity

MethodPathCapabilityDescription
GET/api/whoami(any authenticated)Identity + tier — pre-flight check that your key is valid

Workflows

MethodPathCapabilityDescription
POST/api/workflows/:slug/runworkflow:run or workflow:<slug>:runRun a deployed workflow synchronously
POST/api/workflows/:slug/run?async=truesame + optional webhook:receiveSubmit async; returns executionId immediately
GET/api/workflows/:slug/schemaworkflow:readGet a workflow’s input schema
GET/api/workflows/:slug/public-schemanonePublic schema (only when publicPlayground: true)
GET/api/workflowsworkflow:readList your workflows
GET/api/workflows/:slugworkflow:readFull workflow JSON
POST/api/workflowsworkflow:writeCreate a workflow (Free capped at 1)
PUT/api/workflows/:slugworkflow:write (+ ownership)Update
PUT/api/workflows/:slug/moveworkflow:write (+ ownership)Change folder
DELETE/api/workflows/:slugworkflow:write (+ ownership)Delete

Models (Business+)

MethodPathCapabilityDescription
POST/api/models/:internalName/runmodel:run or model:<internalName>:runRun any registry model — including the formerly-native ones (nano-banana-2, seedream-v5, kling-v3-i2v, kling-o3-ref2v, kling-v3-motion, claude-sonnet)
POST/api/models/:internalName/run?async=truesameSubmit async on polling-supported defs (Seedance, Suno, gpt-image-2)

Executions (every tier)

MethodPathCapabilityDescription
GET/api/executions/:idexecution:readPoll an async execution
POST/api/executions/:id/cancelexecution:cancelCancel an in-flight execution (always-charge policy)

Usage

MethodPathCapabilityDescription
GET/api/usage(any authenticated)Your own API usage rows (canvas runs filtered out)
GET/api/usage/models(any authenticated)Distinct model IDs in your usage history

Public

MethodPathCapabilityDescription
GET/api/pricing/publicnonePublic pricing and tier information
GET/api/healthnoneHealth check
Account approval is required before any API access is granted. If your requests return 401 and your key is valid, check that your account is approved in addition to verifying the key.
Some session-only endpoints (/api/me, /api/credits/*, /api/api-keys/*, /api/business/admin/*) are not reachable with API keys by design (defense-in-depth on key + account management). Use the Developer Dashboard for those operations.