API ManyNovos modelos: Qwen 3.8 Max, Claude Haiku 5.5, Claude Opus 5.5, Claude Sonnet 5.5

Documentação da API

A API Many oferece todos os modelos com uma URL base e uma chave. Os endpoints de texto seguem os formatos da OpenAI e da Anthropic, então os SDKs oficiais funcionam sem mudanças; imagem, vídeo e música rodam como tarefas assíncronas.

URL base https://apimany.com/v1

Início rápido

  1. Entre e crie uma chave em Chaves de API.
  2. Adicione saldo a partir de US$ 10 em Saldo.
  3. Envie sua primeira requisição:
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"}]}'

Autenticação

Envie sua chave no cabeçalho Authorization como token Bearer. As chaves são secretas: chame a API do seu servidor, nunca do navegador ou de um app móvel.

Authorization: Bearer sk_apimany_xxxxxxxxxxxxxxxx

# Anthropic-style clients may send the key as:
x-api-key: sk_apimany_xxxxxxxxxxxxxxxx

SDKs

Use o SDK oficial da OpenAI (Python, Node.js, Go, Java, .NET) com base_url https://apimany.com/v1, ou o SDK oficial da Anthropic com base_url https://apimany.com. Qualquer cliente HTTP funciona para os endpoints de mídia.

Cobrança

Cada requisição reserva o custo máximo do saldo ao começar e é liquidada ao terminar:

  • Texto: cobrado pelos tokens de entrada, em cache e de saída informados pelo modelo, aos preços por milhão da página dele.
  • Imagens: cobradas por imagem conforme a resolução ou qualidade escolhida; modelos de imagem por tokens são liquidados pelo uso informado.
  • Vídeo: cobrado por segundo conforme a resolução escolhida (ou por clipe nos modelos de duração fixa).
  • Requisições com falha, rejeitadas ou expiradas não são cobradas: a reserva volta integralmente.

Envie um cabeçalho Idempotency-Key (1–200 caracteres) para repetir com segurança: uma chave repetida retorna o registro original em vez de executar de novo.

Chat completions POST/v1/chat/completions

Chat compatível com OpenAI para todos os modelos de linguagem, incluindo Claude, Gemini, DeepSeek, Grok, Qwen e Kimi. Streaming, ferramentas, modo JSON e imagens seguem o formato da OpenAI. Respostas em streaming trazem o uso no último bloco.

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

Os modelos Claude também aceitam a API Messages nativa da Anthropic, com streaming, ferramentas, pensamento estendido e cache de prompts. Os cabeçalhos anthropic-version e anthropic-beta são repassados.

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

A API Responses da OpenAI para os modelos que a suportam.

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

Embeddings 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"]}'

Imagens POST/v1/images/generations

Texto para imagem e edição de imagens. Cada modelo documenta seus campos (tamanho, resolução, qualidade, imagens de referência) na página dele; envie-os como listados. A chamada retorna uma tarefa na hora:

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

Vídeos POST/v1/videos/generations

Texto para vídeo, imagem para vídeo, referências, edições e extensões — conforme o modelo. Modelos por segundo reservam a duração pedida e liquidam pelo clipe entregue.

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

Música 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"}'

Tarefas e consultas GET/v1/tasks/{id}

Consulte a cada 3–10 segundos até o status ser completed ou failed. Status: pending, processing, completed, failed. Tarefas concluídas trazem URLs assinadas válidas por 30 dias; baixe o que quiser guardar.

curl https://apimany.com/v1/tasks/TASK_ID -H "Authorization: Bearer $APIMANY_API_KEY"

Webhooks

Adicione callback_url (HTTPS público) a qualquer requisição de mídia e enviaremos a tarefa concluída por POST, com até seis novas tentativas espaçadas. Verifique X-Apimany-Signature com o segredo de webhooks da página de chaves de 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": { ... } } }

Transcrição POST/v1/audio/transcriptions

Fala para texto compatível com OpenAI com envio multipart (até 25 MB).

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

Modelos GET/v1/models

Lista pública de todos os modelos com tipo, endpoint e preços; filtre com ?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

Registros GET/v1/records

Cada chamada (texto, mídia e áudio) tem um registro com status, uso, custo e resultados. Filtre por model, kind, status, api_key_id ou 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"

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

Erros

Os erros usam o formato da OpenAI, então as exceções dos SDKs funcionam normalmente.

{
  "error": {
    "message": "Your balance is too low for this request. Top up and try again.",
    "type": "insufficient_quota",
    "param": null,
    "code": "insufficient_balance"
  }
}
HTTPcodeSignificado
400invalid_requestFalta um parâmetro ou ele não é permitido para este modelo. Nada foi cobrado.
401invalid_api_keyA chave está ausente, malformada ou revogada.
402insufficient_balanceSeu saldo não cobre a reserva desta requisição.
404model_not_foundO ID do modelo não existe. Liste os modelos com GET /v1/models.
409idempotency_replayEsta Idempotency-Key já foi usada; consulte o registro anterior.
413request_too_largeO corpo da requisição excede o limite. Envie mídias como URLs.
429rate_limitedRequisições demais por minuto para esta chave. Tente de novo com espera progressiva.
502generation_failedTodos os canais deste modelo falharam. Nada foi cobrado; tente de novo em breve.
503model_unavailableO modelo está temporariamente indisponível.

Limites

  • Corpo da requisição: até 25 MB para texto e 40 MB para mídia. Envie arquivos grandes como URLs HTTPS.
  • Envios no playground: imagens até 10 MB, vídeo até 100 MB e áudio até 50 MB.
  • Limite: 120 requisições por minuto por conta, por padrão. Fale conosco para limites maiores.
  • Os arquivos gerados ficam 30 dias. Tarefas que nunca terminam são revisadas e reembolsadas.
  • Os recursos e limites de cada modelo seguem o fabricante.