N°08 / Ship

HTTP API reference

The Banger control plane is a small REST API. The CLI, the MCP server, and the dashboard all hit the same endpoints. You can use it directly for any integration use case the SDKs don’t cover yet.

Base URL

https://api.banger.fi/api/v1

Authentication

Bearer token in the Authorization header:

curl https://api.banger.fi/api/v1/strategies \
  -H "Authorization: Bearer bk_live_..."

Generate keys at /settings. Keys have a scope: read < deploy < admin. Endpoints state which scope they require.

Endpoints

Strategies

MethodPathScopeDescription
GET/strategiesreadList your strategies
POST/strategiesdeployUpload a new strategy from source
GET/strategies/:idreadFetch a strategy with source
PATCH/strategies/:iddeployUpdate name, source, visibility, etc.
DELETE/strategies/:iddeploySoft-delete
GET/strategies/:id/performance?range=24hreadP&L series + summary

Deployments

MethodPathScopeDescription
GET/deployments[?status=running]readList your deployments (with strategy names)
POST/deploymentsdeployStart a deployment for a strategy
POST/deployments/:id/stopdeployStop a running deployment

Marketplace

MethodPathScopeDescription
GET/marketplacereadList public strategies
GET/marketplace/:idreadPublic strategy detail (incl. source)
POST/marketplace/:id/clonedeployFork into your account; optionally start a deployment

Positions

MethodPathScopeDescription
GET/positions[?venue=polymarket]readOpen positions across running deployments

Account (dashboard-only)

These endpoints use Clerk session auth, not API keys — you can’t hit them from the CLI/MCP. They power the dashboard UI directly.

MethodPathDescription
GET/POST/api_keysList + mint API keys
DELETE/api_keys/:idRevoke
GET/POST/venue_credentialsList + add (encrypted) BYO venue keys
POST/billing/checkoutCreate a Stripe Checkout session for a tier upgrade
POST/billing/portalOpen the Stripe Customer Portal

Errors

All error responses are JSON in the shape { "error": "..." }. Common statuses:

  • 401 — missing or invalid auth
  • 403 — auth ok, but scope insufficient
  • 404 — resource not found (or not yours)
  • 400 — invalid request body (with issues from Zod for details)
  • 500 — something on our end

Rate limits

Not enforced in v0. Be reasonable. Production rate limits will be per-API-key, with separate buckets for read vs deploy.

See also