Lectico

Cómo se autentica una petición

Todas las peticiones a la API pública llevan una clave secreta en la cabecera Authorization:

curl https://api.lectico.com/v1/agents \
  -H "Authorization: Bearer sk_live_TU_CLAVE"

Si una petición llega sin cabecera o con una clave inválida, la API responde 401 Unauthorized con code: invalid_api_key.

Tipos de clave

PrefijoEntornoPara qué sirve
sk_test_*SandboxDesarrollo, CI/CD, pruebas. Datos aislados de producción, sin impacto en tu plan.
sk_live_*ProducciónIntegraciones reales. Consume crédito del plan.
widget_pk_*WidgetNo funciona con esta API. Es una clave pública pensada para el chat embebible. Ver API Keys.

Obtener una clave

  1. Entra en app.lectico.com con tu cuenta.
  2. En el sidebar, haz clic en API Keys.
  3. Pulsa Crear API key y elige tipo admin.
  4. Copia la clave completa. Solo se muestra una vez; guárdala en un gestor de secretos.

La clave no se puede recuperar — Si la pierdes, revoca la actual y crea una nueva. No hay forma de volver a ver el valor completo una vez cerrado el modal.

Buenas prácticas

  • Nunca expongas sk_live_* en el cliente. Es una clave secreta; vive solo en tu backend o en variables de entorno del servidor.
  • Usa sk_test_* en CI. Los tests nunca deben tocar producción.
  • Rota las claves cada 90 días como mínimo, o cuando sospeches que una se ha filtrado.
  • Revoca inmediatamente cualquier clave comprometida desde la pantalla de API Keys.
  • Una clave por integración. Así puedes revocar una sin afectar al resto.

Cabecera legacy: x-api-key

Por compatibilidad, la API también acepta la clave en la cabecera x-api-key:

curl https://api.lectico.com/v1/agents \
  -H "x-api-key: sk_live_TU_CLAVE"

Recomendamos usar Authorization: Bearer ... en nuevas integraciones. La cabecera legacy seguirá funcionando durante toda la v1.

Errores de autenticación

Código HTTPcodeSignificado
401invalid_api_keyLa clave no existe o está revocada.
401missing_authorizationNo llegó ninguna cabecera de autenticación.
403key_scope_mismatchLa clave existe pero no tiene permiso para este recurso.

Todos los errores incluyen un request_id en la respuesta. Inclúyelo en tus tickets de soporte.