Skip to main content
The Armature REST API publishes its own OpenAPI 3.0 document. Fetch it once to generate a typed client, import it into Postman or Insomnia, or feed it into your internal API catalog.
GET /api/armature/v1/openapi
The document is unauthenticated and reflects the operations live on the host you fetch it from.
curl https://your-org.armature.app/api/armature/v1/openapi > armature.openapi.json
The spec covers every operation under /api/armature/v1/:
  • orgGET /org
  • mcpServersGET, POST /mcp-servers, GET /mcp-servers/{id}
  • workflowsGET, POST /workflows, GET, PATCH, DELETE /workflows/{id}, POST /workflows/{id}/runs
  • runsGET /runs, GET /runs/{id}, GET /runs/{id}/trace, GET /runs/{id}/evaluation, GET /runs/{id}/tool-calls
  • insightsGET /insights/overview, GET, PATCH /insights/topics(/{id}), GET /insights/searches(/{id}), GET /insights/sessions, GET /insights/sessions/{id}/trace
All operations use the same bearerAuth security scheme. Send your Armature API key as Authorization: Bearer amt_<key-id>_<secret>.

Generate a client

Most OpenAPI generators accept the URL directly. A few examples:
# openapi-typescript
bunx openapi-typescript https://your-org.armature.app/api/armature/v1/openapi -o armature.d.ts

# openapi-generator (JavaScript / Python / Go / Java / etc.)
openapi-generator-cli generate \
  -i https://your-org.armature.app/api/armature/v1/openapi \
  -g typescript-fetch \
  -o ./armature-client

Import into Postman

In Postman, choose Import → Link and paste the OpenAPI URL. Postman creates a collection with one request per operation and stubs the Authorization header for the bearer token.