> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vertracloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Obtener credenciales compatibles con S3 para Blob Storage

> Devuelve credenciales compatibles con S3 derivadas de la clave de API, para aws-cli, rclone y boto3. Límite de 10 llamadas por hora.

Devuelve credenciales compatibles con S3 para herramientas como aws-cli, rclone y boto3. El par se deriva de la clave de API
que hace la llamada, así que revocar esa clave corta el acceso S3 de inmediato. Con una clave de API que solo tiene
`blob:read`, las credenciales son de solo lectura (`access.write` es `false`). Trata `secret_access_key` como una
contraseña. Esta ruta requiere una clave de API: una sesión del panel se rechaza. Al rotar la clave de API el par se
reemplaza, así que vuelve a obtener las credenciales después.

**Ámbito:** `blob:read`.

**workspace\_id** `string`

El ID del workspace, cuando el blob pertenece a un workspace. La petición actúa sobre el blob del propietario del
workspace y necesita el permiso `blob:read` del workspace (`blob:manage` en las rutas que modifican datos). Omítelo
para actuar sobre tu propio blob.

### Ejemplo de petición

```bash theme={null}
curl "https://blob.vertracloud.app/v1/s3/credentials" \
  -H "Authorization: Bearer $VERTRA_API_KEY"
```

### Respuesta

**response** `object`

Las credenciales de S3 de la cuenta.

**propiedades**

**access\_key\_id** `string`

ID de la clave de acceso. Empieza por `VCS3`.

**secret\_access\_key** `string`

Clave secreta. Trátala como una contraseña.

**endpoint** `string`

Endpoint de S3 que debes configurar en tu herramienta.

**region** `string`

Siempre `auto`.

**buckets** `string[]`

Los dos buckets: `public` y `private`.

**access.read** `boolean`

Si las credenciales pueden leer.

**access.write** `boolean`

Si las credenciales pueden escribir. `false` con una clave de API que solo tiene `blob:read`.

```json Response theme={null}
{
  "response": {
    "access_key_id": "VCS3K7P2M9X4QA",
    "secret_access_key": "<secret>",
    "endpoint": "https://s3.vertracloud.dev",
    "region": "auto",
    "buckets": [
      "public",
      "private"
    ],
    "access": {
      "read": true,
      "write": true
    }
  }
}
```

### Respuestas de error

**code** `string`

El código de error que indica el motivo del fallo. Valores posibles:

* `AUTH_TOKEN_MISSING` (`401`): No se envió la cabecera `Authorization`.
* `API_KEY_INVALID` (`401`): La clave de API no existe, fue revocada o su secreto no coincide.
* `API_KEY_SCOPE_DENIED` (`403`): La clave no tiene el ámbito que necesita esta ruta (`blob:read` o `blob:write`); `details.required` lo indica.
* `WORKSPACE_PERMISSION_DENIED` (`403`): Solo con `workspace_id`: no eres miembro, o tu rol no tiene el permiso de blob.
* `WORKSPACE_NOT_FOUND` (`404`): Solo con `workspace_id`: no existe un workspace con ese ID, o no eres miembro.
* `VALIDATION_ERROR` (`400`): La llamada no se hizo con una clave de API; `details.reason` es `api_key_required`.
* `RATE_LIMIT_EXCEEDED` (`429`): Más de 10 llamadas en una hora. `details.retry_after` indica la espera en segundos.

```json Error Response (401) theme={null}
{
  "code": "AUTH_TOKEN_MISSING"
}
```

```json Error Response (403) theme={null}
{
  "code": "API_KEY_SCOPE_DENIED"
}
```

```json Error Response (404) theme={null}
{
  "code": "WORKSPACE_NOT_FOUND"
}
```

```json Error Response (429) theme={null}
{
  "code": "RATE_LIMIT_EXCEEDED"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.