Autenticación y permisos

Cada solicitud lleva una clave de API como token bearer:

Authorization: Bearer lr_live_ab12cd34_…

Las claves nunca se aceptan en la query string. Una solicitud sin clave, o con una desconocida, vencida o revocada, recibe 401 con WWW-Authenticate: Bearer.

A quién pertenece una clave

Una clave pertenece a tu agencia, no a una persona, así que la integración sigue funcionando cuando alguien se va. Solo un administrador de la cuenta puede crear, rotar o revocar claves, en Integraciones → Claves de API; cada una de esas acciones queda en el registro de auditoría. La consola también muestra cuándo y desde qué dirección IP se usó cada clave por última vez.

Todo lo que escribe una clave aparece en la consola como "vía API: nombre de la clave". GET /v1/tenant responde a qué agencia pertenece una clave (su slug y su name), sean cuales sean sus permisos.

Permisos

Una clave solo puede hacer lo que le permiten sus permisos (scopes); cualquier otra cosa recibe 403.

  • leads:read — leer Leads, consultas, criterios de Lead, coincidencias y vínculos entre Leads y propiedades; listar eventos lead.* e inquiry.*.
  • leads:write — crear, editar y archivar Leads, vincular propiedades y definir criterios de Lead. Incluye leads:ingest.
  • leads:ingest — solo POST /v1/leads:ingest. Un formulario o un bot puede enviar Leads sin poder leer ninguno.
  • activities:read — leer actividades y listar eventos activity.*.
  • activities:write — crear, editar, completar y eliminar actividades.
  • webhooks:manage — registrar, cambiar y eliminar endpoints de webhook, leer sus registros de entregas y reenviar.
  • properties:read — leer propiedades.

Dale a cada integración su propia clave con los mínimos permisos que necesite. Puedes rotar una clave (nuevo secreto, mismo nombre y permisos) o revocarla en cualquier momento.

Estado de la suscripción

Las llamadas a la API siguen las mismas reglas que la consola: mientras tu suscripción esté en solo lectura, las escrituras responden 402 y las lecturas siguen funcionando. La ingesta es la excepción: POST /v1/leads:ingest sigue aceptando Leads, así que no se pierde ninguno. Una cuenta suspendida responde 503.

Las cuentas demo no pueden crear claves de API.