# Crear un token Bearer

POST`https://api2.transloadit.com/token`

Este endpoint intercambia tu Auth Key yAuth Secret por un token Bearer de corta duración. Replica el flujo `client_credentials` de OAuth 2.0, pero lo gestiona directamente la API de Transloadit.

Los tokens se generan del lado del servidor mediante este endpoint usando tu Auth Key y Auth Secret. Si expones la creación de tokens mediante una interfaz de usuario, llama a `/token` desde tu backend (nunca directamente desde el navegador).

Las solicitudes deben usar `application/x-www-form-urlencoded` y autenticación HTTP Basic:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_GBjmaCTpH3rF6sBBsH4gkTL4K8CU)

```
curl --request POST --url 'https://api2.transloadit.com/token' --user 'auth_key:auth_secret' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'grant_type=client_credentials' --data-urlencode 'scope=assemblies:read assemblies:write'
```

## Campos de POST

* Es obligatorio incluir `grant_type`. Debe ser `client_credentials`.
* Incluir `scope` es opcional. Lista opcional de ámbitos separados por espacios o comas. Si se omite, el token hereda todos los ámbitos concedidos a tu Auth Key.
* Incluir `aud` es opcional. Valor de audiencia opcional. El valor predeterminado es `api2`.

Usa el token devuelto con `Authorization: Bearer <access_token>` en las solicitudes a la API. Cuando una solicitud se autentica con un token Bearer válido, API2 considera satisfecha la Signature Authenticationy omite la validación de la firma. Signature Authentication solo se aplica a las solicitudes con Auth Key y Auth Secret. Las comprobaciones de ámbitos siguen aplicándose. Los tokens son válidos durante seis horas (`expires_in` es `21600`). El valor `aud` se almacena para aplicar restricciones de audiencia en el futuro.

## Respuesta

Este es un ejemplo del cuerpo de la respuesta:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_GBjmaCTpH3rF6sBBsH4gkTL4K8CU)

```
{
  "access_token": "opaque-token",
  "token_type": "Bearer",
  "expires_in": 21600,
  "scope": "assemblies:read assemblies:write"
}
```

Si se procesa correctamente, esta solicitud devuelve una respuesta JSON con los detalles del token. Si se produce un error, contiene un campo `error` con el código de estado del error y un campo `message` que describe lo que salió mal.
