PopNowAPI-Doku
Chat und kompatible APIs
Hauptinhalt

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-URLhttps://api.popnow.ai/v1 (Chat Completions, Responses, Modellliste)
Anthropic-Basis-URLhttps://api.popnow.ai (das SDK hängt /v1/messages an)
GeminiPOST https://api.popnow.ai/v1beta/models/{model}:generateContent
SchlüsselAuthorization: Bearer sk-popnow-…; die Header x-api-key des Anthropic-SDKs und x-goog-api-key von Google funktionieren ebenfalls
Modell-IDspublisher/model/chat, zum Beispiel anthropic/claude-haiku-5.5/chat. Die vollständige Liste steht weiter unten
PreisPro Token in USD, ohne Mindestbetrag pro Anfrage. Fehlgeschlagene und abgelehnte Anfragen werden erstattet
Streamingstream: 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.

Python
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)
JavaScript (Node.js 18+)
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.

Python
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.

Python
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 Antwortheader X-PopNow-Ignored-Params genannt.
  • Ein Wert außerhalb des zulässigen Bereichs wird auf den nächstgelegenen zulässigen Wert gesetzt und in X-PopNow-Adjusted-Params als name=value gemeldet.
  • Jedes andere vom Modell nicht deklarierte Feld liefert 400 mit code: unsupported_parameter; param nennt 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.

ModellModell-IDKontextEingabe pro 1 Mio. Tokens (USD)Ausgabe pro 1 Mio. Tokens (USD)Parameter
Claude Fable 5Anthropicanthropic/claude-fable-5/chat1MMax. Ausgabe 128K$9Cache $0.9Cache schreiben $11$45max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools
Claude Haiku 5.5AnthropicEingabe > 100K Tokens pro Anfrage: $0.5 / $2.5 · Cache $0.1anthropic/claude-haiku-5.5/chat1MMax. Ausgabe 128K$0.1Cache schreiben $0.1$0.5max_tokensparallel_tool_callstool_choicetools
Claude Opus 4.5Anthropicanthropic/claude-opus-4.5/chat198KMax. Ausgabe 33K$4.5Cache $0.45Cache schreiben $5.5$22.5max_tokensparallel_tool_callsreasoning_effortstoptemperaturetool_choicetoolstop_p
Claude Opus 4.6Anthropicanthropic/claude-opus-4.6/chat1MMax. Ausgabe 128K$5Cache $0.5Cache schreiben $6.25$25max_tokensparallel_tool_callsreasoning_effortstoptemperaturetool_choicetoolstop_p
Claude Opus 5Anthropicanthropic/claude-opus-5/chat1MMax. Ausgabe 128K$4.5Cache $0.45Cache schreiben $5.5$22.5max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools
Claude Opus 5.5Anthropicanthropic/claude-opus-5.5/chat1MMax. Ausgabe 128K$3.6Cache $0.18Cache schreiben $4.5$18max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools
Claude Sonnet 4.5Anthropicanthropic/claude-sonnet-4.5/chat198KMax. Ausgabe 64K$2.7Cache $0.27Cache schreiben $3.3$13.5max_tokensparallel_tool_callsstoptemperaturetool_choicetoolstop_ktop_p
Claude Sonnet 4.6Anthropicanthropic/claude-sonnet-4.6/chat1MMax. Ausgabe 64K$3Cache $0.3Cache schreiben $3.75$15max_tokensparallel_tool_callsreasoning_effortstoptemperaturetool_choicetoolstop_ktop_p
Claude Sonnet 5Anthropicanthropic/claude-sonnet-5/chat1MMax. Ausgabe 64K$1.9Cache $0.19Cache schreiben $2.375$9.5max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools
Claude Sonnet 5.5Anthropicanthropic/claude-sonnet-5.5/chat1MMax. Ausgabe 128K$2Cache $0.2Cache schreiben $2.5$10max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools
DeepSeek V4.1 FlashDeepSeekdeepseek/v4.1-flash/chat1MMax. Ausgabe 384K$0.3Cache $0.006$1.2max_tokensreasoning_effortresponse_formatstoptool_choicetools
DeepSeek V4 FlashDeepSeekdeepseek/v4-flash/chat1MMax. Ausgabe 66K$0.44Cache $0.014$1.32max_tokensreasoning_effortresponse_formatstoptool_choicetools
DeepSeek V4 ProDeepSeekdeepseek/v4-pro/chat1MMax. Ausgabe 384K$1.32Cache $0.044$3.96max_tokensparallel_tool_callsreasoning_effortresponse_formatstoptool_choicetools
Gemini 2.5 FlashGooglegoogle/gemini-2.5-flash/chat1MMax. Ausgabe 66K$0.285Cache $0.0285$2.375max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
Gemini 3.1 Pro PreviewGoogleEingabe > 200K Tokens pro Anfrage: $3.8 / $17.1 · Cache $0.38google/gemini-3.1-pro-preview/chat1MMax. Ausgabe 33K$1.9Cache $0.19$11.4max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
Gemini 3.5 Flash-LiteGooglegoogle/gemini-3.5-flash-lite/chat1MMax. Ausgabe 66K$0.3Cache $0.03$2.5max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
Gemini 3.7 FlashGooglegoogle/gemini-3.7-flash/chat1MMax. Ausgabe 66K$0.675Cache $0.0675$3.375max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
Gemini 3 Flash PreviewGooglegoogle/gemini-3-flash-preview/chat256KMax. Ausgabe 66K$0.45Cache $0.045$2.7max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
GLM 5.2Z.aizai/glm-5.2/chat1MMax. Ausgabe 131K$0.98Cache $0.182$3.08max_tokensreasoning_effortresponse_formatstoptemperaturetool_choicetoolstop_p
GLM 5.3Z.aizai/glm-5.3/chat1MMax. Ausgabe 131K$1.05Cache $0.195$3.3max_tokensparallel_tool_callsreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
GLM 5.3 FlashZ.aizai/glm-5.3-flash/chat1MMax. Ausgabe 131K$0.1275Cache $0.0255$0.425max_tokensreasoning_effortresponse_formatstoptemperaturetool_choicetoolstop_p
Grok 4.3xAIEingabe ≥ 200K Tokens pro Anfrage: $2.5 / $5 · Cache $0.4xai/grok-4.3/chat1MMax. Ausgabe 900K$1.25Cache $0.2$2.5max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p
Grok 4.5xAIEingabe ≥ 200K Tokens pro Anfrage: $4 / $12 · Cache $0.6xai/grok-4.5/chat500KMax. Ausgabe 450K$2Cache $0.3$6max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p
Grok 4.6xAIEingabe ≥ 200K Tokens pro Anfrage: $4 / $12 · Cache $1xai/grok-4.6/chat500KMax. Ausgabe 450K$2Cache $0.5$6max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p
Grok 4.7xAIEingabe ≥ 200K Tokens pro Anfrage: $4 / $12 · Cache $1xai/grok-4.7/chat500KMax. Ausgabe 450K$2Cache $0.5$6max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p
Kimi K3Moonshot AImoonshot/kimi-k3/chat1MMax. Ausgabe 1M$2.7Cache $0.3$13.5max_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

  1. Reservieren. Bei Annahme der Anfrage wird der höchstmögliche Preis vom Guthaben zurückgelegt, berechnet aus der Eingabe und max_tokens. Lässt du max_tokens weg, zählt die maximale Ausgabelänge des Modells. Setze den Wert daher, um Reservierungen klein zu halten.
  2. 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.
  3. 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 200 und der Header X-PopNow-Keepalive: 1 gesendet, danach alle 15 Sekunden ein Zeilenumbruch und schließlich der JSON-Body. Ein späterer Fehler kommt als übliches Fehlerobjekt des Protokolls im 200-Body an. Prüfe daher auf einen error-Schlüssel, wenn dieser Header vorhanden ist. Streaming vermeidet das.
  • 404 model_not_found. Die Modell-ID existiert nicht. Der Fehler nennt das ähnlichste aufrufbare Chatmodell.
  • 400 mit param: model. Die ID gehört zu einem Bild-, Video- oder Audiomodell; diese laufen als Tasks.
  • 400 content_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.

Auf dieser Seite