[Documentation]

Build on the Topo network.

One OpenAI-compatible API for 120+ models, served by staked GPU nodes in 40+ regions and settled per token in USDT, ETH or SOL. Change the base URL, keep your SDK.

Base URLhttps://api.topolabs.ai/v1

Start here

Make your first request

Every request is a standard OpenAI request. Topo adds a topo object to the response with the serving node, the verification result and the on-chain receipt.

curl https://api.topolabs.ai/v1/chat/completions \  -H "Authorization: Bearer $TOPO_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "model": "claude-sonnet-5.5",    "messages": [{ "role": "user", "content": "Explain zk proofs in 3 lines" }],    "pay_with": "usdt"  }'
response.json
json
{  "id": "chatcmpl_7Hq2kf91",  "object": "chat.completion",  "created": 1792142596,  "model": "claude-sonnet-5.5",  "choices": [    {      "index": 0,      "message": {        "role": "assistant",        "content": "A zk proof shows a statement is true without revealing why. ..."      },      "finish_reason": "stop"    }  ],  "usage": { "prompt_tokens": 18, "completion_tokens": 406, "total_tokens": 424 },  "topo": {    "request_id": "req_7Hq2kf91",    "node": "eu-west-2",    "gpu": "B200",    "ttft_ms": 182,    "attestors": "3/3",    "receipt": {      "amount": "0.0041",      "currency": "USDT",      "chain": "base",      "tx": "0x51c4…9ab2"    }  }}

How a request flows

Four hops, one round trip. Each step has its own page.

Get help