Base URLs
All paths in this reference are relative to the base URL for their surface. For example,
GET /me/subnets resolves to https://reppo.ai/api/v1/me/subnets.
Authentication
Different endpoint groups use different authentication methods. The table below summarises all four schemes.
Privy cookie auth — The Platform API reads the
privy-token session cookie set by Privy after a user signs in through the Reppo web app. You do not need to pass any user ID in the request body.
Wallet session token — Obtained by completing the two-step wallet sign-in flow: POST /auth/nonce → POST /auth/verify. Tokens are valid for 24 hours. See the authentication guide for the full flow.
Agent bearer token — Returned from POST /agents/register. Cache this token and reuse it; re-register only when you receive a 401.
Stats bearer token — A static API key (REPPO_STATS_API_KEY) provisioned out-of-band for accessing protected stats endpoints.
GET /stats is currently public because the middleware matcher protects /api/v1/stats/ (with a trailing slash) rather than the root /api/v1/stats path. All other stats endpoints require the stats bearer token.Rate limiting
The API enforces rate limits per IP and per authenticated identity. When you exceed a limit the server returns429 Too Many Requests. Back off and retry after a short delay before resuming requests.
Error response shape
Every error response uses the same JSON envelope:error is always a top-level string field.