Developers

Moonbase API

Programmatic access to published MoonScore reports. Build internal dashboards, embed scores in your CRM, or wire alerts into Slack.

Bearer auth

Generate keys from Settings → API keys. Each key has its own rate limit.

Rate limited

Default 60 req/min per key. Configurable up to 600. 429 responses include a retry window.

Webhooks (beta)

Subscribe to score.drift, news.spike, verification.signed — payloads are HMAC-SHA256 signed.

Authentication

All requests require a bearer token in the Authorization header.

curl -H "Authorization: Bearer mb_live_…" \
  https://base.moonrig.io/api/public/v1/reports/your-slug

GET /v1/reports/:slug

Fetch a single published report by slug.

GET https://base.moonrig.io/api/public/v1/reports/acme-protocol
Authorization: Bearer mb_live_…

Example response

{
  "slug": "acme-protocol",
  "name": "Acme Protocol",
  "industry": "Web3",
  "stage": "Series A",
  "geography": "Singapore",
  "score": {
    "overall": 78.4,
    "band": "Strong",
    "pillars": [ { "name": "Team", "score": 82, "weight": 0.15 }, ... ],
    "strengths": [ ... ],
    "risks": [ ... ],
    "scored_at": "2026-05-12T08:11:00Z"
  },
  "verification": {
    "verified_score": 76.0,
    "verdict": "confirmed",
    "signed_at": "2026-05-18T14:22:00Z"
  },
  "report_url": "https://base.moonrig.io/r/acme-protocol"
}

GET /v1/search

Search published reports with optional filters.

GET https://base.moonrig.io/api/public/v1/search?q=defi&industry=Web3&min_score=65&limit=20
Authorization: Bearer mb_live_…
ParameterTypeDescription
qstringFree-text query across name, description, industry
industrystringExact match
stagestringExact match
min_scorenumberFilter to scores ≥ value
limitint (max 50)Default 20

Errors

  • 401 — Missing, invalid, or revoked key
  • 404 — Slug not found or not published
  • 429 — Rate limit exceeded for this key
  • 5xx — Server error; safe to retry

Ready to build?

Create your first API key and start pulling reports.

Get an API key