Comenzar

Claves de API y autenticación

Cada solicitud lleva una clave de API. Las claves pertenecen a un espacio de trabajo y gastan su saldo; cada una puede limitarse a sus propios presupuestos, modelos y direcciones.

Enviar la clave

Cualquiera de las dos cabeceras funciona en todos los endpoints:

Cabeceras
Authorization: Bearer zr_live_your_key_here
# or, as Anthropic's SDKs send it:
x-api-key: zr_live_your_key_here

Las claves empiezan por zr_live_. La clave completa solo se ve una vez, al crearla; nosotros solo guardamos un hash, así que nadie (nosotros incluidos) puede mostrártela de nuevo. ¿La perdiste? Revócala y crea otra.

Conectar un agente de IA

Un agente (OpenClaw, Hermes, Manus o el tuyo propio) puede obtener su propia clave sin que nadie tenga que copiarla: pide un enlace, su persona lo aprueba en zurelay.com con un límite diario y el agente recoge la clave. Funciona como iniciar sesión en una TV (el flujo de dispositivo de OAuth, RFC 8628). No se necesita clave para estas dos llamadas.

POST/connect
namestring
Cómo se identifica el agente, mostrado en la página de aprobación; la clave recibe ese nombre. Opcional.
Pide un enlace
curl -X POST https://api.zurelay.com/connect \
-H "Content-Type: application/json" \
-d '{"name": "OpenClaw"}'
{
"status": "pending",
"device_code": "zr_dc_…",
"user_code": "WDJB-MJHT",
"verification_uri": "https://zurelay.com/connect",
"verification_uri_complete": "https://zurelay.com/connect?code=WDJB-MJHT",
"expires_in": 900,
"interval": 2
}

Muéstrale a la persona el verification_uri_complete y el código. Inicia sesión, comprueba que el código coincide, elige el espacio de trabajo y un límite diario, y aprueba en un plazo de 15 minutos. No le pases device_code al agente: es lo que recoge la clave.

POST/connect/key
device_codestringobligatorio
De POST /connect.
waitseconds
Cuánto esperar a la aprobación antes de responder pending, de 0 a 25. Por defecto, 25.
Recoge la clave
curl -X POST https://api.zurelay.com/connect/key \
-H "Content-Type: application/json" \
-d '{"device_code": "zr_dc_…"}'
{
"status": "approved",
"api_key": "zr_live_…",
"key_name": "OpenClaw",
"workspace": "Acme",
"daily_limit_usd": 10,
"base_url": "https://api.zurelay.com/v1"
}
HTTPstatusSignificado
202pendingAún no se ha aprobado. Vuelve a llamar; cada llamada espera hasta 25 segundos.
200approvedAquí tienes la clave. Si vuelves a pedirla dentro de los 30 minutos siguientes a la aprobación, recibirás la misma clave, por si se perdió una respuesta.
403deniedLa persona la rechazó.
410expiredNo se aprobó en 15 minutos o se recogió demasiado tarde. Empieza de nuevo.
410revokedLa clave se revocó en la página de claves de API.
404unknownNinguna solicitud tiene este código de dispositivo.
La clave es una clave normal en la página de claves de API, con el nombre del agente y el límite diario que eligió la persona. Cambia sus reglas ahí o revócala para desconectar el agente. Los agentes también leen los pasos de configuración en zurelay.com/skill.md.

Mantener las claves seguras

  • Guarda las claves en un gestor de secretos o en variables de entorno, nunca en el código ni en un repositorio.
  • Llama a Zurelay desde tu servidor. Una clave en un navegador o en una app móvil puede leerla cualquiera que tenga la app.
  • Usa una clave por app o entorno (por ejemplo, production y staging), así puedes revocar una sin tocar las demás.
  • Dale a cada clave solo lo que necesita: un presupuesto, los modelos que llama, las direcciones desde las que se ejecuta. Consulta Límites y reglas de las claves.
  • Si una clave se filtra, revócala en Claves de API. Las solicitudes que la usen dejan de funcionar en 15 segundos.

A qué se puede limitar una clave

Monthly budgetUSD
Gasto permitido por mes natural (UTC).
Daily budgetUSD
Gasto permitido por día (UTC).
Rate limitsolicitudes / minuto
Solicitudes por minuto; las que superen el límite se rechazan con 429.
Expirydate
Después de esa fecha, la clave deja de funcionar.
Allowed modelslist
Solo estos modelos; cualquier otro se rechaza con 403.
Allowed IP addresseslist
Solo solicitudes desde estas direcciones o rangos.
Smart routingsetting
Qué ocurre cuando un modelo no está disponible: consulta Enrutamiento inteligente.

Errores de autenticación

EstadoCódigoSignificado
401missing_api_keyNo hay ninguna clave en la solicitud.
401invalid_api_keyLa clave no existe o se revocó.
401expired_api_keyLa clave superó su fecha de caducidad.
403ip_not_allowedLa clave solo funciona desde otras direcciones.
403model_not_allowedLa clave no tiene permitido usar este modelo.
402insufficient_quotaEl saldo del espacio de trabajo, menos lo que han reservado sus solicitudes en curso, no cubre esta solicitud.
Cada respuesta de chat, imagen y vídeo lleva una cabecera x-request-id. Inclúyela cuando escribas a soporte y podremos encontrar la solicitud en segundos.

¿Tienes dudas o falta algo? Escribe a nuestro equipo de soporte y te responderemos por email, normalmente en menos de un minuto.