---
title: "Is there an OpenAPI spec for the Wireflow API?"
description: "Yes, the Wireflow API has an OpenAPI 3.1 spec at https://www.wireflow.ai/openapi.json covering every public operation, also linked from its API catalog."
updated: 2026-11-02
---

Yes, the Wireflow API has an OpenAPI 3.1 spec at `https://www.wireflow.ai/openapi.json`, and it covers every public operation. The [API Overview](/docs/api/overview) links to it, and the API catalog at `https://www.wireflow.ai/.well-known/api-catalog` lists it too.

## What is the URL of the Wireflow OpenAPI spec, and which version does it use?

The spec is at `https://www.wireflow.ai/openapi.json`, and it uses OpenAPI 3.1. The API catalog lists the spec at a second URL under `/.well-known/`. Here is what each URL gives you:

| URL | OpenAPI version | What you get |
| --- | --- | --- |
| `https://www.wireflow.ai/openapi.json` | 3.1 | Every public operation of the Wireflow API |
| `https://www.wireflow.ai/.well-known/api-catalog/openapi.json` | 3.1.0 | The spec the API catalog lists as its `service-desc`, titled "Wireflow API", about 283 KB |

## How do I download the Wireflow OpenAPI spec with curl, JavaScript or Python?

Send a GET request to `https://www.wireflow.ai/openapi.json` and save the response to a file. Each example stops with an error if the download fails.

With curl:

```bash
curl -fL -o wireflow-openapi.json https://www.wireflow.ai/openapi.json
```

With JavaScript (Node.js):

```javascript
import { writeFile } from "node:fs/promises";

const res = await fetch("https://www.wireflow.ai/openapi.json");
if (!res.ok) throw new Error(`Download failed: ${res.status}`);
await writeFile("wireflow-openapi.json", await res.text());
```

With Python:

```python
import requests

res = requests.get("https://www.wireflow.ai/openapi.json")
res.raise_for_status()
with open("wireflow-openapi.json", "wb") as f:
    f.write(res.content)
```

## Does Wireflow publish an API catalog that links to the OpenAPI spec?

Yes, `https://www.wireflow.ai/.well-known/api-catalog` is an `application/linkset+json` document, and its `service-desc` link points to the spec at `https://www.wireflow.ai/.well-known/api-catalog/openapi.json`. Fetch the catalog to see the link:

```bash
curl https://www.wireflow.ai/.well-known/api-catalog
```

If you are connecting an AI agent rather than writing code, use the [MCP connector](/docs/mcp) at `https://www.wireflow.ai/api/mcp`. Its server card is at `https://www.wireflow.ai/.well-known/mcp/server-card.json`.

## Can I get Wireflow's nodes and models as machine-readable lists too?

Yes, the [node catalog](/docs/api/nodes) and the model catalog list them, and neither needs an API key.

| Catalog | Request | What it lists |
| --- | --- | --- |
| Nodes | `GET https://www.wireflow.ai/api/v1/nodes` | Every node with its ports, config keys, options, defaults and pricing |
| Models | `GET https://www.wireflow.ai/api/v1/models` | Every model with its credit cost |

Both answer with a `version`, a `count` and the list itself under `nodes` or `models`. Use the node catalog to build workflow graphs.

```bash
curl https://www.wireflow.ai/api/v1/models
```

## What do I need to know before calling the endpoints in the spec?

You need the base URL `https://www.wireflow.ai/api/v1` and an API key, sent as a Bearer token in the `Authorization` header. The node and model catalogs work without a key.

| What | Value |
| --- | --- |
| Base URL | `https://www.wireflow.ai/api/v1` |
| Auth header | `Authorization: Bearer YOUR_API_KEY` |
| Where to create a key | **Settings > API Keys** in the Wireflow dashboard |
| Key format | Starts with `sk-`, shown only once |
| Scopes on a new key | `workflows:read` and `executions:read` (read-only) |
| Scopes to run workflows | Add `workflows:execute`, or pick **Full access** when you create the key |
| Check which account a key acts as | `GET /api/v1/me` |

To check which account your key acts as:

```bash
curl https://www.wireflow.ai/api/v1/me \
  -H "Authorization: Bearer YOUR_API_KEY"
```

[API authentication](/docs/api/authentication) lists every scope, and [Run Workflows](/docs/api/run) shows how to run a saved workflow by passing only its inputs.

The API is standard REST with Bearer-token auth and JSON bodies, so any HTTP client works. Read the response shape of each route you call, because the JSON envelope differs by route family. Errors come in two shapes too: an `error` object with `type`, `message` and `code`, or a flat `{ "error": "message" }`, sometimes with extra fields. See [API errors](/docs/api/errors) for the error types and status codes.

Last updated: 2026-11-02

---

Documentation index: fetch https://www.wireflow.ai/llms.txt for the full list of Wireflow docs.
