OpenAPI Spec & TypeScript Clients
Machine-readable OpenAPI 3.1.0 spec for the Minds API. Generate typed TypeScript clients or pipe the JSON straight into your LLM.
OpenAPI Spec
The Minds public API ships a machine-readable OpenAPI 3.1.0 spec. Build typed clients or hand the JSON to an LLM — same source of truth as this documentation.
Endpoint
| URL | What you get |
|---|---|
https://getminds.ai/_openapi.json | OpenAPI 3.1.0 JSON spec. Feed this into any generator. |
The spec only includes public /api/v1/** endpoints that declare OpenAPI metadata. Internal endpoints (admin, debug, cron, MCP, etc.) are excluded.
Authentication
Every operation in the spec is gated by ApiKeyAuth — send your personal API key as a bearer token:
Authorization: Bearer minds_…_key
Create one in Settings → API Keys. See Authentication for the full flow.
Generate a TypeScript client
The fastest path: use openapi-typescript to generate strict types from the live spec.
npx openapi-typescript https://getminds.ai/_openapi.json -o minds.d.ts
Then use them with openapi-fetch for a fully-typed client:
import createClient from 'openapi-fetch'
import type { paths } from './minds'
const client = createClient<paths>({
baseUrl: 'https://api.getminds.ai',
headers: { Authorization: `Bearer ${process.env.MINDS_API_KEY}` },
})
// All params + responses are typed from the live spec.
const { data, error } = await client.GET('/api/v1/sparks', {
params: { query: { limit: 10 } },
})
Prefer a runtime SDK? Any OpenAPI 3.1-compatible generator works — openapi-generator, orval, kubb, etc.
Use it with an LLM
The JSON spec is small enough to drop into a chat:
curl -s https://getminds.ai/_openapi.json | pbcopy
Then paste into ChatGPT / Claude / Cursor with a prompt like:
Here is the Minds API OpenAPI spec. Write me a Python script that lists my sparks and prints their names.
The spec includes request/response schemas, example payloads, and the bearer-token auth contract — the model has everything it needs.
Coverage
The spec lists only /api/v1/** endpoints that opt in via defineRouteMeta({ openAPI: … }). We're working through the surface over time — the spec stays accurate because it's generated from the live router, not maintained by hand.
Note on stability: OpenAPI generation runs on Nitro's experimental
openAPIflag. The spec format is stable (OpenAPI 3.1.0); minor structural drift in operation metadata is possible as the underlying Nitro feature matures. Pin your client-generation step to a build artifact if you need a frozen contract.
Next steps
- Fetch the live spec at /_openapi.json
- Read Authentication for the bearer-token flow
- Jump into Sparks, Panels, or Chat for endpoint walkthroughs