PopNowДокументация API
Чат и совместимые API
Основное содержимое

Чат-модели

Вызывайте Claude, Gemini, DeepSeek, GLM, Grok и Kimi через API PopNow с тем SDK от OpenAI, Anthropic или Gemini, который вы уже используете. Один API-ключ, цена за токен в USD.

API PopNow также запускает чат-модели: Claude, Gemini, DeepSeek, GLM, Grok и Kimi. Вы вызываете их по протоколам, которые ваш код уже понимает — OpenAI Chat Completions и Responses, Anthropic Messages и Gemini generateContent, — поэтому официальные SDK работают после смены базового URL. Они используют тот же ключ sk-popnow- и тот же отдельный баланс API в USD, что и изображения, видео и аудио через API. Начальный баланс — $0; пополните его в разделе Оплата API. Кредиты сайта не оплачивают эти вызовы.

Чат-запросы синхронные: ответ (или поток) приходит в том же HTTP-ответе. Опрашивать задачу не нужно.

Коротко

Базовый URL OpenAIhttps://api.popnow.ai/v1 (Chat Completions, Responses, список моделей)
Базовый URL Anthropichttps://api.popnow.ai (SDK сам добавляет /v1/messages)
GeminiPOST https://api.popnow.ai/v1beta/models/{model}:generateContent
КлючAuthorization: Bearer sk-popnow-…; заголовки x-api-key из Anthropic SDK и x-goog-api-key из Google тоже работают
ID моделейpublisher/model/chat, например anthropic/claude-haiku-5.5/chat. Полный список ниже
ЦенаЗа токен, в USD, без минимума за запрос. Неудачные и отклонённые запросы возвращаются
Стримингstream: true во всех протоколах (:streamGenerateContent?alt=sse для Gemini)

Первый запрос к чат-модели

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
  }'

Ответ — стандартный объект chat.completion с choices[0].message.content и usage. Заголовок ответа X-PopNow-Task-Id называет задачу, в которой записано списание.

SDK от OpenAI

Укажите клиенту базовый URL https://api.popnow.ai/v1 и передайте свой ключ PopNow. Больше ничего менять не нужно.

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

Responses API (client.responses.create) тоже работает, в режиме без состояния: каждый раз отправляйте весь диалог в input. previous_response_id возвращает 400.

SDK от Anthropic

SDK от Anthropic сам добавляет /v1/messages, поэтому базовый URL без /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)

На этом эндпоинте работает любая чат-модель, а не только Claude. Ошибки приходят в формате Anthropic {"type": "error", "error": {...}}.

Gemini generateContent

Полный ID модели ставится в путь; он может содержать слэши.

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 }
  }'

Для потока используйте :streamGenerateContent?alt=sse. Ошибки приходят в формате Google {"error": {"code", "message", "status"}}.

Стриминг

Задайте stream: true и читайте Server-Sent Events. В Chat Completions каждый фрагмент — это chat.completion.chunk, а поток заканчивается строкой data: [DONE]. Как и у OpenAI, поток не содержит usage, пока вы не запросите его через stream_options: { "include_usage": true }; тогда usage приходит в последнем фрагменте с пустым массивом choices.

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

Инструменты, JSON-вывод и параметры

Каждая модель объявляет поля запроса, которые принимает: tools, tool_choice, response_format, temperature, reasoning_effort и другие. Столбец Parameters в таблице моделей перечисляет их, а GET /v1/models возвращает их в supported_parameters.

  • Настройка семплирования, которую модель не принимает (temperature, top_p, frequency_penalty …), отбрасывается вместо ошибки и перечисляется в заголовке ответа X-PopNow-Ignored-Params.
  • Значение вне допустимого диапазона модели заменяется ближайшим допустимым и указывается в X-PopNow-Adjusted-Params в виде name=value.
  • Любое другое поле, которое модель не объявляет, возвращает 400 с code: unsupported_parameter и param, в котором назван поле, например картинка во входных данных для модели, работающей только с текстом.

Модели и цены

Цены указаны в USD за 1 миллион токенов отдельно для входа и выхода; кешированный вход дешевле на моделях, которые его кешируют. Некоторые модели берут более высокую ставку, когда запрос переходит порог длинного контекста; он показан под названием модели.

МодельID моделиКонтекстВход за 1 млн токенов (USD)Выход за 1 млн токенов (USD)Параметры
Claude Fable 5Anthropicanthropic/claude-fable-5/chat1MМакс. ответ 128K$9кэш $0.9запись в кэш $11$45max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools
Claude Haiku 5.5AnthropicВход > 100K токенов в запросе: $0.5 / $2.5 · кэш $0.1anthropic/claude-haiku-5.5/chat1MМакс. ответ 128K$0.1запись в кэш $0.1$0.5max_tokensparallel_tool_callstool_choicetools
Claude Opus 4.5Anthropicanthropic/claude-opus-4.5/chat198KМакс. ответ 33K$4.5кэш $0.45запись в кэш $5.5$22.5max_tokensparallel_tool_callsreasoning_effortstoptemperaturetool_choicetoolstop_p
Claude Opus 4.6Anthropicanthropic/claude-opus-4.6/chat1MМакс. ответ 128K$5кэш $0.5запись в кэш $6.25$25max_tokensparallel_tool_callsreasoning_effortstoptemperaturetool_choicetoolstop_p
Claude Opus 5Anthropicanthropic/claude-opus-5/chat1MМакс. ответ 128K$4.5кэш $0.45запись в кэш $5.5$22.5max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools
Claude Opus 5.5Anthropicanthropic/claude-opus-5.5/chat1MМакс. ответ 128K$3.6кэш $0.18запись в кэш $4.5$18max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools
Claude Sonnet 4.5Anthropicanthropic/claude-sonnet-4.5/chat198KМакс. ответ 64K$2.7кэш $0.27запись в кэш $3.3$13.5max_tokensparallel_tool_callsstoptemperaturetool_choicetoolstop_ktop_p
Claude Sonnet 4.6Anthropicanthropic/claude-sonnet-4.6/chat1MМакс. ответ 64K$3кэш $0.3запись в кэш $3.75$15max_tokensparallel_tool_callsreasoning_effortstoptemperaturetool_choicetoolstop_ktop_p
Claude Sonnet 5Anthropicanthropic/claude-sonnet-5/chat1MМакс. ответ 64K$1.9кэш $0.19запись в кэш $2.375$9.5max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools
Claude Sonnet 5.5Anthropicanthropic/claude-sonnet-5.5/chat1MМакс. ответ 128K$2кэш $0.2запись в кэш $2.5$10max_tokensparallel_tool_callsreasoning_effortstoptool_choicetools
DeepSeek V4.1 FlashDeepSeekdeepseek/v4.1-flash/chat1MМакс. ответ 384K$0.3кэш $0.006$1.2max_tokensreasoning_effortresponse_formatstoptool_choicetools
DeepSeek V4 FlashDeepSeekdeepseek/v4-flash/chat1MМакс. ответ 66K$0.44кэш $0.014$1.32max_tokensreasoning_effortresponse_formatstoptool_choicetools
DeepSeek V4 ProDeepSeekdeepseek/v4-pro/chat1MМакс. ответ 384K$1.32кэш $0.044$3.96max_tokensparallel_tool_callsreasoning_effortresponse_formatstoptool_choicetools
Gemini 2.5 FlashGooglegoogle/gemini-2.5-flash/chat1MМакс. ответ 66K$0.285кэш $0.0285$2.375max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
Gemini 3.1 Pro PreviewGoogleВход > 200K токенов в запросе: $3.8 / $17.1 · кэш $0.38google/gemini-3.1-pro-preview/chat1MМакс. ответ 33K$1.9кэш $0.19$11.4max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
Gemini 3.5 Flash-LiteGooglegoogle/gemini-3.5-flash-lite/chat1MМакс. ответ 66K$0.3кэш $0.03$2.5max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
Gemini 3.7 FlashGooglegoogle/gemini-3.7-flash/chat1MМакс. ответ 66K$0.675кэш $0.0675$3.375max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
Gemini 3 Flash PreviewGooglegoogle/gemini-3-flash-preview/chat256KМакс. ответ 66K$0.45кэш $0.045$2.7max_tokensreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
GLM 5.2Z.aizai/glm-5.2/chat1MМакс. ответ 131K$0.98кэш $0.182$3.08max_tokensreasoning_effortresponse_formatstoptemperaturetool_choicetoolstop_p
GLM 5.3Z.aizai/glm-5.3/chat1MМакс. ответ 131K$1.05кэш $0.195$3.3max_tokensparallel_tool_callsreasoning_effortresponse_formatseedstoptemperaturetool_choicetoolstop_p
GLM 5.3 FlashZ.aizai/glm-5.3-flash/chat1MМакс. ответ 131K$0.1275кэш $0.0255$0.425max_tokensreasoning_effortresponse_formatstoptemperaturetool_choicetoolstop_p
Grok 4.3xAIВход ≥ 200K токенов в запросе: $2.5 / $5 · кэш $0.4xai/grok-4.3/chat1MМакс. ответ 900K$1.25кэш $0.2$2.5max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p
Grok 4.5xAIВход ≥ 200K токенов в запросе: $4 / $12 · кэш $0.6xai/grok-4.5/chat500KМакс. ответ 450K$2кэш $0.3$6max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p
Grok 4.6xAIВход ≥ 200K токенов в запросе: $4 / $12 · кэш $1xai/grok-4.6/chat500KМакс. ответ 450K$2кэш $0.5$6max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p
Grok 4.7xAIВход ≥ 200K токенов в запросе: $4 / $12 · кэш $1xai/grok-4.7/chat500KМакс. ответ 450K$2кэш $0.5$6max_tokensparallel_tool_callsreasoning_effortresponse_formattemperaturetool_choicetoolstop_p
Kimi K3Moonshot AImoonshot/kimi-k3/chat1MМакс. ответ 1M$2.7кэш $0.3$13.5max_tokensreasoning_effortresponse_formatstoptool_choicetools

Тот же список доступен через API, с ценами, длиной контекста и поддерживаемыми параметрами:

curl "https://api.popnow.ai/v1/models?modality=text" \
  -H "Authorization: Bearer $POPNOW_API_KEY"

Как списывается чат-запрос

  1. Резерв. Когда запрос принят, с баланса откладывается максимум, который он может стоить; он считается по входу и max_tokens. Если max_tokens не указан, используется максимальный выход модели, поэтому задавайте его, чтобы резервы были меньше.
  2. Списание. Когда ответ завершён, вы платите за фактически использованные токены, в USD, без минимума за запрос. Остаток резерва освобождается.
  3. Возврат. Запрос, который не удался или который модель отклонила, возвращается полностью.

Если баланса меньше резерва или ключ превысил бы лимит расходов, возвращается 402 до того, как что-либо отправится модели. Чтобы увидеть точное списание, прочитайте задачу из X-PopNow-Task-Id через GET /api/v1/jobs/recordInfo: costUsd — десятичная строка в USD для показа и учёта. Старые поля кредитов тоже могут присутствовать; не округляйте суммы USD до целых кредитов.

Долгие ответы и ошибки

  • Долгие нестриминговые вызовы. Если ответ занимает больше примерно 30 секунд, сначала отправляются статус 200 и заголовок X-PopNow-Keepalive: 1, затем перевод строки каждые 15 секунд, затем JSON-тело. Ошибка после этого момента приходит как обычный объект ошибки протокола внутри тела с 200, поэтому, если есть этот заголовок, проверяйте ключ error. Стриминг этой проблемы избегает.
  • 404 model_not_found. Такого ID модели нет. В ошибке называется ближайшая чат-модель, которую можно вызвать.
  • 400 с param: model. ID принадлежит модели изображений, видео или аудио; они работают как задачи.
  • 400 content_rejected. Собственная политика содержания модели отклонила запрос. Ничего не списывается.
  • 402. Недостаточно USD API для резерва или превышен лимит расходов ключа. См. Оплата API.

Конфиденциальность

Запросы отправляются модели в том виде, в каком вы их написали; PopNow не добавляет собственного системного промпта. Действует собственная политика использования каждой модели. Текст сообщений не хранится после завершения списания.

На этой странице