How it works
When you save a workflow, Knouds assigns it a permanent slug derived from its name (for example,product-image-generator). You call the workflow by posting to:
Ensure your workflow has a Request Input node
The JSON body you send to the API maps directly to the fields you define on a Request Input node. If your workflow does not have one, add it from the Inputs category in the sidebar and define each field your callers should provide.For example, a field named
prompt of type Text means callers must send {"inputs": {"prompt": "..."}} in the request body.Find the workflow slug
The slug appears in the URL when you are editing the workflow:The part after
/editor/ is your slug. You can also find it on the Knouds home page by hovering over a workflow card — the URL shown is your slug.The slug is set at creation time from the workflow name and cannot be changed. If your slug is not descriptive, you will need to create a new workflow with a better name.Generate an API key
Open the Developer Dashboard (or Settings → API Keys, which redirects). Click Create Key and pick a preset:
- Workflow Deploy —
workflow:run+workflow:read. The right preset for most production integrations. - Read-only —
workflow:readonly. Useful for audit/monitoring keys. - Webhook receiver —
webhook:receive. Use when configuring outbound webhook delivery for?async=trueruns. - Full deploy —
workflow:run+workflow:read+workflow:write. Adds the ability to create/update/delete workflows via API. - Custom — pick exact capabilities (per-flow allowlist via
workflow:<slug>:run, per-model allowlist viamodel:<id>:run, etc.).
Call the workflow
Send a A successful response looks like:
POST request with your API key in the x-api-key header and the input values in the inputs object:resultcontains the workflow’s output — image URLs, video URLs, or text, depending on what your workflow produces.costis the number of credits deducted from your balance for this run.msis the total server-side execution time in milliseconds.
Inspecting the input schema
Before building an integration, you can fetch the exact input fields a workflow expects:Rate limits
Every response from the run endpoint includes rate limit headers so your integration can pace itself:X-RateLimit-Reset is a Unix epoch timestamp indicating when the current window resets. Limits by tier:
| Tier | Requests per minute |
|---|---|
| Pro | 100 |
| Business | 1,000 |
| Enterprise | unlimited |
429 RATE_LIMIT_EXCEEDED with a Retry-After header (in seconds) telling you when to resume.
Sharing a workflow publicly
If you want to share a workflow so others can try it without authenticating, setpublicPlayground: true on the workflow. This makes the schema available at the unauthenticated endpoint:
The public schema endpoint returns only the input field definitions — it does not expose nodes, edges, model configurations, or any internal details of your workflow. Callers still need a valid API key to actually run the workflow.