Modelos de chat
Chame Claude, Gemini, DeepSeek, GLM, Grok e Kimi pela API PopNow com o SDK da OpenAI, da Anthropic ou do Gemini que você já usa. Uma chave de API, preço por token em USD.
A API PopNow também executa modelos de chat: Claude, Gemini, DeepSeek, GLM, Grok e Kimi. Você os chama pelos protocolos que o seu código já fala — OpenAI Chat Completions e Responses, Anthropic Messages e generateContent do Gemini —, então os SDKs oficiais funcionam assim que você troca a URL base. Eles usam a mesma chave sk-popnow- e o mesmo saldo separado da API em USD das imagens, dos vídeos e dos áudios da API. Ele começa em $0; adicione fundos em API billing. Créditos do site não financiam essas chamadas.
As chamadas de chat são síncronas: você recebe a resposta (ou um stream) na mesma resposta HTTP. Não há tarefa para consultar.
Visão geral
| URL base da OpenAI | https://api.popnow.ai/v1 (Chat Completions, Responses, lista de modelos) |
| URL base da Anthropic | https://api.popnow.ai (o SDK acrescenta /v1/messages) |
| Gemini | POST https://api.popnow.ai/v1beta/models/{model}:generateContent |
| Chave | Authorization: Bearer sk-popnow-…; os cabeçalhos x-api-key do SDK da Anthropic e x-goog-api-key do Google também funcionam |
| IDs de modelo | publisher/model/chat, por exemplo anthropic/claude-haiku-5.5/chat. A lista completa está abaixo |
| Preço | Por token, em USD, sem mínimo por requisição. Requisições que falham ou são recusadas são reembolsadas |
| Streaming | stream: true em todos os protocolos (:streamGenerateContent?alt=sse para o Gemini) |
Sua primeira requisição de chat
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
}'A resposta é um objeto chat.completion padrão, com choices[0].message.content e usage. O cabeçalho de resposta X-PopNow-Task-Id indica a tarefa que registrou a cobrança.
SDK da OpenAI
Aponte o cliente para https://api.popnow.ai/v1 e passe a sua chave da PopNow. Nada mais muda.
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);A API Responses (client.responses.create) também funciona, na forma sem estado: envie a conversa inteira em input a cada vez. previous_response_id retorna 400.
SDK da Anthropic
O SDK da Anthropic acrescenta /v1/messages por conta própria, então a URL base não tem /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)Qualquer modelo de chat funciona neste endpoint, não só o Claude. Os erros voltam no formato {"type": "error", "error": {...}} da Anthropic.
Gemini generateContent
Coloque o ID completo do modelo no caminho; ele pode conter barras.
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 }
}'Use :streamGenerateContent?alt=sse para receber um stream. Os erros seguem o formato {"error": {"code", "message", "status"}} do Google.
Streaming
Defina stream: true e leia os Server-Sent Events. No Chat Completions, cada bloco é um chat.completion.chunk e o stream termina com data: [DONE]. Como na OpenAI, um stream não traz usage a menos que você peça com stream_options: { "include_usage": true }; nesse caso, o uso chega em um último bloco com um array choices vazio.
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="")Ferramentas, saída JSON e parâmetros
Cada modelo declara os campos de requisição que aceita — tools, tool_choice, response_format, temperature, reasoning_effort e assim por diante. A coluna Parameters da tabela de modelos os lista, e GET /v1/models os devolve em supported_parameters.
- Uma configuração de amostragem que o modelo não aceita (
temperature,top_p,frequency_penalty…) é descartada em vez de falhar, e aparece no cabeçalho de respostaX-PopNow-Ignored-Params. - Um valor fora da faixa do modelo é ajustado para o valor aceito mais próximo e informado em
X-PopNow-Adjusted-Paramscomoname=value. - Qualquer outro campo que o modelo não declara retorna
400comcode: unsupported_parametereparamindicando o campo, por exemplo uma parte de imagem enviada a um modelo somente de texto.
Modelos e preços
Use preços em USD por 1 milhão de tokens, para entrada e saída separadamente; a entrada em cache é mais barata nos modelos que fazem cache. Alguns modelos cobram uma taxa maior quando a requisição passa de um limite de contexto longo, mostrado abaixo do nome do modelo.
| Modelo | ID do modelo | Contexto | Entrada por milhão de tokens (USD) | Saída por milhão de tokens (USD) | Parâmetros |
|---|---|---|---|---|---|
| Claude Fable 5Anthropic | anthropic/claude-fable-5/chat | 1MSaída máx. 128K | $9cache $0.9gravação em cache $11 | $45 | max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools |
| Claude Haiku 5.5AnthropicEntrada > 100K tokens por solicitação: $0.5 / $2.5 · cache $0.1 | anthropic/claude-haiku-5.5/chat | 1MSaída máx. 128K | $0.1gravação em cache $0.1 | $0.5 | max_tokensparallel_tool_callstool_choicetools |
| Claude Opus 4.5Anthropic | anthropic/claude-opus-4.5/chat | 198KSaída máx. 33K | $4.5cache $0.45gravação em cache $5.5 | $22.5 | max_tokensparallel_tool_callsreasoning_effortstoptemperaturetool_choicetoolstop_p |
| Claude Opus 4.6Anthropic | anthropic/claude-opus-4.6/chat | 1MSaída máx. 128K | $5cache $0.5gravação em cache $6.25 | $25 | max_tokensparallel_tool_callsreasoning_effortstoptemperaturetool_choicetoolstop_p |
| Claude Opus 5Anthropic | anthropic/claude-opus-5/chat | 1MSaída máx. 128K | $4.5cache $0.45gravação em cache $5.5 | $22.5 | max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools |
| Claude Opus 5.5Anthropic | anthropic/claude-opus-5.5/chat | 1MSaída máx. 128K | $3.6cache $0.18gravação em cache $4.5 | $18 | max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools |
| Claude Sonnet 4.5Anthropic | anthropic/claude-sonnet-4.5/chat | 198KSaída máx. 64K | $2.7cache $0.27gravação em cache $3.3 | $13.5 | max_tokensparallel_tool_callsstoptemperaturetool_choicetoolstop_ktop_p |
| Claude Sonnet 4.6Anthropic | anthropic/claude-sonnet-4.6/chat | 1MSaída máx. 64K | $3cache $0.3gravação em cache $3.75 | $15 | max_tokensparallel_tool_callsreasoning_effortstoptemperaturetool_choicetoolstop_ktop_p |
| Claude Sonnet 5Anthropic | anthropic/claude-sonnet-5/chat | 1MSaída máx. 64K | $1.9cache $0.19gravação em cache $2.375 | $9.5 | max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools |
| Claude Sonnet 5.5Anthropic | anthropic/claude-sonnet-5.5/chat | 1MSaída máx. 128K | $2cache $0.2gravação em cache $2.5 | $10 | max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools |
| DeepSeek V4.1 FlashDeepSeek | deepseek/v4.1-flash/chat | 1MSaída máx. 384K | $0.3cache $0.006 | $1.2 | max_tokensreasoning_effortresponse_formatstoptool_choicetools |
| DeepSeek V4 FlashDeepSeek | deepseek/v4-flash/chat | 1MSaída máx. 66K | $0.44cache $0.014 | $1.32 | max_tokensreasoning_effortresponse_formatstoptool_choicetools |
| DeepSeek V4 ProDeepSeek | deepseek/v4-pro/chat | 1MSaída máx. 384K | $1.32cache $0.044 | $3.96 | max_tokensparallel_tool_callsreasoning_effortresponse_formatstoptool_choicetools |
| Gemini 2.5 FlashGoogle | google/gemini-2.5-flash/chat | 1MSaída máx. 66K | $0.285cache $0.0285 | $2.375 | max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p |
| Gemini 3.1 Pro PreviewGoogleEntrada > 200K tokens por solicitação: $3.8 / $17.1 · cache $0.38 | google/gemini-3.1-pro-preview/chat | 1MSaída máx. 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 | 1MSaída máx. 66K | $0.3cache $0.03 | $2.5 | max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p |
| Gemini 3.7 FlashGoogle | google/gemini-3.7-flash/chat | 1MSaída máx. 66K | $0.675cache $0.0675 | $3.375 | max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p |
| Gemini 3 Flash PreviewGoogle | google/gemini-3-flash-preview/chat | 256KSaída máx. 66K | $0.45cache $0.045 | $2.7 | max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p |
| GLM 5.2Z.ai | zai/glm-5.2/chat | 1MSaída máx. 131K | $0.98cache $0.182 | $3.08 | max_tokensreasoning_effortresponse_formatstoptemperaturetool_choicetoolstop_p |
| GLM 5.3Z.ai | zai/glm-5.3/chat | 1MSaída máx. 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 | 1MSaída máx. 131K | $0.1275cache $0.0255 | $0.425 | max_tokensreasoning_effortresponse_formatstoptemperaturetool_choicetoolstop_p |
| Grok 4.3xAIEntrada ≥ 200K tokens por solicitação: $2.5 / $5 · cache $0.4 | xai/grok-4.3/chat | 1MSaída máx. 900K | $1.25cache $0.2 | $2.5 | max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p |
| Grok 4.5xAIEntrada ≥ 200K tokens por solicitação: $4 / $12 · cache $0.6 | xai/grok-4.5/chat | 500KSaída máx. 450K | $2cache $0.3 | $6 | max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p |
| Grok 4.6xAIEntrada ≥ 200K tokens por solicitação: $4 / $12 · cache $1 | xai/grok-4.6/chat | 500KSaída máx. 450K | $2cache $0.5 | $6 | max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p |
| Grok 4.7xAIEntrada ≥ 200K tokens por solicitação: $4 / $12 · cache $1 | xai/grok-4.7/chat | 500KSaída máx. 450K | $2cache $0.5 | $6 | max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p |
| Kimi K3Moonshot AI | moonshot/kimi-k3/chat | 1MSaída máx. 1M | $2.7cache $0.3 | $13.5 | max_tokensreasoning_effortresponse_formatstoptool_choicetools |
A mesma lista está disponível pela API, com preços, tamanho de contexto e parâmetros aceitos:
curl "https://api.popnow.ai/v1/models?modality=text" \
-H "Authorization: Bearer $POPNOW_API_KEY"Como uma requisição de chat é cobrada
- Reserva. Quando a requisição é aceita, o máximo que ela pode custar é separado do seu saldo, calculado a partir da entrada e de
max_tokens. Se você deixarmax_tokensde fora, usa-se a saída máxima do modelo; por isso, defina-o para manter as reservas pequenas. - Cobrança. Quando a resposta termina, você paga pelos tokens realmente usados, em USD, sem mínimo por requisição. O restante da reserva é liberado.
- Reembolso. Uma requisição que falha, ou que o modelo recusa, é reembolsada integralmente.
Um saldo menor que a reserva, ou uma chave com um limite de gasto que seria ultrapassado, retorna 402 antes de qualquer coisa ser enviada ao modelo. Para ver a cobrança exata, leia a tarefa indicada em X-PopNow-Task-Id com GET /api/v1/jobs/recordInfo: costUsd é a string decimal em USD a mostrar e usar na contabilidade. Campos antigos de créditos também podem aparecer; não arredonde cobranças em USD para créditos inteiros.
Respostas longas e erros
- Chamadas longas sem streaming. Se a resposta demorar mais de cerca de 30 segundos, são enviados primeiro o status
200e um cabeçalhoX-PopNow-Keepalive: 1, depois uma quebra de linha a cada 15 segundos, e por fim o corpo JSON. Uma falha depois desse ponto chega como o objeto de erro habitual do protocolo dentro do corpo200; por isso, quando esse cabeçalho estiver presente, verifique se há uma chaveerror. O streaming evita isso. 404model_not_found. O ID do modelo não existe. O erro indica o modelo de chat mais próximo que você pode chamar.400comparam: model. O ID pertence a um modelo de imagem, vídeo ou áudio; esses rodam como tarefas.400content_rejected. A política de conteúdo do próprio modelo recusou a requisição. Nada é cobrado.402. USD insuficientes na API para a reserva, ou limite de gasto da chave. Veja Cobrança da API.
Privacidade
As requisições são enviadas ao modelo exatamente como você as escreveu; a PopNow não acrescenta prompt de sistema próprio. A política de uso de cada modelo se aplica. O texto das mensagens não é guardado depois que a cobrança é liquidada.

