# Bitwarden API pública

La API pública de Bitwarden proporciona a las organizaciones un conjunto de herramientas para gestionar miembros, colecciones, grupos, registros de eventos y políticas.

> [!NOTE] Management of vault items in CLI
> Esta API no permite gestionar elementos individuales de la caja fuerte. Si esto es lo que necesitas lograr, utiliza la [API de gestión de caja fuerte](https://bitwarden.com/es-la/help/cli/#serve/) en su lugar.

La API pública es una API RESTful con URL orientadas a recursos predecibles, acepta cuerpos de solicitud codificados en JSON, devuelve respuestas codificadas en JSON y utiliza códigos de respuesta HTTP estándar, autenticación y verbos.

La API pública es compatible con la Especificación OpenAPI (OAS3) y publica un archivo de definición [swagger.json](https://bitwarden.com/es-la/help/api/specs/public/swagger.json/) compatible. Explora la especificación OpenAPI utilizando la interfaz de usuario Swagger:

- Para instancias alojadas en la nube pública: `https://bitwarden.com/help/api/`
- Para instancias autoalojadas: `https://your.domain.com/api/docs/`

> [!NOTE] Public API access
> El acceso a la API pública de Bitwarden está disponible para clientes en todas las organizaciones de Empresa y Equipos. Para obtener más información, consulte [Acerca de los Planes de Bitwarden](https://bitwarden.com/es-la/help/password-manager-plans/).

## Puntos finales

### URL base

Para alojamiento en la nube, `https://api.bitwarden.com` o `https://api.bitwarden.eu`.

Para autoalojado, `https://your.domain.com/api`.

### Puntos finales de autenticación

Para alojamiento en la nube, `https://identity.bitwarden.com/connect/token` o `https://identity.bitwarden.eu/connect/token`.

Para autoalojado, `https://your.domain.com/identidad/connect/token`.

## Autenticación

La API utiliza tokens de acceso portador para autenticarse con puntos finales de API protegidos. Bitwarden utiliza un flujo de solicitud de aplicación [OAuth2 Client Credentials](https://www.oauth.com/oauth2-servers/access-tokens/client-credentials/) para otorgar tokens de acceso portador desde el punto final. Las solicitudes de autenticación toman `client_id` y `client_secret` como parámetros requeridos.

> [!NOTE] API key authentication
> La clave API utilizada para la autenticación con la API pública no es **la misma** que la [clave API personal](https://bitwarden.com/es-la/help/personal-api-key/). Las claves API de la organización tendrán un `client_id` con formato `"organización.ClientId"`, mientras que las claves API personales tendrán un `client_id` con formato `"usuario.clientId"`.

La clave API `client_id` y `client_secret` pueden ser obtenidas por un propietario desde la caja fuerte de la Consola de Administrador navegando a **Ajustes** → pantalla de **Información de la organización** y desplazándose hacia abajo hasta la sección de **clave API**:

![Obtener la clave API de la organización ](https://bitwarden.com/assets/1Mq824Xunm2wmzd8f905AJ/792cca9c6edddee71abfc350479ec813/Screenshot_2024-02-28_at_2.43.34_PM.png)

Si, como propietario, quieres compartir la clave API con un administrador u otro usuario, utiliza un método de comunicación seguro como [Bitwarden Enviar](https://bitwarden.com/es-la/help/about-send/).

> [!NOTE] Rotate API key
> La clave API de su organización permite el acceso completo a su organización. Mantén tu clave de API en privado. Si cree que su clave API ha sido comprometida, seleccione **Ajustes > Información de la organización >** **Botón Rotar clave API** en esta pantalla. Las implementaciones activas de su clave API actual necesitarán ser reconfiguradas con la nueva clave antes de usarla.

### Tokens de acceso del portador

Para obtener un token de acceso del tipo portador, haga una solicitud `POST` con `Content-Type: application/x-www-form-urlencoded` con su `client_id` y `client_secret` al [punto final de autenticación](https://bitwarden.com/es-la/help/public-api/#authentication-endpoints/). Al utilizar la API para la gestión de la organización, siempre utilizarás `grant_type=client_credentials` y `scope=api.organization`. Por ejemplo:

```
curl -X POST \
 https://identity.bitwarden.com/connect/token \
 -H 'Content-Type: application/x-www-form-urlencoded' \
 -d 'grant_type=client_credentials&scope=api.organization&client_id=<ID>&client_secret=<SECRET>'
```

Esta solicitud resultará en la siguiente respuesta:

```
{
 "access_token": "<TOKEN>",
 "expires_in": 3600,
 "token_type": "Bearer"
}
```

En esta respuesta, `3600` representa el valor de expiración (en segundos), lo que significa que este token es válido durante 60 minutos después de ser emitido. Hacer una llamada API con un token caducado devolverá un `401 No autorizado` [código de respuesta](https://bitwarden.com/es-la/help/public-api/#response-codes/).

## Tipos de contenido

La API pública de Bitwarden se comunica con solicitudes y respuestas de `application/json`, con una excepción:

El [punto final de autenticación](https://bitwarden.com/es-la/help/public-api/#authentication-endpoints/) espera una solicitud `application/x-www-form-urlencoded`, sin embargo responderá con `application/json`.

## Solicitud de muestra

```
curl -X GET \
 https://api.bitwarden.com/public/collections \
 -H 'Authorization: Bearer <TOKEN>'
```

Donde `` es el valor para la clave `access_token:` en el [token de acceso del portador](https://bitwarden.com/es-la/help/public-api/#bearer-access-tokens/) obtenido.

Esta solicitud resultará en una respuesta:

```
{
 "object": "list",
 "data": [
 {
 "object": "event",
 "type": 1000,
 "itemId": "string",
 "collectionId": "string",
 "groupId": "string",
 "policyId": "string",
 "memberId": "string",
 "actingUserId": "string",
 "date": "2020-11-04T15:01:21.698Z",
 "device": 0,
 "ipAddress": "xxx.xx.xxx.x"
 }
 ],
 "continuationToken": "string"
}
```

## Estado

Bitwarden tiene una [página de estado](https://status.bitwarden.com) pública, donde puedes encontrar información sobre la salud del servicio e incidentes para todos los servicios, incluyendo la API pública.

## Códigos de respuesta

La API pública de Bitwarden utiliza códigos de respuesta HTTP convencionales para indicar el éxito o el fracaso de una solicitud de API:

| **Código de Estado** | **Descripción** |
|------|------|
| `200 OK` | Todo funcionó como se esperaba. |
| `400 Solicitud Incorrecta` | La solicitud fue inaceptable, posiblemente debido a parámetro(s) faltante(s) o mal formado(s). |
| `401 No autorizado` | El token de acceso del portador estaba ausente, inválido o expirado. |
| `404 No Encontrado` | El recurso solicitado no existe. |
| `429 Demasiadas Solicitudes` | Demasiadas solicitudes golpearon la API demasiado rápido. Recomendamos reducir el número de solicitudes. |
| `500, 502, 503, 504 Error del Servidor` | Algo salió mal en el extremo de Bitwarden. Estos son raros, pero [contáctanos](https://bitwarden.com/es-la/contact/) si ocurren. |

## Lectura adicional

Para obtener más información sobre cómo usar la API pública de Bitwarden, consulte los siguientes artículos:

- [Especificación OAS de la API pública de Bitwarden](https://bitwarden.com/es-la/help/api/)
- [Registro de Eventos](https://bitwarden.com/es-la/help/event-logs/)