Using the Gateway
Not built.
api.thirtyspokes.aidoes not exist. There are no accounts, no API keys and no payments. This page documents the intended design and which parts of it exist today — so nobody reads a code sample on the landing page as a service.
The intent
One API key, one base URL, every frontier model behind it. Your existing OpenAI or Anthropic client keeps working — same calls, same response shapes.
from openai import OpenAI
client = OpenAI(
base_url="https://api.thirtyspokes.ai/v1", # the only line that changes
api_key=THIRTY_SPOKES_KEY,
)
r = client.chat.completions.create(model="auto", messages=[...])
model="auto" hands the request to the reigning conductor, which delegates it to the spoke it judges best for quality per dollar and escalates if that spoke fails. Naming a spoke pins it. Streaming, tool use and structured output pass through unchanged, because the gateway adds nothing to the request and takes nothing from the response.
What exists
| piece | state |
|---|---|
| the conductor, trained by miners and scored every window | live mechanism — see The Protocol |
| an OpenAI-compatible serving path with the ladder walk and metered cost | built and live-tested inside the repository |
| the measured-image / attested-enclave design that would let a user's prompt be private | designed and phased — see Confidential Serving |
| accounts, keys, billing, the public endpoint | not built |
What "auto" would mean
The conductor is the same model the subnet crowns: it sees the request's rendered state and the catalog with prices, emits DELEGATE <model> or RETRY <model> or STOP, and never writes an answer or edits the request. The property that makes the subnet cheat-proof — nothing the conductor writes reaches the worker — is also the property that makes it a router you can put in front of a private prompt only once the confidential-serving design is deployed. Until then, the gateway would be the owner's process reading your prompt in plaintext, and this page will keep saying so.