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

Documentación de la API

API Many ofrece todos los modelos con una URL base y una clave. Los endpoints de texto siguen los formatos de OpenAI y Anthropic, así que los SDK oficiales funcionan sin cambios; imagen, video y música se ejecutan como tareas asíncronas.

URL base https://apimany.com/v1

Inicio rápido

  1. Inicia sesión y crea una clave en Claves API.
  2. Añade saldo desde $10 en Saldo.
  3. Envía tu primera solicitud:
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"}]}'

Autenticación

Envía tu clave en la cabecera Authorization como token Bearer. Las claves son secretas: llama a la API desde tu servidor, nunca desde un navegador o una app móvil.

Authorization: Bearer sk_apimany_xxxxxxxxxxxxxxxx

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

SDK

Usa el SDK oficial de OpenAI (Python, Node.js, Go, Java, .NET) con base_url https://apimany.com/v1, o el SDK oficial de Anthropic con base_url https://apimany.com. Para los endpoints multimedia sirve cualquier cliente HTTP.

Facturación

Cada solicitud reserva su coste máximo de tu saldo al empezar y se liquida al terminar:

  • Texto: se cobra por los tokens de entrada, en caché y de salida que informa el modelo, a los precios por millón de su página.
  • Imágenes: se cobra por imagen según la resolución o calidad elegida; los modelos de imagen por tokens se liquidan según el uso informado.
  • Video: se cobra por segundo según la resolución elegida (o por clip en los modelos de duración fija).
  • Las solicitudes fallidas, rechazadas o caducadas no se cobran: la reserva se devuelve completa.

Envía una cabecera Idempotency-Key (1–200 caracteres) para reintentar con seguridad: una clave repetida devuelve el registro original en lugar de ejecutarse de nuevo.

Chat completions POST/v1/chat/completions

Chat compatible con OpenAI para todos los modelos de lenguaje, incluidos Claude, Gemini, DeepSeek, Grok, Qwen y Kimi. Streaming, herramientas, modo JSON e imágenes siguen el formato de OpenAI. Las respuestas en streaming incluyen el uso en el último fragmento.

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

Los modelos Claude también aceptan la API Messages nativa de Anthropic, con streaming, herramientas, pensamiento extendido y caché de prompts. Las cabeceras anthropic-version y anthropic-beta se reenvían.

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

La API Responses de OpenAI para los modelos que la admiten.

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

Imágenes POST/v1/images/generations

Texto a imagen y edición de imágenes. Cada modelo documenta sus campos (tamaño, resolución, calidad, imágenes de referencia) en su página; envíalos tal como aparecen. La llamada devuelve una tarea al instante:

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

Videos POST/v1/videos/generations

Texto a video, imagen a video, referencias, ediciones y extensiones, según el modelo. Los modelos por segundo reservan la duración pedida y se liquidan según el clip entregado.

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

Tareas y consultas GET/v1/tasks/{id}

Consulta cada 3–10 segundos hasta que el estado sea completed o failed. Estados: pending, processing, completed, failed. Las tareas completadas muestran URL firmadas válidas 30 días; descarga lo que quieras conservar.

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

Webhooks

Añade callback_url (HTTPS público) a cualquier solicitud multimedia y enviaremos la tarea terminada por POST, con hasta seis reintentos escalonados. Verifica X-Apimany-Signature con el secreto de webhooks de tu página de claves 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": { ... } } }

Transcripción POST/v1/audio/transcriptions

Voz a texto compatible con OpenAI con subida multipart (hasta 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 los modelos con tipo, endpoint y precios; filtra con ?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 llamada (texto, multimedia y audio) tiene un registro con estado, uso, coste y resultados. Filtra por model, kind, status, api_key_id o 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 }

Errores

Los errores usan el formato de OpenAI, así que las excepciones de los SDK funcionan como siempre.

{
  "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 un parámetro o no está permitido para este modelo. No se cobró nada.
401invalid_api_keyFalta la clave, es incorrecta o está revocada.
402insufficient_balanceTu saldo no cubre la reserva de esta solicitud.
404model_not_foundEl ID del modelo no existe. Lista los modelos con GET /v1/models.
409idempotency_replayEsta Idempotency-Key ya se usó; consulta el registro anterior.
413request_too_largeEl cuerpo de la solicitud supera el límite. Envía los archivos como URL.
429rate_limitedDemasiadas solicitudes por minuto para esta clave. Reintenta con espera progresiva.
502generation_failedTodos los canales de este modelo fallaron. No se cobró nada; reintenta en breve.
503model_unavailableEl modelo no está disponible temporalmente.

Límites

  • Cuerpo de la solicitud: hasta 25 MB para texto y 40 MB para multimedia. Envía archivos grandes como URL HTTPS.
  • Subidas del playground: imágenes hasta 10 MB, video hasta 100 MB y audio hasta 50 MB.
  • Límite: 120 solicitudes por minuto por cuenta de forma predeterminada. Contáctanos para límites mayores.
  • Los archivos generados se guardan 30 días. Las tareas que nunca terminan se revisan y se reembolsan.
  • Las capacidades y límites de cada modelo dependen de su fabricante.