Документация API
API Many открывает все модели через один базовый URL и один ключ. Текстовые эндпоинты следуют форматам OpenAI и Anthropic, поэтому официальные SDK работают без изменений; изображения, видео и музыка выполняются как асинхронные задачи.
Базовый URL https://apimany.com/v1
Быстрый старт
- Войдите и создайте ключ в разделе API-ключи.
- Пополните баланс от $10 в разделе Баланс.
- Отправьте первый запрос:
curl https://apimany.com/v1/chat/completions \
-H "Authorization: Bearer $APIMANY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "claude-sonnet-5-5", "messages": [{"role": "user", "content": "Hello"}]}'Аутентификация
Передавайте ключ в заголовке Authorization как Bearer-токен. Ключи секретны: вызывайте API с сервера, а не из браузера или мобильного приложения.
Authorization: Bearer sk_apimany_xxxxxxxxxxxxxxxx
# Anthropic-style clients may send the key as:
x-api-key: sk_apimany_xxxxxxxxxxxxxxxxSDK
Используйте официальный SDK OpenAI (Python, Node.js, Go, Java, .NET) с base_url https://apimany.com/v1 или официальный SDK Anthropic с base_url https://apimany.com. Для медиа подойдёт любой HTTP-клиент.
Оплата
Каждый запрос резервирует максимальную стоимость при старте и списывается по завершении:
- Текст: оплачиваются входные, кэшированные и выходные токены, о которых сообщает модель, по ценам за миллион с её страницы.
- Изображения: оплата за штуку по выбранному разрешению или качеству; модели с оплатой по токенам — по фактическому расходу.
- Видео: оплата за секунду по выбранному разрешению (или за клип у моделей с фиксированной длиной).
- Неудачные, отклонённые и просроченные запросы не оплачиваются — резерв возвращается полностью.
Передавайте заголовок Idempotency-Key (1–200 символов), чтобы безопасно повторять запросы: повторный ключ вернёт исходную запись вместо нового запуска.
Chat completions POST/v1/chat/completions
Чат в формате OpenAI для всех языковых моделей, включая Claude, Gemini, DeepSeek, Grok, Qwen и Kimi. Стриминг, инструменты, JSON-режим и изображения — как в OpenAI. В стриминге расход приходит в последнем фрагменте.
curl https://apimany.com/v1/chat/completions \
-H "Authorization: Bearer $APIMANY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"stream": true,
"messages": [
{"role": "system", "content": "You are concise."},
{"role": "user", "content": "Summarize HTTP/3 in two sentences."}
]
}'Anthropic Messages POST/v1/messages
Модели Claude также принимают нативный Anthropic Messages API со стримингом, инструментами, расширенным мышлением и кэшированием промптов. Заголовки anthropic-version и anthropic-beta передаются.
import anthropic
client = anthropic.Anthropic(base_url="https://apimany.com", api_key="YOUR_API_KEY")
message = client.messages.create(
model="claude-opus-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Write a haiku about APIs."}],
)
print(message.content[0].text)Responses POST/v1/responses
OpenAI Responses API для поддерживающих её моделей.
curl https://apimany.com/v1/responses \
-H "Authorization: Bearer $APIMANY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-6.1-sol", "input": "Explain recursion to a child."}'Эмбеддинги POST/v1/embeddings
curl https://apimany.com/v1/embeddings \
-H "Authorization: Bearer $APIMANY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "text-embedding-3-small", "input": ["first text", "second text"]}'Изображения POST/v1/images/generations
Генерация и редактирование изображений. Поля каждой модели (размер, разрешение, качество, референсы) описаны на её странице — передавайте их как указано. Вызов сразу возвращает задачу:
curl https://apimany.com/v1/images/generations \
-H "Authorization: Bearer $APIMANY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A watercolor fox in a snowy forest",
"size": "16:9",
"resolution": "2k",
"image_urls": ["https://example.com/style-reference.png"]
}'{
"id": "2c7f9a8e-0d1b-4b5e-9a5d-6f0c1e2d3a4b",
"object": "generation.task",
"model": "seedance-2.5",
"status": "pending",
"reserved_usd": 2.16,
"task_id": "2c7f9a8e-0d1b-4b5e-9a5d-6f0c1e2d3a4b"
}Видео POST/v1/videos/generations
Текст → видео, изображение → видео, референсы, монтаж и продление — в зависимости от модели. Посекундные модели резервируют запрошенную длительность и списывают по готовому клипу.
curl https://apimany.com/v1/videos/generations \
-H "Authorization: Bearer $APIMANY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"prompt": "Slow dolly-in on a neon alley after rain",
"resolution": "720p",
"duration": 8,
"size": "16:9",
"callback_url": "https://your-app.com/webhooks/apimany"
}'Музыка POST/v1/music/generations
curl https://apimany.com/v1/music/generations \
-H "Authorization: Bearer $APIMANY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "suno", "custom": false, "version": "v6", "prompt": "Late-night lo-fi piano with soft rain"}'Задачи и опрос GET/v1/tasks/{id}
Опрашивайте каждые 3–10 секунд, пока статус не станет completed или failed. Статусы: pending, processing, completed, failed. У готовых задач есть подписанные ссылки, действующие 30 дней, — скачайте нужное.
curl https://apimany.com/v1/tasks/TASK_ID -H "Authorization: Bearer $APIMANY_API_KEY"Вебхуки
Добавьте callback_url (публичный HTTPS) к любому медиазапросу — мы отправим готовую задачу POST-запросом с повторами до шести раз. Проверяйте X-Apimany-Signature секретом вебхуков со страницы API-ключей.
import crypto from 'node:crypto'
// Express-style handler; keep the raw body for the signature check.
export function verify(rawBody, headers, secret) {
const timestamp = headers['x-apimany-timestamp']
const expected = crypto.createHmac('sha256', secret.replace(/^whsec_/, ''))
.update(`${timestamp}.${rawBody}`).digest('hex')
return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(headers['x-apimany-signature']))
}
// Payload: { "event": "task.completed" | "task.failed", "data": { ...task, "record": { ... } } }Транскрипция POST/v1/audio/transcriptions
Распознавание речи в формате OpenAI с загрузкой multipart (до 25 МБ).
curl https://apimany.com/v1/audio/transcriptions \
-H "Authorization: Bearer $APIMANY_API_KEY" \
-F model=gpt-4o-transcribe \
-F [email protected] \
-F response_format=jsonМодели GET/v1/models
Публичный список всех моделей с типом, эндпоинтом и ценами; фильтр ?kind=chat|image|video|audio|embedding.
# Every model with its pricing (no key needed)
curl https://apimany.com/v1/models
# Only video models
curl "https://apimany.com/v1/models?kind=video"
# One model with its parameters
curl https://apimany.com/v1/models/seedance-2.5Записи GET/v1/records
У каждого вызова — текстового, медиа или аудио — есть запись со статусом, расходом, стоимостью и результатами. Фильтры: model, kind, status, api_key_id, since.
curl "https://apimany.com/v1/records?limit=20&kind=video&status=completed" \
-H "Authorization: Bearer $APIMANY_API_KEY"
curl https://apimany.com/v1/records/RECORD_ID -H "Authorization: Bearer $APIMANY_API_KEY"Баланс GET/v1/account/balance
curl https://apimany.com/v1/account/balance -H "Authorization: Bearer $APIMANY_API_KEY"
# { "object": "balance", "currency": "usd", "balance_usd": 42.17, "debt_usd": 0 }Ошибки
Ошибки возвращаются в формате OpenAI, поэтому исключения SDK работают как обычно.
{
"error": {
"message": "Your balance is too low for this request. Top up and try again.",
"type": "insufficient_quota",
"param": null,
"code": "insufficient_balance"
}
}| HTTP | code | Значение |
|---|---|---|
| 400 | invalid_request | Параметр отсутствует или недопустим для этой модели. Ничего не списано. |
| 401 | invalid_api_key | Ключ отсутствует, неверен или отозван. |
| 402 | insufficient_balance | Баланса недостаточно для резерва этого запроса. |
| 404 | model_not_found | Такой модели нет. Список моделей — GET /v1/models. |
| 409 | idempotency_replay | Этот Idempotency-Key уже использован — запросите прежнюю запись. |
| 413 | request_too_large | Тело запроса превышает лимит. Передавайте медиа ссылками. |
| 429 | rate_limited | Слишком много запросов в минуту для этого ключа. Повторите с паузой. |
| 502 | generation_failed | Все каналы этой модели недоступны. Ничего не списано — повторите чуть позже. |
| 503 | model_unavailable | Модель временно недоступна. |
Лимиты
- Тело запроса: до 25 МБ для текста и 40 МБ для медиа. Крупные файлы передавайте HTTPS-ссылками.
- Загрузки в песочнице: изображения до 10 МБ, видео до 100 МБ, аудио до 50 МБ.
- Лимит по умолчанию — 120 запросов в минуту на аккаунт. Для более высоких лимитов напишите нам.
- Сгенерированные файлы хранятся 30 дней. Незавершённые задачи проверяются и возвращаются.
- Возможности и лимиты моделей определяет их разработчик.