/api/* except for the health check.
Base URL
Authentication
Most endpoints require authentication via a session cookie. The cookie is set on login or signup.Public endpoints (no auth required)
| Endpoint | Description |
|---|---|
GET /health | Server health check |
POST /api/signup | Create account |
POST /api/auth/login | Sign in |
GET /api/auth/session | Check session (returns null if unauthenticated) |
GET /api/auth/logout | Sign out |
GET /api/models | List available models |
Protected endpoints
All other endpoints require thesupaproxy_session cookie. Requests without a valid session receive 401 Unauthorized.
Request format
- Request bodies are JSON (
Content-Type: application/json) - All request bodies are validated with Zod schemas
- Invalid requests return
400with field-level error details
Response format
Successful responses return JSON. Common patterns:Error codes
| Code | Meaning |
|---|---|
400 | Invalid request body (validation failed) |
401 | Not authenticated |
403 | Not authorised |
404 | Resource not found |
409 | Conflict (e.g. duplicate channel binding) |
500 | Internal server error (details logged server-side) |