Skip to content

Change the base URL. Keep the SDK, the code and the response shape.

Get a key

One endpoint, every provider, one bill

Your OpenAI client already speaks this API.

Point it at a different base URL and the model name picks the provider. No adapter per vendor, no second SDK, no key of your own scattered across four services — and a per-request log that says what each call actually cost.

Your first request

curl https://ai-gateway.piskes.com/v1/chat/completions \
  -H "Authorization: Bearer $PISKES_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [{"role": "user", "content": "Say hello in five words."}]
  }'
1Endpoint for every provider
5%Fee on your own provider key
$5Smallest top-up
0Per-seat charges, ever

The shape of it

Four facts, and they are the four an engineer checks first.

Everything else an AI gateway sells is a dashboard you open once.

A curl request and its streamed response side by side

OpenAI-compatible, not OpenAI-inspired

Chat completions, embeddings and the model list, in the request and response shapes the official SDKs already send and parse. Streaming is server-sent events terminated by [DONE], the same as you handle today. The integration is a base URL and a key, which is the whole reason a gateway is worth having rather than a per-vendor adapter you maintain.

The price list is a public page

Context window, capabilities and per-million input and output price for every model, readable before you have an account.

One row per request

Model, provider, tokens both ways, cost, latency and status. Charted by day and by model, and not a rollup — the row is kept.

The key never reaches a browser

Provider credentials live in one service. Your key spends credit and cannot mint itself a replacement or read your billing.

One request routed to a customer key and one to the platform key

Bring your own key

Already have an OpenAI contract? Keep it.

Store your own provider key and the request goes out on it. You pay your provider directly and this gateway charges 5% of what the call would have cost on credits — the routing, the log and the one API, without buying the tokens twice.

Per provider, not all or nothingBring a key for the two providers you have a deal with and pay credits for the rest. Same endpoint either way.
A broken key is a refusal, not a surpriseIf your key cannot serve a request, the call is refused with its own error code rather than silently switching to credits and billing you for it.
Stored encrypted, shown as four charactersThe key list returns a hint. There is no endpoint anywhere that reads a stored key back out.

Against the two things you would otherwise do

What each of these actually costs you.

A client per providerA self-hosted proxyPiskes AI Gateway
Adding a fifth modelA new SDK and a new adapterA config change and a deployA different string
Where the provider keys liveIn four servicesIn your secret storeIn one service, never a browser
Per-request cost visibilityFour invoices, monthlyWhatever you builtA row per call, charted
Who is on call for itYouYouNobody on your side
Using a contract you already haveYesYesYes, at 5%
Per-seat chargen/an/aNone

What is on the tin

60 requests a minute per key120 a minute per accountRate headers on every responseStreaming settles on real usageQuickstart in curl, Python, Node, TSA browser playground on your own balance

Pricing

Two ways to pay, and neither one counts your team.

Per-seat pricing on an API is a charge for having colleagues.

Your own key

For a team that already has a provider contract worth keeping.

5% of what the call would have cost

  • Pay your provider directly
  • Per-provider, mixed with credits
  • Same endpoint, same logs
  • Keys stored encrypted, never readable back

Add a key

Prices in USD. Credit is bought in advance and spent per request; nothing renews and nothing expires on a monthly cycle. The exact per-model numbers live on gateway.piskes.com/models — this page does not restate them, so the two can never disagree.

Questions

The ones asked before the integration, not after.

Do I have to change my code?

A base URL and a key. The request bodies, the response shapes and the streaming format are the ones your client already sends and parses, which is what "OpenAI-compatible" has to mean to be worth anything.

What happens when I run out of credit?

The request is refused with a specific code before it reaches a provider, so you get an error you can branch on rather than a silent failure or an unexpected invoice.

Which models can I actually call?

Whatever the gateway currently holds a key for, listed with prices on a public page that is generated from the same registry the router uses. It is not a brochure list.

Can I see what a specific call cost?

Yes. Every completion writes a row with its tokens, its cost, its latency and its status, and the dashboard charts them by day and by model.

Is there a free tier?

No, and saying so is cheaper than an asterisk. The smallest top-up is $5, which is a lot of small completions.

Change one line. Send one request. Read what it cost.

That is the whole evaluation, and it takes about as long as reading this page. The model list and the docs are open without an account; the key takes a minute after you have one — same Piskes sign-in as every other app on the platform.

No subscription, no seats, no minimum beyond a $5 top-up.