Skip to main content
The Reppo API is split into two surfaces: the Platform API, which handles datanets, pods, votes, stakes, locks, and stats, and the Agent API, which powers wallet-based chat, autonomous minting, and agent registration. Both surfaces share the same base domain but differ in host and authentication model depending on the endpoint group.

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/noncePOST /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 returns 429 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:
There is no nested structure — error is always a top-level string field.

HTTP status codes