Chatmodelle
Claude, Gemini, DeepSeek, GLM, Grok und Kimi über die PopNow API mit deinem gewohnten OpenAI-, Anthropic- oder Gemini-SDK aufrufen. Ein API-Schlüssel, tokenbasierte Abrechnung in USD.
Die PopNow API bietet auch Chatmodelle: Claude, Gemini, DeepSeek, GLM, Grok und Kimi. Du rufst sie über die Protokolle auf, die dein Code bereits nutzt – OpenAI Chat Completions und Responses, Anthropic Messages und Gemini generateContent. Die offiziellen SDKs funktionieren also, sobald du die Basis-URL änderst. Sie verwenden denselben sk-popnow--Schlüssel und dasselbe separate API-USD-Guthaben wie API-Bilder, -Video und -Audio. Es beginnt bei $0; lade unter API-Abrechnung auf. Website-Credits können diese Aufrufe nicht bezahlen.
Chataufrufe sind synchron: Die Antwort (oder ein Stream) kommt in derselben HTTP-Antwort zurück. Du musst keinen Task abfragen.
Auf einen Blick
| OpenAI-Basis-URL | https://api.popnow.ai/v1 (Chat Completions, Responses, Modellliste) |
| Anthropic-Basis-URL | https://api.popnow.ai (das SDK hängt /v1/messages an) |
| Gemini | POST https://api.popnow.ai/v1beta/models/{model}:generateContent |
| Schlüssel | Authorization: Bearer sk-popnow-…; die Header x-api-key des Anthropic-SDKs und x-goog-api-key von Google funktionieren ebenfalls |
| Modell-IDs | publisher/model/chat, zum Beispiel anthropic/claude-haiku-5.5/chat. Die vollständige Liste steht weiter unten |
| Preis | Pro Token in USD, ohne Mindestbetrag pro Anfrage. Fehlgeschlagene und abgelehnte Anfragen werden erstattet |
| Streaming | stream: true bei jedem Protokoll (:streamGenerateContent?alt=sse für Gemini) |
Deine erste Chatanfrage
curl https://api.popnow.ai/v1/chat/completions \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-haiku-5.5/chat",
"messages": [
{ "role": "system", "content": "You are a concise, friendly assistant." },
{ "role": "user", "content": "Suggest three names for a kite shop by the sea." }
],
"max_tokens": 512
}'Die Antwort ist ein gewöhnliches chat.completion-Objekt mit choices[0].message.content und usage. Der Antwortheader X-PopNow-Task-Id nennt den Task, der die Abbuchung protokolliert.
OpenAI-SDK
Setze die Client-URL auf https://api.popnow.ai/v1 und übergib deinen PopNow-Schlüssel. Alles andere bleibt gleich.
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.popnow.ai/v1", api_key=os.environ["POPNOW_API_KEY"])
reply = client.chat.completions.create(
model="anthropic/claude-haiku-5.5/chat",
messages=[{"role": "user", "content": "Write a haiku about kites."}],
max_tokens=200,
)
print(reply.choices[0].message.content)import OpenAI from 'openai';
const client = new OpenAI({ baseURL: 'https://api.popnow.ai/v1', apiKey: process.env.POPNOW_API_KEY });
const reply = await client.chat.completions.create({
model: 'google/gemini-3.7-flash/chat',
messages: [{ role: 'user', content: 'Write a haiku about kites.' }],
max_tokens: 200,
});
console.log(reply.choices[0].message.content);Auch die Responses API (client.responses.create) funktioniert, und zwar zustandslos: Sende jedes Mal das gesamte Gespräch in input. previous_response_id liefert 400.
Anthropic-SDK
Das Anthropic-SDK hängt /v1/messages selbst an; die Basis-URL enthält deshalb kein /v1.
import os
import anthropic
client = anthropic.Anthropic(base_url="https://api.popnow.ai", api_key=os.environ["POPNOW_API_KEY"])
message = client.messages.create(
model="anthropic/claude-sonnet-5.5/chat",
max_tokens=512,
messages=[{"role": "user", "content": "Explain idempotency keys in two sentences."}],
)
print(message.content[0].text)Dieser Endpunkt funktioniert mit jedem Chatmodell, nicht nur mit Claude. Fehler kommen im Anthropic-Format {"type": "error", "error": {...}} zurück.
Gemini generateContent
Setze die vollständige Modell-ID in den Pfad; sie darf Schrägstriche enthalten.
curl "https://api.popnow.ai/v1beta/models/google/gemini-3.7-flash/chat:generateContent" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{ "role": "user", "parts": [{ "text": "Name three colours of a sunset." }] }],
"generationConfig": { "maxOutputTokens": 256 }
}'Für einen Stream verwende :streamGenerateContent?alt=sse. Fehler nutzen das Google-Format {"error": {"code", "message", "status"}}.
Streaming
Setze stream: true und lies Server-Sent Events. Bei Chat Completions ist jeder Teil ein chat.completion.chunk, und der Stream endet mit data: [DONE]. Wie bei OpenAI enthält ein Stream keine usage, solange du sie nicht mit stream_options: { "include_usage": true } anforderst. Die Nutzungsdaten kommen dann in einem letzten Teil mit leerem choices-Array.
stream = client.chat.completions.create(
model="anthropic/claude-haiku-5.5/chat",
messages=[{"role": "user", "content": "Count from one to five."}],
max_tokens=100,
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")Tools, JSON-Ausgabe und Parameter
Jedes Modell gibt an, welche Anfragefelder es unterstützt – tools, tool_choice, response_format, temperature, reasoning_effort und weitere. Die Spalte Parameters in der Modelltabelle führt sie auf; GET /v1/models liefert sie in supported_parameters.
- Eine vom Modell nicht unterstützte Sampling-Einstellung (
temperature,top_p,frequency_penalty…) wird verworfen, statt einen Fehler auszulösen, und im AntwortheaderX-PopNow-Ignored-Paramsgenannt. - Ein Wert außerhalb des zulässigen Bereichs wird auf den nächstgelegenen zulässigen Wert gesetzt und in
X-PopNow-Adjusted-Paramsalsname=valuegemeldet. - Jedes andere vom Modell nicht deklarierte Feld liefert
400mitcode: unsupported_parameter;paramnennt das Feld. Das gilt etwa für einen Bildteil, der an ein reines Textmodell gesendet wird.
Modelle und Preise
Preise gelten in USD pro 1 Million Tokens, getrennt für Eingabe und Ausgabe. Bei Modellen mit Cache ist zwischengespeicherte Eingabe günstiger. Manche Modelle berechnen einen höheren Satz, sobald eine Anfrage eine bestimmte Kontextlänge überschreitet; die Schwelle steht unter dem Modellnamen.
| Modell | Modell-ID | Kontext | Eingabe pro 1 Mio. Tokens (USD) | Ausgabe pro 1 Mio. Tokens (USD) | Parameter |
|---|---|---|---|---|---|
| Claude Fable 5Anthropic | anthropic/claude-fable-5/chat | 1MMax. Ausgabe 128K | $9Cache $0.9Cache schreiben $11 | $45 | max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools |
| Claude Haiku 5.5AnthropicEingabe > 100K Tokens pro Anfrage: $0.5 / $2.5 · Cache $0.1 | anthropic/claude-haiku-5.5/chat | 1MMax. Ausgabe 128K | $0.1Cache schreiben $0.1 | $0.5 | max_tokensparallel_tool_callstool_choicetools |
| Claude Opus 4.5Anthropic | anthropic/claude-opus-4.5/chat | 198KMax. Ausgabe 33K | $4.5Cache $0.45Cache schreiben $5.5 | $22.5 | max_tokensparallel_tool_callsreasoning_effortstoptemperaturetool_choicetoolstop_p |
| Claude Opus 4.6Anthropic | anthropic/claude-opus-4.6/chat | 1MMax. Ausgabe 128K | $5Cache $0.5Cache schreiben $6.25 | $25 | max_tokensparallel_tool_callsreasoning_effortstoptemperaturetool_choicetoolstop_p |
| Claude Opus 5Anthropic | anthropic/claude-opus-5/chat | 1MMax. Ausgabe 128K | $4.5Cache $0.45Cache schreiben $5.5 | $22.5 | max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools |
| Claude Opus 5.5Anthropic | anthropic/claude-opus-5.5/chat | 1MMax. Ausgabe 128K | $3.6Cache $0.18Cache schreiben $4.5 | $18 | max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools |
| Claude Sonnet 4.5Anthropic | anthropic/claude-sonnet-4.5/chat | 198KMax. Ausgabe 64K | $2.7Cache $0.27Cache schreiben $3.3 | $13.5 | max_tokensparallel_tool_callsstoptemperaturetool_choicetoolstop_ktop_p |
| Claude Sonnet 4.6Anthropic | anthropic/claude-sonnet-4.6/chat | 1MMax. Ausgabe 64K | $3Cache $0.3Cache schreiben $3.75 | $15 | max_tokensparallel_tool_callsreasoning_effortstoptemperaturetool_choicetoolstop_ktop_p |
| Claude Sonnet 5Anthropic | anthropic/claude-sonnet-5/chat | 1MMax. Ausgabe 64K | $1.9Cache $0.19Cache schreiben $2.375 | $9.5 | max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools |
| Claude Sonnet 5.5Anthropic | anthropic/claude-sonnet-5.5/chat | 1MMax. Ausgabe 128K | $2Cache $0.2Cache schreiben $2.5 | $10 | max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools |
| DeepSeek V4.1 FlashDeepSeek | deepseek/v4.1-flash/chat | 1MMax. Ausgabe 384K | $0.3Cache $0.006 | $1.2 | max_tokensreasoning_effortresponse_formatstoptool_choicetools |
| DeepSeek V4 FlashDeepSeek | deepseek/v4-flash/chat | 1MMax. Ausgabe 66K | $0.44Cache $0.014 | $1.32 | max_tokensreasoning_effortresponse_formatstoptool_choicetools |
| DeepSeek V4 ProDeepSeek | deepseek/v4-pro/chat | 1MMax. Ausgabe 384K | $1.32Cache $0.044 | $3.96 | max_tokensparallel_tool_callsreasoning_effortresponse_formatstoptool_choicetools |
| Gemini 2.5 FlashGoogle | google/gemini-2.5-flash/chat | 1MMax. Ausgabe 66K | $0.285Cache $0.0285 | $2.375 | max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p |
| Gemini 3.1 Pro PreviewGoogleEingabe > 200K Tokens pro Anfrage: $3.8 / $17.1 · Cache $0.38 | google/gemini-3.1-pro-preview/chat | 1MMax. Ausgabe 33K | $1.9Cache $0.19 | $11.4 | max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p |
| Gemini 3.5 Flash-LiteGoogle | google/gemini-3.5-flash-lite/chat | 1MMax. Ausgabe 66K | $0.3Cache $0.03 | $2.5 | max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p |
| Gemini 3.7 FlashGoogle | google/gemini-3.7-flash/chat | 1MMax. Ausgabe 66K | $0.675Cache $0.0675 | $3.375 | max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p |
| Gemini 3 Flash PreviewGoogle | google/gemini-3-flash-preview/chat | 256KMax. Ausgabe 66K | $0.45Cache $0.045 | $2.7 | max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p |
| GLM 5.2Z.ai | zai/glm-5.2/chat | 1MMax. Ausgabe 131K | $0.98Cache $0.182 | $3.08 | max_tokensreasoning_effortresponse_formatstoptemperaturetool_choicetoolstop_p |
| GLM 5.3Z.ai | zai/glm-5.3/chat | 1MMax. Ausgabe 131K | $1.05Cache $0.195 | $3.3 | max_tokensparallel_tool_callsreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p |
| GLM 5.3 FlashZ.ai | zai/glm-5.3-flash/chat | 1MMax. Ausgabe 131K | $0.1275Cache $0.0255 | $0.425 | max_tokensreasoning_effortresponse_formatstoptemperaturetool_choicetoolstop_p |
| Grok 4.3xAIEingabe ≥ 200K Tokens pro Anfrage: $2.5 / $5 · Cache $0.4 | xai/grok-4.3/chat | 1MMax. Ausgabe 900K | $1.25Cache $0.2 | $2.5 | max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p |
| Grok 4.5xAIEingabe ≥ 200K Tokens pro Anfrage: $4 / $12 · Cache $0.6 | xai/grok-4.5/chat | 500KMax. Ausgabe 450K | $2Cache $0.3 | $6 | max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p |
| Grok 4.6xAIEingabe ≥ 200K Tokens pro Anfrage: $4 / $12 · Cache $1 | xai/grok-4.6/chat | 500KMax. Ausgabe 450K | $2Cache $0.5 | $6 | max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p |
| Grok 4.7xAIEingabe ≥ 200K Tokens pro Anfrage: $4 / $12 · Cache $1 | xai/grok-4.7/chat | 500KMax. Ausgabe 450K | $2Cache $0.5 | $6 | max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p |
| Kimi K3Moonshot AI | moonshot/kimi-k3/chat | 1MMax. Ausgabe 1M | $2.7Cache $0.3 | $13.5 | max_tokensreasoning_effortresponse_formatstoptool_choicetools |
Dieselbe Liste mit Preisen, Kontextlänge und unterstützten Parametern ist über die API verfügbar:
curl "https://api.popnow.ai/v1/models?modality=text" \
-H "Authorization: Bearer $POPNOW_API_KEY"So wird eine Chatanfrage abgerechnet
- Reservieren. Bei Annahme der Anfrage wird der höchstmögliche Preis vom Guthaben zurückgelegt, berechnet aus der Eingabe und
max_tokens. Lässt dumax_tokensweg, zählt die maximale Ausgabelänge des Modells. Setze den Wert daher, um Reservierungen klein zu halten. - Abrechnen. Am Ende der Antwort zahlst du die tatsächlich genutzten Tokens, in USD und ohne Mindestbetrag pro Anfrage. Der Rest der Reservierung wird freigegeben.
- Erstatten. Schlägt eine Anfrage fehl oder lehnt das Modell sie ab, wird sie vollständig erstattet.
Reicht das Guthaben nicht für die Reservierung oder würde ein Ausgabelimit des Schlüssels überschritten, kommt 402, bevor etwas an das Modell gesendet wird. Den genauen Betrag liest du am Task aus X-PopNow-Task-Id mit GET /api/v1/jobs/recordInfo: costUsd ist der USD-Dezimalstring für Anzeige und Buchhaltung. Alte Credit-Felder können ebenfalls vorkommen; runde USD-Abbuchungen nicht auf ganze Credits.
Lange Antworten und Fehler
- Lange Aufrufe ohne Streaming. Dauert die Antwort länger als etwa 30 Sekunden, werden zuerst der Status
200und der HeaderX-PopNow-Keepalive: 1gesendet, danach alle 15 Sekunden ein Zeilenumbruch und schließlich der JSON-Body. Ein späterer Fehler kommt als übliches Fehlerobjekt des Protokolls im200-Body an. Prüfe daher auf einenerror-Schlüssel, wenn dieser Header vorhanden ist. Streaming vermeidet das. 404model_not_found. Die Modell-ID existiert nicht. Der Fehler nennt das ähnlichste aufrufbare Chatmodell.400mitparam: model. Die ID gehört zu einem Bild-, Video- oder Audiomodell; diese laufen als Tasks.400content_rejected. Die Inhaltsregeln des Modells haben die Anfrage abgelehnt. Es wird nichts berechnet.402. Nicht genug API-USD für die Reservierung oder ein Ausgabelimit des Schlüssels. Siehe API-Abrechnung.
Datenschutz
Anfragen werden so an das Modell gesendet, wie du sie geschrieben hast; PopNow fügt keinen eigenen Systemprompt hinzu. Es gelten die Nutzungsregeln des jeweiligen Modells. Nachrichtentexte werden nach Abschluss der Abrechnung nicht aufbewahrt.

