Desarrolladores

Crea y revoca claves para la API pública.

Gestiona endpoints, rota los secretos de firma y revisa las entregas.

Créditos gastados por modelo y tu saldo actual.

Precios actuales en créditos por modelo.

Documentación interactiva de la API pública.

Verificar firmas de webhook

La cabecera X-GenStudio-Signature puede llevar MÁS DE UN valor v1. Durante la ventana de gracia de 24 horas de la rotación del secreto lleva dos: uno firmado con el secreto nuevo y otro con el anterior. Pruébalos uno a uno y acepta la petición si CUALQUIERA coincide. Las implementaciones que leen un solo v1 rechazarán todas las entregas durante una rotación.

Rechaza las peticiones cuyo t difiera más de 5 minutos de tu hora actual. El contenido firmado es "{t}.{rawBody}": la marca de tiempo va dentro de la firma, así que no puede modificarse sin invalidarla.

X-GenStudio-Signature: t=1785000000,v1=<hex>,v1=<hex>
X-GenStudio-Event: generation.succeeded
X-GenStudio-Delivery: <delivery id>
X-GenStudio-Event-Version: 1

Rotar tu secreto de firma

POST /api/v1/me/webhook-endpoints/{id}/rotate-secret devuelve el nuevo secreto una sola vez. El secreto anterior sigue funcionando durante una ventana de gracia para que puedas desplegar sin perder entregas; la respuesta indica cuánto dura.

Rotar dos veces dentro de la ventana de gracia invalida INMEDIATAMENTE el secreto más antiguo. El endpoint guarda exactamente un secreto anterior, así que una segunda rotación lo sobrescribe. Termina de desplegar una rotación antes de empezar la siguiente.

Requisitos del endpoint

Las URL de webhook deben usar https en el puerto 443. Si te autoalojas en otro puerto, termina TLS detrás de un proxy inverso en el 443, o usa un túnel como ngrok o Cloudflare Tunnel: ambos terminan en el 443, así que el desarrollo local funciona sin cambios.

Rotar el secreto y volver a lanzar la verificación solo están disponibles en la aplicación web. Ambos exigen volver a introducir la contraseña, y una clave de API no tiene contexto de contraseña. Es una decisión de alcance deliberada del MVP, no un endpoint que falte.

Reintentos y deduplicación

Un mismo evento se entrega como máximo 9 veces, repartidas a lo largo de al menos 31 horas. Dimensiona tu ventana de deduplicación en consecuencia: el mismo id X-GenStudio-Delivery puede llegar varias veces en ese periodo.

Deduplica por X-GenStudio-Delivery, no por el cuerpo del mensaje. El id de entrega es el mismo en todos los reintentos del evento; la firma no lo es (cada intento se firma con una marca de tiempo nueva).

Responde con cualquier 2xx para confirmar. Cualquier otra cosa —incluido un cuerpo de respuesta lento— cuenta como intento fallido y se reintenta. Tras el último intento la entrega se marca como dead y puedes reenviarla desde el registro.