Skip to content

Overview

The API manages your account, API keys and subusers. The dashboard is a client of the same API - everything it does, you can script.

https://api.tpp.io

Requests and responses are JSON. Every endpoint below /v1 requires a bearer token:

Authorization: Bearer <token>

Sign in with your dashboard email and password:

Terminal window
curl -s https://api.tpp.io/v1/auth/login \
-d '{"email": "you@example.com", "password": "..."}'
{ "id": "...", "token": "...", "expires_at": "2026-08-28T09:30:00Z" }

Session tokens last 30 days. For scripts and CI, create a named API key instead - keys can be non-expiring and revoked individually.

POST /v1/auth/logout revokes the token that made the request.

Errors are {"error": "human-readable message"} with a matching status:

Status Meaning
400 Invalid input - the message says which field
401 Missing, invalid or expired token
403 Not allowed - including writes while your account is disabled
404 No such resource (or not yours)
409 Name already taken (e.g. a duplicate proxy_user)

A disabled account keeps read access - you can still see your balance and why - but all writes return 403.

List endpoints take limit (default 100, max 1000) and offset query parameters.

All bandwidth amounts are integers in bytes. 1 GB as sold is 10⁹ bytes.