Sign inGet Started

Autenticación y claves API

Cada solicitud programática a la Bird API se autentica con una clave API enviada como token bearer. Las claves pertenecen a un espacio de trabajo, llevan permisos que puedes modificar y se muestran completas una sola vez.
Para la distinción entre credenciales de servicio y acceso delegado, consulta Claves API y tokens OAuth.

Cómo se autentican las solicitudes

Envía tu clave en el encabezado Authorization en cada solicitud. Los SDK y la CLI reciben la clave una vez y configuran el encabezado por ti:
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

await bird.email.send({
  from: "hello@yourdomain.com",
  to: ["delivered@messagebird.dev"],
  subject: "Hi",
  text: "Hello.",
});
La región en el prefijo de la clave indica a qué host llamar: las claves bk_us1_... van a https://us1.platform.bird.com, las claves bk_eu1_... a https://eu1.platform.bird.com. Los SDK oficiales de Bird y la CLI leen la región de la clave y seleccionan el host por ti. Una clave enviada al host regional incorrecto devuelve 421 (tipo misdirected_error); consulta Regiones.
Una clave ausente o no válida devuelve 401. Una clave válida que no tiene el permiso que requiere un endpoint devuelve 403. La semántica de encabezados y las respuestas de error se encuentran en la referencia de autenticación.

Anatomía de una clave

Ejemplo de código
bk_us1_Ab3xKq9mP2wR5tY8uI1oL4n3A3aww
└┬┘└┬┘ └──────────┬──────────┘└─┬──┘
 │  │          payload      checksum
 │  └ region (routes the request)
 └ Bird key prefix
  • Prefijo: bk_{region}_ identifica el tipo de credencial y su región. El prefijo fijo y distintivo es lo que permite a los escáneres de secretos reconocer una clave Bird en el código, y el segmento de región dirige tu solicitud al host correcto.
  • Payload: 23 caracteres aleatorios con 136 bits de entropía.
  • Checksum: los últimos 6 caracteres son un checksum del resto de la clave, de modo que un SDK o la API pueden rechazar una clave mal escrita o truncada de inmediato, antes de buscarla.
La clave completa se devuelve una sola vez, en la respuesta que la crea. No puedes recuperar el texto plano después. Las respuestas posteriores incluyen los primeros 15 caracteres como key_prefix, por ejemplo bk_us1_Ab3xKq9m. También incluyen un fingerprint estable de 12 caracteres para identificar una clave en logs y conversaciones de soporte sin exponer su valor.
Si pierdes una clave, rótala para obtener un nuevo secreto, o revócala y crea una nueva.

Crear una clave

Crea claves en el dashboard en Platform tools > Claves API. Una clave se crea con un nombre, uno o más alcances y una expiración opcional. La respuesta que la crea es la única que incluye el campo token (la clave completa): guárdala en tu gestor de secretos de inmediato.
También puedes crear una sin navegador, con bird api-keys create. La emisión de claves necesita el alcance api_keys:write, que la línea base de inicio de sesión de solo lectura no incluye, así que solicítalo al iniciar sesión:
Ejemplo de código
bird auth login --scope api_keys:write
bird api-keys create --body-file - <<'JSON'
{
  "name": "Email operations production key",
  "scopes": [{ "scope": "emails", "level": "write" }]
}
JSON
Ejecuta bird api-keys create --example para imprimir un cuerpo completo que puedas editar.
Los alcances son lo único que una clave no puede otorgarse a sí misma: api_keys:write no está disponible para las claves API, por lo que una clave nunca puede emitir otra clave. La emisión se ejecuta como tú, en una sesión del dashboard o con un grant CLI o MCP.
La página de claves API en el dashboard de Bird, que muestra las claves con su prefijo enmascarado, alcances y fecha de último uso
Puedes gestionar una clave después de crearla:
  • Los alcances son editables. La edición reemplaza el conjunto de permisos y mantiene el mismo secreto. Puedes otorgar alcances que tu propia cuenta tenga. Si la clave se creó antes de que pudiera admitir un permiso como voice, rótala para añadir ese permiso. Las claves revocadas y las ya reemplazadas por rotación no se pueden editar.
  • La expiración es fija. Configura expires_at cuando una clave deba dejar de funcionar en un momento conocido (el contrato de un colaborador, una ventana de migración). Pasado ese momento, la clave devuelve 401; una clave sin expiración funciona hasta que se revoque.
  • La gestión de claves queda en manos de personas. Crear, editar y revocar claves requiere el permiso api_keys:write, que tienen los roles de administrador del espacio de trabajo y desarrollador (consulta Usuarios, equipos y roles) y que nunca se puede otorgar a una clave API. Una clave filtrada no puede crear más claves.
La página de claves API muestra cada clave con su key_prefix, alcances y fecha de last_used_on (precisión de día), para que puedas detectar claves inactivas de un vistazo. Las claves revocadas no aparecen en la lista a menos que elijas mostrarlas.

Alcances y niveles

Cada alcance en una clave es un par {scope, level}, donde level es read o write (write incluye read). Las claves API tienen estos alcances:
Alcancereadwrite
emailsLeer mensajes enviados y estado de entregaEnviar email
email_managementLeer supresiones, configuración de email y plantillasGestionar supresiones, configuración de email y plantillas
email_marketingLeer contactos, audiencias y difusionesGestionar contactos, audiencias y difusiones
domainsLeer dominios de envío y sus registros DNSAñadir, verificar y gestionar dominios de envío
smsLeer SMS enviados y estado de entregaEnviar SMS
sms_managementLeer remitentes, registros, supresiones, respuestas por palabra clave, destinos y plantillasGestionar remitentes, registros, supresiones, respuestas por palabra clave, destinos y plantillas
whatsappLeer mensajes WhatsApp enviados y su estadoEnviar mensajes WhatsApp
whatsapp_managementLeer plantillas y configuración de WhatsAppGestionar plantillas y configuración de WhatsApp
verifyLeer estado de verificaciónEnviar y comprobar códigos de verificación
realtimeLeer apps Realtime, canales y miembros de canalCrear apps y publicar eventos
voiceLeer logs de tramos y estadísticas de llamadasAutenticar llamadas SIP y crear credenciales de sesión
voice_managementLeer trunks, gateways, números, caller IDs y destinosGestionar trunks, gateways, números, caller IDs y destinos
mailboxLeer buzones, hilos y mensajesEnviar y responder mensajes de buzón
mailbox_managementLeer reglas de recepción y configuración de buzónCrear, actualizar y eliminar buzones y reglas de recepción
assetsLeer recursos y carpetasSubir, actualizar y eliminar recursos y carpetas
workspaceLeer el nombre del espacio de trabajo, el ID de organización y la configuraciónNo disponible
webhooksLeer suscripciones de webhook y sus intentos de entregaCrear, actualizar, eliminar, probar, reproducir y rotar el secreto de un webhook
lookupNo disponibleBuscar números de teléfono, direcciones de email y coincidencias de identidad
Cambiar la configuración del espacio de trabajo, gestionar miembros, emitir claves y gestionar pools de IP no se pueden otorgar deliberadamente a claves API, por lo que se ejecutan como persona y no como clave: a través del dashboard, o a través del servidor CLI o MCP con un grant que tenga el alcance. Otorga el conjunto más reducido que funcione: una clave que solo envía email debería tener emails:write y nada más.
lookup no tiene operaciones de nivel de lectura: cada endpoint de consulta, incluida la obtención de un resultado existente, requiere write.

Revocar una clave

Revoca una clave desde su fila en Platform tools > Claves API. La revocación es permanente: una clave revocada no se puede reactivar, y su registro se conserva para auditoría con revoked_at establecido.
La revocación se propaga rápido, pero no de forma instantánea. La validación de claves pasa por una caché de corta duración, así que una clave recién revocada puede seguir funcionando unos segundos (cinco como máximo) antes de que cada solicitud con ella devuelva 401.

Rotar una clave

La rotación emite un reemplazo de una clave que ya tienes y devuelve su token una sola vez, en esa respuesta. El reemplazo conserva el nombre, los alcances y las restricciones de IP de origen de la clave original. Comienza sin expiración. Rota una clave desde su fila en Platform tools > Claves API, o sin navegador con bird api-keys rotate y la herramienta api_keys_rotate MCP:
Ejemplo de código
bird auth login --scope api_keys:write
bird api-keys rotate key_01hqz8kp3v9x2m --yes
La clave anterior sigue funcionando durante un período de gracia, 24 horas por defecto, para que puedas desplegar el nuevo token antes de que el antiguo deje de funcionar. Pasa grace_period: 0 (--grace-period 0 en la CLI) para revocar la clave anterior de inmediato, que es lo que corresponde ante una clave filtrada: no hay solapamiento, y cada solicitud que aún la use empieza a fallar. Una clave que ya tiene configurada una expiración anterior al período de gracia conserva su propia expiración, porque la rotación nunca extiende la vida de una clave.
Antes de automatizar la rotación de claves, ten en cuenta dos restricciones. Una rotación nunca traslada la expiración, así que el reemplazo de una clave que expiraba en un momento conocido vive hasta ser revocada; vuelve a emitirla con create cuando la expiración importe. Además, una clave solo se puede rotar una vez: una segunda rotación de la misma clave devuelve 409, así que envía un Idempotency-Key y un reintento reproducirá la respuesta original. Sin él, una rotación cuya respuesta nunca recibiste habrá creado una clave activa cuyo token no puedes volver a consultar.
Solapar dos claves manualmente sigue siendo la opción más segura cuando no puedes predecir cuánto durará el cambio, porque el período de gracia se fija en el momento de rotar y no se puede extender después:
  1. Crea una nueva clave con los mismos alcances.
  2. Despliega la nueva clave en tus servicios.
  3. Observa el last_used_on de la clave antigua hasta que el tráfico se haya movido.
  4. Revoca la clave antigua.

Las claves pertenecen al espacio de trabajo

Una clave API está vinculada a tu espacio de trabajo y se autentica con la autoridad de ese espacio de trabajo. Los permisos personales del creador no la afectan. Esto tiene dos consecuencias prácticas:
  • Las claves sobreviven a las bajas. Cuando un empleado se va y su cuenta de usuario se elimina, las claves que creó siguen funcionando. Nunca tendrás una caída en producción porque la persona que hizo clic en "create" dejó la empresa. (Su salida sigue siendo un buen motivo para rotar las claves a las que tenía acceso.)
  • El alcance de la clave se detiene en el espacio de trabajo. Nunca puede realizar operaciones a nivel de organización: facturación, miembros de la organización, configuración de la organización.
Como la clave está vinculada al espacio de trabajo, las solicitudes con una clave no necesitan contexto adicional; consulta Espacio de trabajo para ver cómo el espacio de trabajo y la organización que lo contiene dividen lo que puedes alcanzar.

La ruta delegada: tokens OAuth para la CLI y el servidor MCP

Las claves API son para servicios. La Bird CLI y el servidor Bird MCP usan OAuth cuando una persona inicia sesión. Inicias sesión a través del navegador, eliges un espacio de trabajo y otorgas un subconjunto de tus permisos. La herramienta recibe entonces un token de usuario bt_{region}_... de corta duración.
Cada token está limitado a los permisos que tienes. Puedes revocar el acceso de cada herramienta en Profile > Connected apps. Las herramientas gestionan estos tokens por ti, así que no los copies ni los guardes en un gestor de secretos. Usa claves API para cargas de trabajo en servidor.

Próximos pasos