API-referentie
apikey.sh spreekt het OpenAI-protocol. Elke SDK, elk framework of elke tool die al met OpenAI werkt, werkt hier na het aanpassen van base_url.Quickstart
Maak een key aan in het dashboard, zet die in een environment variable en wijs de base URL aan:from openai import OpenAI
client = OpenAI(
api_key="sk-ak-...", # your key from apikey.sh
base_url="https://apikey.sh/v1", # change only this line
)
resp = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)Base URL
Dezelfde API key werkt op elk domein hieronder — kies wat je het handigst vindt.De Anthropic SDK gebruikt de base URL zonder /v1 (bijvoorbeeld https://apikey.sh).
https://apikey.sh/v1livehttps://api.onie.net/v1liveAuthenticatie
Stuur je key mee in een header:
Authorization: Bearer sk-ak-... # or, with the Anthropic SDK: x-api-key: sk-ak-...De key wordt maar één keer getoond bij het aanmaken. Kwijt? Maak een nieuwe aan en trek de oude in — intrekken werkt direct.
Endpoints
| POST | /v1/chat/completions | Completions genereren (ondersteunt SSE streaming en tool calling) |
| POST | /v1/embeddings | Embeddings maken voor RAG en semantisch zoeken |
| POST | /v1/images/generations | Afbeeldingen genereren (gpt-image-*-modellen) |
| GET | /v1/models | Modellen tonen die beschikbaar zijn voor de huidige key |
Streaming
Voeg stream: true toe om tokens realtime via SSE te ontvangen:
stream = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "Write a short poem"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")Prompt caching
Op ondersteunde modellen (de GPT-5.x-lijn) wordt de herhaalde prefix van je prompt automatisch gecachet en afgerekend tegen het cachetarief — ruwweg 90% goedkoper dan verse tokens. Je hoeft niets in je code te wijzigen; het aantal gecachete tokens zie je onder Gebruik in het dashboard.Responses bevatten usage.prompt_tokens_details.cached_tokens, zodat je het zelf kunt controleren.
Limieten per key
Elke key kan een eigen uitgavenlimiet en lijst met toegestane modellen hebben. Dat is de veilige manier om keys te delen tussen projecten of collega's zonder dat iemand het budget leegtrekt. Instellen doe je via Dashboard → API keys.
Foutcodes
401 | Ongeldige key, ingetrokken key of geblokkeerd account |
402 | Geen tegoed meer — waardeer op in het dashboard |
403 | Model staat niet in de lijst van deze key |
429 | Rate limit van de key overschreden |
5xx | Fout bij de upstream provider — probeer het over een paar seconden opnieuw |