- Lives under
https://gpuoutlet.ai/v1/ - Uses session-cookie auth (the same cookie the dashboard uses)
- Returns JSON with
Content-Type: application/json - Uses standard HTTP status codes (200, 400, 401, 403, 404, 409, 429, 500)
- Versions via the path (
/v1/) — breaking changes ship under/v2/and the previous version stays alive for at least 12 months
Base URL
Quick smoke test
Once you’re signed in via the dashboard (which sets the cookie):{"error":"unauthorized"} instead, the session is expired —
sign back in via the dashboard.
Conventions
IDs are ULIDs
Every entity ID is a 26-char ULID prefixed by type:
usr_, rent_,
key_, led_, cus_, pm_.Money is in cents
All amounts are integer cents, USD.
1.40 USD/hr → 140 in JSON.Timestamps are ISO 8601
UTC with
Z suffix: 2026-06-07T08:14:22Z.Pagination is cursor-based
List responses include
nextCursor (or null). Pass it as ?cursor=.Errors
Every error response has the shape:Rate limits
100 requests per minute per session, 1,000 per hour. See Rate limits.What this API does NOT do
- Stream pod logs — use
sshandtail -f /var/log/...inside the pod - Stream metering events — poll
GET /v1/rentals/:id/meterif you need live values; the per-second updates are server-side only - Manage SSH inside running pods — once a pod is up, we have no shell access. SSH key changes only affect future pods.