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_…
| Parameter | Type | Description |
|---|---|---|
q | string | Free-text query across name, description, industry |
industry | string | Exact match |
stage | string | Exact match |
min_score | number | Filter to scores ≥ value |
limit | int (max 50) | Default 20 |
Errors
401— Missing, invalid, or revoked key404— Slug not found or not published429— Rate limit exceeded for this key5xx— Server error; safe to retry
