REST API
Everything in the dashboard is available over a plain JSON API — programs, assets, events, audits, and webhooks.
- Create an API key
On API keys, mint a key (Pro feature). It’s shown once — copy it. Keys come in two scopes: read (default) and write (needed to manage webhooks and submit feedback).
- Call the API
Send the key as a Bearer token:
curl https://api.bountyhunt.xyz/v1/events?limit=5 \ -H "Authorization: Bearer ck_live_..."
- Browse the full reference
The complete, interactive reference lives at https://api.bountyhunt.xyz/v1/docs (Swagger UI), with the raw spec at /v1/openapi.json.
The essentials
- Base URL —
https://api.bountyhunt.xyz - Catalog reads are public —
GET /v1/programs,/v1/assets, and/v1/eventswork without a key; user-scoped endpoints (watching, webhooks, audits) need one. - Pagination — list responses include
next_cursor; pass it back as?cursor=for the next page. - Incremental polling — pass
?since=<unix_ts>to/v1/eventsto fetch only what’s new since your last poll. - Rolled-up activity —
GET /v1/events/digestgroups the feed into one row per repo and event type (count + latest event as a sample), so a burst of commits doesn’t drown out releases and scope changes. - Timestamps — unix seconds everywhere.
Rate limits and plans
Free accounts see the last 24 hours of activity at 120 requests/min on the
events endpoints. Pro accounts get full history and 600 requests/min. When you
exceed a limit the API returns 429 — back off and retry.
Prefer an agent?
The same data is exposed over MCP at https://api.bountyhunt.xyz/mcp — see
Connect an agent. For push instead of pull, use
webhooks.