API-Referenz
apikey.sh spricht das OpenAI-Protokoll. Jedes SDK, Framework oder Tool, das bereits mit OpenAI läuft, funktioniert hier nach dem Ändern der base_url.Quickstart
Lege im Dashboard einen Key an, hinterlege ihn in einer Umgebungsvariablen und setze die Base URL: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
Derselbe API-Key funktioniert auf allen Domains unten — nimm die, die dir am besten passt.Das Anthropic SDK nutzt die Base URL ohne /v1 (zum Beispiel https://apikey.sh).
https://apikey.sh/v1livehttps://api.onie.net/v1liveAuthentifizierung
Sende deinen Key im Header:
Authorization: Bearer sk-ak-... # or, with the Anthropic SDK: x-api-key: sk-ak-...Der Key wird nur einmal beim Anlegen angezeigt. Geht er verloren, lege einen neuen an und widerrufe den alten — der Widerruf greift sofort.
Endpoints
| POST | /v1/chat/completions | Completions erzeugen (unterstützt SSE-Streaming und Tool Calling) |
| POST | /v1/embeddings | Embeddings für RAG und semantische Suche erstellen |
| POST | /v1/images/generations | Bilder generieren (gpt-image-*-Modelle) |
| GET | /v1/models | Modelle auflisten, die dieser Key nutzen darf |
Streaming
Setze stream: true, um Tokens in Echtzeit per SSE zu empfangen:
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
Bei unterstützten Modellen (der GPT-5.x-Reihe) wird das wiederholte Präfix deines Prompts automatisch gecacht und zum Cache-Tarif abgerechnet — rund 90 % günstiger als frische Tokens. Am Code ändert sich nichts; die gecachten Tokens siehst du im Dashboard unter Nutzung.Die Responses enthalten usage.prompt_tokens_details.cached_tokens, damit du selbst nachrechnen kannst.
Limits pro Key
Jeder Key kann ein eigenes Ausgabenlimit und eine Liste erlaubter Modelle haben. So teilst du Keys sicher zwischen Projekten oder Teamkollegen, ohne dass jemand das Budget leert. Einstellbar unter Dashboard → API-Keys.
Fehlercodes
401 | Ungültiger oder widerrufener Key oder gesperrtes Konto |
402 | Guthaben aufgebraucht — im Dashboard aufladen |
403 | Modell ist für diesen Key nicht freigegeben |
429 | Rate-Limit des Keys überschritten |
5xx | Fehler beim Upstream-Anbieter — in ein paar Sekunden erneut versuchen |