OpenAPI spec
Download the Nodaro OpenAPI 3.1 spec from /v1/openapi.json, see which endpoints it covers, and generate typed clients in Go, Rust, Python and other languages.
The Nodaro OpenAPI spec is a machine-readable description of the core of the Nodaro REST API, in OpenAPI 3.1, served live by the server. Use it to generate a typed client in Go, Rust, Python or any language that has an OpenAPI generator, or to explore the API in any tool that reads OpenAPI. For TypeScript and JavaScript, the SDK is the ready-made client.
Get the spec
curl -s https://app.nodaro.ai/v1/openapi.json -o nodaro-openapi.jsonThe spec is public, so no token is needed, and it is cached for 5 minutes. A self-hosted install serves its own spec at the same path, /v1/openapi.json. The API Tokens page in Settings links to it too.
What the spec covers
The spec is a curated part of the API: it describes the automation core, not every route. It covers:
| Area | Paths |
|---|---|
| Workflows | GET /v1/projects/{projectId}/workflows, POST /v1/workflows/{id}/run, POST /v1/workflows/{id}/move |
| Jobs | GET /v1/jobs/{id}, GET /v1/jobs/{id}/status |
| Node discovery | GET /v1/nodes, GET /v1/nodes/{type} |
| Generation | POST /v1/generate-image, POST /v1/generate-video |
| OAuth | POST /v1/oauth/token, GET /v1/oauth/app-info, and the plugin connect routes under /v1/oauth/plugin/ |
| Credits | POST /v1/credits/model-costs, POST /v1/credits/video-pro-estimate |
It defines four shared schemas: WorkflowSummary, Job, JobStatus and NodeDescriptor. The server builds the spec from its own route definitions, so read the live file for the exact list.
A few things to know when you use it:
- One security scheme.
bearerAuthis an HTTP bearer token. The spec labels its formatJWT, but the scheme accepts a personal API token, an OAuth access token or a session JWT. See Authentication. - A relative server. The spec's server is
/, so set the base URL, such ashttps://app.nodaro.ai, when you create the client. - Public discovery routes. The spec marks every path with
bearerAuth, butGET /v1/nodesandGET /v1/nodes/{type}also answer without a token. - Generation fields.
POST /v1/generate-imageandPOST /v1/generate-videolist their full request bodies, includingconnectedReferences,directionandsubject. See Nodes for what the fields do.
Generate a client
# Go
oapi-codegen -generate types,client -package nodaro https://app.nodaro.ai/v1/openapi.json
# Rust
openapi-generator generate -i https://app.nodaro.ai/v1/openapi.json -g rust -o nodaro-rs
# Python
openapi-generator generate -i https://app.nodaro.ai/v1/openapi.json -g python -o nodaro-pyThen point the client at your base URL and send Authorization: Bearer <token> with every request. Everything else works as described on the other pages: JSON bodies, the { "error": { "code", "message" } } envelope from Errors, and polling for results from Jobs.
Call endpoints outside the spec
The REST API works from any language even where the spec is silent: send a bearer token, JSON in, JSON out.
- Every node has the same route.
POST /v1/{node-type}, with the node's settings as the body, runs any node, not only the two in the spec. Read a node's fields fromGET /v1/nodes/{type}, underinputSchema, and from its page in the node reference. - Every other endpoint is described on these pages, from Workflows and Executions to Uploads and Credits. Call them with your generated client's raw request method or any HTTP library.
Frequently asked questions
Related
REST API overview
Nodes
Authentication
TypeScript SDK
Jobs
Last updated on
Rate limits
A Nodaro API token allows 30 run requests per minute by default, up to 120. See the per-route limits, the two 429 codes, batch sizes and how to back off.
TypeScript SDK
Install @nodaro/sdk, authenticate with an API token, and run Nodaro nodes and workflows from TypeScript in Node.js, the browser and edge runtimes.