REST API

Everything in the dashboard is available over a plain JSON API — programs, assets, events, audits, and webhooks.

  1. 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).

  2. Call the API

    Send the key as a Bearer token:

    curl https://api.bountyhunt.xyz/v1/events?limit=5 \
      -H "Authorization: Bearer ck_live_..."
  3. 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 URLhttps://api.bountyhunt.xyz
  • Catalog reads are publicGET /v1/programs, /v1/assets, and /v1/events work 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/events to fetch only what’s new since your last poll.
  • Rolled-up activityGET /v1/events/digest groups 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.