Your own provider keys

The endpoint runs a request in one of two ways.

On a model we supply. You send pirol/… as the model, we pay the provider, and you pay us. Nothing else is needed.

On your own contract. You store an OpenAI or Anthropic key in the console, send that provider's model name, and the provider bills you directly. We charge nothing for the tokens — only for what is genuinely ours, such as transcription.

Both go through https://endpoint.pirol.ai, and the response shape is the same.

Storing a key

In the console, under Provider keys. The key is encrypted at rest and is only ever decrypted to make your request.

Once stored, that provider's models appear in /v1/models alongside ours, and you can address them by their own names:

{ "model": "gpt-5-mini", "messages": [ … ] }

Why do it this way

What you get on top of talking to the provider directly:

  • One place that logs what was spent, across providers
  • One base URL in your code, whichever model you end up using

The straight-through case

You can also send a provider's key as the bearer token instead of a ep_live_… key. Then nothing of ours is involved beyond passing it on: no usage record, no credit. It is a plain proxy, and the provider's answer comes back untouched.