HTTP API

Clawnify exposes a public HTTP API for managing apps, organizations, deployments, credentials, and webhooks. Full endpoint reference (Scalar UI, request/response shapes, try-it-out) lives at api.clawnify.com/reference.

This page covers what the auto-generated reference doesn’t: how to get a token, how auth works, and how to deal with rate limits.

Authentication

All API endpoints require a Bearer token in the Authorization header.

Authorization: Bearer <your_token>

There are two flows for getting a token, depending on who’s calling.

Personal access token — clawnify login

For your own scripts, dashboards, and ad-hoc integration work. The CLI handles the OAuth 2.1 PKCE dance for you:

npm install -g clawnify
clawnify login

The browser opens, you authenticate, and the CLI stores credentials at ~/.clawnify/auth.json. From there on every CLI command — and the clawnify mcp bridge to mcp.clawnify.com — uses that token automatically.

If you need the raw token to call the API directly from a script:

cat ~/.clawnify/auth.json | jq -r .access_token

Token refreshes happen automatically in the CLI; if you cached the raw value, expect to re-fetch when it expires (~1 hour).

External MCP client — OAuth 2.1 PKCE

For integrations that aren’t shell-based (Claude Desktop, ChatGPT custom apps, embedded clients), the OAuth flow is the same standard PKCE pattern. Two paths:

  • Use the MCPB bundle — one-click for Claude Desktop. The bundle prompts for your personal token at install time and the bridge handles everything else.
  • Implement PKCE directly — start the authorization-code-with-PKCE flow at https://app.clawnify.com/oauth/consent, exchange the code for an access token. The OAuth 2.1 PKCE specification covers the full handshake; our endpoints follow it without modification.

Org selection

Your account may belong to multiple orgs. By default the API resolves the active one as the first org you joined. To override per-request, send the org’s UUID in the X-Clawnify-Org-Id header:

X-Clawnify-Org-Id: 6c9c4b21-...

The MCP gateway accepts the same header. The CLI’s clawnify org use <slug-or-id> sets a default that travels with every CLI call.

Rate limits

Endpoints are rate-limited per-org and per-route. Limits are tuned to keep the platform responsive; reasonable usage from a single integration stays well under them.

When you hit a limit:

HTTP/1.1 429 Too Many Requests
content-type: application/json

{ "error": "rate_limited" }

Back off and retry. If you have a legitimate use case that needs higher limits — bulk migration, sustained high-volume integration — talk to us.

Endpoint reference

Full spec, request/response shapes, “try it” UI:

The OpenAPI document is the canonical source. The Scalar UI and the llms.txt are both generated from it.

See also

  • CLI → Install — the path most users take to call the API.
  • MCP gateway — the parallel surface for AI agents (mcp.clawnify.com, MCP-shaped instead of REST-shaped, same auth).
  • Audit log — every authenticated call leaves a record.