Send an OpenAI-shaped request naming a model. Nozzle resolves the name to a binding and relays it: a platform credential, a shared pod, your own key, or a GPU that belongs only to you. Your code never learns which. Every call lands in one cost ledger, attributed to tenant, project, key and request.
The OpenAI-shaped surface lives under /v1, the Anthropic drop-in under /anthropic. Same key, same ledger, same headers telling you what it cost.
X-Nozzle-Cost-Micro-Cents on every buffered reply.curl https://api.opennozzle.com/v1/chat/completions \
-H "Authorization: Bearer pk_live_…" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-4.1-mini", "messages": [{"role": "user", "content": "Hello"}]}'from openai import OpenAI
client = OpenAI(api_key="pk_live_…", base_url="https://api.opennozzle.com/v1")
client.chat.completions.create(model="claude-haiku-4-5",
messages=[{"role": "user", "content": "Hello"}])Whose credential pays the upstream, and who gets the capacity. Move a model between modes chasing price, latency or data residency without touching a line of caller code.
Every closed model without an account to manage.
Open weights served once, called by everyone.
When the tokens must land on your invoice.
A machine nobody else touches.
Nozzle does not mark up GPU time. You pay for platform access; tokens and GPU-hours pass through at the cheapest rate we can source.