PopNowDocs da API
Chat e APIs compatíveis
Conteúdo principal

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 OpenAIhttps://api.popnow.ai/v1 (Chat Completions, Responses, lista de modelos)
URL base da Anthropichttps://api.popnow.ai (o SDK acrescenta /v1/messages)
GeminiPOST https://api.popnow.ai/v1beta/models/{model}:generateContent
ChaveAuthorization: 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 modelopublisher/model/chat, por exemplo anthropic/claude-haiku-5.5/chat. A lista completa está abaixo
PreçoPor token, em USD, sem mínimo por requisição. Requisições que falham ou são recusadas são reembolsadas
Streamingstream: 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.

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);

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.

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)

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.

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="")

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 resposta X-PopNow-Ignored-Params.
  • Um valor fora da faixa do modelo é ajustado para o valor aceito mais próximo e informado em X-PopNow-Adjusted-Params como name=value.
  • Qualquer outro campo que o modelo não declara retorna 400 com code: unsupported_parameter e param indicando 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.

ModeloID do modeloContextoEntrada por milhão de tokens (USD)Saída por milhão de tokens (USD)Parâmetros
Claude Fable 5Anthropicanthropic/claude-fable-5/chat1MSaída máx. 128K$9cache $0.9gravação em cache $11$45max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools
Claude Haiku 5.5AnthropicEntrada > 100K tokens por solicitação: $0.5 / $2.5 · cache $0.1anthropic/claude-haiku-5.5/chat1MSaída máx. 128K$0.1gravação em cache $0.1$0.5max_tokensparallel_tool_callstool_choicetools
Claude Opus 4.5Anthropicanthropic/claude-opus-4.5/chat198KSaída máx. 33K$4.5cache $0.45gravação em cache $5.5$22.5max_tokensparallel_tool_callsreasoning_effortstoptemperaturetool_choicetoolstop_p
Claude Opus 4.6Anthropicanthropic/claude-opus-4.6/chat1MSaída máx. 128K$5cache $0.5gravação em cache $6.25$25max_tokensparallel_tool_callsreasoning_effortstoptemperaturetool_choicetoolstop_p
Claude Opus 5Anthropicanthropic/claude-opus-5/chat1MSaída máx. 128K$4.5cache $0.45gravação em cache $5.5$22.5max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools
Claude Opus 5.5Anthropicanthropic/claude-opus-5.5/chat1MSaída máx. 128K$3.6cache $0.18gravação em cache $4.5$18max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools
Claude Sonnet 4.5Anthropicanthropic/claude-sonnet-4.5/chat198KSaída máx. 64K$2.7cache $0.27gravação em cache $3.3$13.5max_tokensparallel_tool_callsstoptemperaturetool_choicetoolstop_ktop_p
Claude Sonnet 4.6Anthropicanthropic/claude-sonnet-4.6/chat1MSaída máx. 64K$3cache $0.3gravação em cache $3.75$15max_tokensparallel_tool_callsreasoning_effortstoptemperaturetool_choicetoolstop_ktop_p
Claude Sonnet 5Anthropicanthropic/claude-sonnet-5/chat1MSaída máx. 64K$1.9cache $0.19gravação em cache $2.375$9.5max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools
Claude Sonnet 5.5Anthropicanthropic/claude-sonnet-5.5/chat1MSaída máx. 128K$2cache $0.2gravação em cache $2.5$10max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools
DeepSeek V4.1 FlashDeepSeekdeepseek/v4.1-flash/chat1MSaída máx. 384K$0.3cache $0.006$1.2max_tokensreasoning_effortresponse_formatstoptool_choicetools
DeepSeek V4 FlashDeepSeekdeepseek/v4-flash/chat1MSaída máx. 66K$0.44cache $0.014$1.32max_tokensreasoning_effortresponse_formatstoptool_choicetools
DeepSeek V4 ProDeepSeekdeepseek/v4-pro/chat1MSaída máx. 384K$1.32cache $0.044$3.96max_tokensparallel_tool_callsreasoning_effortresponse_formatstoptool_choicetools
Gemini 2.5 FlashGooglegoogle/gemini-2.5-flash/chat1MSaída máx. 66K$0.285cache $0.0285$2.375max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
Gemini 3.1 Pro PreviewGoogleEntrada > 200K tokens por solicitação: $3.8 / $17.1 · cache $0.38google/gemini-3.1-pro-preview/chat1MSaída máx. 33K$1.9cache $0.19$11.4max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
Gemini 3.5 Flash-LiteGooglegoogle/gemini-3.5-flash-lite/chat1MSaída máx. 66K$0.3cache $0.03$2.5max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
Gemini 3.7 FlashGooglegoogle/gemini-3.7-flash/chat1MSaída máx. 66K$0.675cache $0.0675$3.375max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
Gemini 3 Flash PreviewGooglegoogle/gemini-3-flash-preview/chat256KSaída máx. 66K$0.45cache $0.045$2.7max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
GLM 5.2Z.aizai/glm-5.2/chat1MSaída máx. 131K$0.98cache $0.182$3.08max_tokensreasoning_effortresponse_formatstoptemperaturetool_choicetoolstop_p
GLM 5.3Z.aizai/glm-5.3/chat1MSaída máx. 131K$1.05cache $0.195$3.3max_tokensparallel_tool_callsreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
GLM 5.3 FlashZ.aizai/glm-5.3-flash/chat1MSaída máx. 131K$0.1275cache $0.0255$0.425max_tokensreasoning_effortresponse_formatstoptemperaturetool_choicetoolstop_p
Grok 4.3xAIEntrada ≥ 200K tokens por solicitação: $2.5 / $5 · cache $0.4xai/grok-4.3/chat1MSaída máx. 900K$1.25cache $0.2$2.5max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p
Grok 4.5xAIEntrada ≥ 200K tokens por solicitação: $4 / $12 · cache $0.6xai/grok-4.5/chat500KSaída máx. 450K$2cache $0.3$6max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p
Grok 4.6xAIEntrada ≥ 200K tokens por solicitação: $4 / $12 · cache $1xai/grok-4.6/chat500KSaída máx. 450K$2cache $0.5$6max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p
Grok 4.7xAIEntrada ≥ 200K tokens por solicitação: $4 / $12 · cache $1xai/grok-4.7/chat500KSaída máx. 450K$2cache $0.5$6max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p
Kimi K3Moonshot AImoonshot/kimi-k3/chat1MSaída máx. 1M$2.7cache $0.3$13.5max_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

  1. 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ê deixar max_tokens de fora, usa-se a saída máxima do modelo; por isso, defina-o para manter as reservas pequenas.
  2. 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.
  3. 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 200 e um cabeçalho X-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 corpo 200; por isso, quando esse cabeçalho estiver presente, verifique se há uma chave error. O streaming evita isso.
  • 404 model_not_found. O ID do modelo não existe. O erro indica o modelo de chat mais próximo que você pode chamar.
  • 400 com param: model. O ID pertence a um modelo de imagem, vídeo ou áudio; esses rodam como tarefas.
  • 400 content_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.

Nesta página