Referencia de la API
La API de Apexnova AI Hub es compatible con la API de OpenAI: apunta cualquier SDK de OpenAI a nuestra URL base con tu clave para llamar a modelos de chat y embeddings. Las imágenes y el vídeo usan los endpoints propios /v1/media/images y /v1/media/videos (neutrales de proveedor, con envelopes media). También hay un endpoint /anthropic/v1/messages compatible con Anthropic para Claude Code y el SDK de Anthropic.
URL base
https://api.apexnova-consulting.com/v1
Autenticación
Envía tu key como bearer token. Crea una en la página API Keys de la consola.
curl https://api.apexnova-consulting.com/v1/models \ -H "Authorization: Bearer sk-xxxxxxxx"
Errores
Los errores devuelven un estado HTTP y un cuerpo JSON:
{
"error": {
"message": "...",
"type": "invalid_request_error",
"code": "model_not_found"
}
}400— cuerpo de la petición mal formado, o un parámetro que este endpoint no admite (code unsupported_parameter).401— clave de API ausente o inválida.402— saldo insuficiente.404—model_not_found: modelo desconocido, o endpoint incorrecto para la modalidad del modelo.429— presupuesto o límite de tasa superado.
Limitar dónde se procesa una petición (opcional)
Añade `X-Apexnova-Require-Jurisdiction` (códigos de país ISO 3166-1 alpha-2 separados por comas) a cualquier petición de inferencia y solo se atenderán modelos cuya implementación completa esté dentro de esas jurisdicciones. La regla es idéntica a la de `?jurisdiction=` del catálogo, así que lo que el catálogo te muestra es lo que el plano de datos admite.
curl https://api.apexnova-consulting.com/v1/chat/completions \
-H "Authorization: Bearer sk-xxxxxxxx" \
-H "X-Apexnova-Require-Jurisdiction: ES,IE,DE" \
-H "Content-Type: application/json" \
-d '{"model":"glm-5.2","messages":[{"role":"user","content":"Hi"}]}'- Se admite por contención, no por intersección: con rutas en ES y en US, cuál atiende una petición concreta lo decide la pasarela en ese momento, así que no podemos prometerlo y no lo admitimos. Los destinos de fallback siguen la misma regla, y los fallbacks upstream se desactivan en esa llamada para que la tabla de la pasarela no pueda esquivarla. Los modelos BYOK se rechazan siempre: el upstream es tu propia cuenta y no podemos demostrar dónde está.
- Una respuesta admitida incluye `X-Apexnova-Jurisdictions` con el conjunto contra el que se admitió, para que puedas comprobar la garantía en vez de confiar en nosotros.
403—jurisdiction_not_satisfied: El modelo puede procesarse fuera del conjunto indicado, o alguna ruta upstream no tiene jurisdicción declarada (lo que no se puede demostrar no pasa).400—invalid_jurisdiction: La cabecera contiene un código inservible. Los códigos supranacionales y reservados (`EU`, `UK`, `X*`) se rechazan a propósito: indica el país (`GB`, `IE`, `DE`…) para que una restricción signifique un solo lugar. **Un solo término inservible hace fallar toda la petición**: no vamos a reescribirla en silencio como otro conjunto y aplicar ese.
Modelos y precios
Llama a GET /v1/models para listar los modelos que tu cuenta puede usar. Los precios por modelo están en la página de precios.