Skip to main content

API Reference

Base URL: https://rugmunch.io/api/v1
Spec: /openapi.json on this site (snapshot, 835 routes, captured 2026-08-24)
Interactive: /docs (Swagger) and /redoc on the API host

Authenticationโ€‹

Two systems coexist. Use the auth service (/api/auth) for new integrations โ€” the backend-native /api/v1/auth routes are legacy.

Auth service (better-auth) โ€” https://rugmunch.io/api/authโ€‹

EndpointPurpose
POST /api/auth/sign-up/emailRegister with email + password
POST /api/auth/sign-in/emailLogin โ€” returns session token/cookie
GET /api/auth/get-sessionCurrent session (returns null when anonymous)
curl -X POST https://rugmunch.io/api/auth/sign-in/email \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "password": "your-password"}'

The web app uses this path exclusively; wallet sign-in flows through the same service (OAuth: Google/GitHub/X + wallet linking on the legacy surface).

Legacy backend auth โ€” /api/v1/auth (maintenance mode)โ€‹

Still served (JWT bearer), kept for existing clients: register, login, logout, me, change-password, cookie-token, jwks, 2FA (setup/enable/verify/login), OAuth (google/github/x url+callback), wallet linking, delete-account.

Per-request authโ€‹

MethodHeaderUsed for
Session/Bearer tokenAuthorization: Bearer <token>User-facing API
API keyX-API-Key: <key>Service-to-service
x402 proofX-PAYMENT: <signed-proof>Pay-per-call tools
Client fingerprintX-Client-ID: <id>Trial-gated anonymous calls

Core platform endpointsโ€‹

EndpointPurpose
GET /health, GET /live, GET /ready, GET /versionHealth & liveness
GET /.well-known/x402x402 payment discovery
GET /mcp/tools, GET /mcp/infoMCP server discovery
GET /api/v1/catalog/statsPlatform data stats
GET /api/v1/databus/healthDataBus provider health

Errors โ€” RFC 7807 Problem Detailsโ€‹

{
"type": "https://rugmunch.io/errors/invalid-token",
"title": "Invalid authentication token",
"status": 401,
"detail": "JWT expired or malformed",
"instance": "/api/v1/token/scan"
}
StatusMeaning
400Validation failed
401Missing/expired credentials
402x402 payment required โ€” quote in response, see x402 Payments
403Insufficient tier
405Wrong HTTP method for this route
429Rate limit exceeded
500Unexpected server error
Data-vs-success

Data endpoints return 200 with {"data": null, "reason": "no_data", "sources_tried": [...]} when upstreams have no data. Check reason โ€” HTTP 200 does not guarantee data. Empty paid results are refundable.

Response headersโ€‹

HeaderMeaning
X-Request-IDCorrelation id for support
X-Response-Time-MsServer processing time
X-RateLimit-Limit / -Remaining / -ResetRate limit state
X-Degraded-StoresUpstream providers currently failing over
Deprecation / SunsetLegacy route warnings

Rate limitsโ€‹

TierRateDaily capAuth
Anonymous10 req/mintrial-gatedfingerprint
Free10 req/min100/daysession or API key
Pro60 req/min10,000/daysession
Enterprisecustomcustomcustom

x402-paid calls are metered by payment, not by these caps.

Route families (835 routes in the snapshot)โ€‹

PrefixCountWhat lives there
/api/v1/databus/*108DataBus core (free + premium)
/api/v1/x402-tools/*77Per-tool security/intel scanners
/api/v1/x402-databus/*39Paid DataBus endpoints (wallets, markets, RAG)
/api/v1/x402/*30Payment gateway (pricing, invoices, webhooks)
/api/v2/scanner/*9Scanner v2 (async multi-engine)
/api/v1/rugmaps/*12Maps, entities, fund flows
/api/v1/rugcharts/*9Charts, signals, TA
/api/v1/wallet-clusters/*8Cluster detection & funding paths
/api/v1/auth/*25Legacy auth (better-auth /api/auth preferred)
/api/v1/catalog/*10Token/wallet catalog + RAG search
/mcp/*5MCP server

Full machine-readable spec: openapi.json (OpenAPI 3.1, captured from the live API on 2026-08-24). Programmatic clients should codegen from this file.