Cada solicitud tiene un ID que puedes citar

· Hyperouter · 3 min de lectura

Cuando una solicitud hace algo que no esperabas, la forma más rápida de hablar de ella es su id. Toda solicitud que Hyperouter acepta tiene uno, vuelve en la respuesta y es la clave del registro de esa solicitud.

Dónde está el id

El id es un UUID, y la documentación lo llama el id de la solicitud. Está en el cuerpo de la respuesta, con un nombre distinto según el endpoint:

SolicitudDónde está el id
POST /v1/chat/completionsid del chat completion.
POST /v1/images/generations, POST /v1/images/editsid de la respuesta de imagen. Con Prefer: respond-async, id del 202.
POST /v1/videos y las demás llamadas de vídeoid del objeto Video.
Un error sobre un trabajo que continuó, como el 503 timeout de una imagenerror.generation_id.
Un chat completion repetido bajo una Idempotency-Keyerror.generation_id del 409 idempotency_key_replayed: el id de la primera solicitud.

La documentación no nombra ningún encabezado de respuesta con el id de la solicitud, así que lee el id del cuerpo. Registra el id junto a la llamada en tu propio código:

res = client.chat.completions.create(
    model="x-ai/grok-4.7",
    messages=[{"role": "user", "content": "Hello"}],
)
log.info("hyperouter request %s cost=%s", res.id, res.usage.cost)

El campo usage.cost es un añadido de Hyperouter al objeto usage, así que puede que un SDK tipado no lo declare; el valor está en el JSON.

Consúltala

GET /v1/generations/{id} devuelve el registro de una de tus solicitudes, de cualquier tipo:

curl https://api.hyperouter.app/v1/generations/0194f2c4-7a1e-7b3c-9d02-5f6a1c0e8b21 \
  -H "Authorization: Bearer $HYPEROUTER_API_KEY"

El registro tiene el kind (chat, image o video), el model, el status (queued, submitting, running, done o failed), created_at y finished_at, el usage y su cost, ttft_ms y latency_ms, y un error con un code y un message cuando la solicitud falló. En una solicitud de chat terminada, provider_name indica qué proveedor la atendió. En imágenes y vídeos, outputs contiene enlaces firmados, válidos durante 24 horas, durante 30 días tras la solicitud.

usage_estimated es true cuando el proveedor no envió recuentos de tokens y Hyperouter los contó.

El texto del prompt y de la respuesta nunca está en el registro. Hyperouter no lo devuelve por ninguna API ni página del panel.

Un id que no es un UUID, que no existe o que pertenece a otra cuenta responde 404 not_found. Solo puedes leer tus propias solicitudes.

Cítala en un ticket

Abre un ticket en el panel para facturación, recargas y preguntas sobre la API, y el equipo responde en el mismo hilo. Incluye el id de la respuesta cuando informes de una solicitud concreta.

Un buen informe tiene tres cosas: el id, lo que esperabas y lo que obtuviste. Pega el estado y el error de GET /v1/generations/{id} si los tienes. El id permite al equipo encontrar la propia solicitud en lugar de pedirte que la describas.

Si una respuesta de error no trae id, cita su estado, su code y la hora de la solicitud.

Concilia el gasto

El mismo id responde a la pregunta de cuánto costó una solicitud. usage.cost es el cargo en USD, como un número JSON. Si guardas el id con cada trabajo en tu propia base de datos, puedes cruzar tus registros con los de Hyperouter uno a uno. Chat, imagen y vídeo funcionan igual.

Qué sigue