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

# Blob S3 Credentials

> Obtén el par de claves de acceso S3 de tu API key con GET /v1/s3/credentials, para usar aws-cli, boto3, rclone y los SDK de AWS con Blob Storage.

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  La clave de API de tu cuenta. Puedes encontrarla en la [configuración de tu cuenta](https://squarecloud.app/es/account/security).
</ParamField>

S3 Credentials devuelve el par de claves de acceso que las herramientas S3 usan para firmar solicitudes al [gateway S3](/es/blob-reference/s3-compatibility). El par se **deriva de la API key** que llama a esta ruta: llamar de nuevo devuelve el mismo par, y revocar, regenerar o dejar expirar la key hace lo mismo con el par. No hay nada más que rotar ni revocar.

Llámala con una API key que tenga `blob:read` o `blob:write`. El par puede leer con `blob:read` y escribir con `blob:write`, como muestra el campo `access`.

<Warning>La `secret_access_key` da el mismo acceso que la API key. Guárdala igual que la propia key.</Warning>

<Tip>El par no cambia mientras la API key no cambie. Obtenlo una vez y guárdalo en tu gestor de secretos o en una variable de entorno: no llames a esta ruta cada vez que tu aplicación arranque.</Tip>

### Límites de tasa

<Note>10 solicitudes por hora por cuenta (`RATE_LIMITED`, 429).</Note>

### Respuesta

<ResponseField name="status" type="string">
  "success" si tuvo éxito, "error" si no.
</ResponseField>

<ResponseField name="response" type="object">
  <Expandable title="Alternar objeto">
    <ResponseField name="access_key_id" type="string">
      El id de la clave de acceso (`SQ2_...`).
    </ResponseField>

    <ResponseField name="secret_access_key" type="string">
      La clave de acceso secreta.
    </ResponseField>

    <ResponseField name="endpoint" type="string">
      `https://s3-blob.squarecloud.app`
    </ResponseField>

    <ResponseField name="region" type="string">
      `auto`
    </ResponseField>

    <ResponseField name="buckets" type="string[]">
      Los buckets de tu cuenta: `public`, `private` y `legacy`.
    </ResponseField>

    <ResponseField name="access" type="object">
      `read` y `write`, cada uno `true` o `false`, según los scopes de la key.
    </ResponseField>

    <ResponseField name="expires_at" type="ISO 8601 | null">
      Cuándo expira la API key, y por tanto el par. `null` cuando no expira.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://blob.squarecloud.app/v1/s3/credentials' \
    --header 'Authorization: YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "status": "success",
    "response": {
      "access_key_id": "SQ2_3155597145698959364_k7Hq2mX9",
      "secret_access_key": "vR8nLq2Wz5Tc1Yb7Hs0Kd4Jf6Gm3Pa9Xe",
      "endpoint": "https://s3-blob.squarecloud.app",
      "region": "auto",
      "buckets": ["public", "private", "legacy"],
      "access": { "read": true, "write": true },
      "expires_at": null
    }
  }
  ```
</ResponseExample>

### Errores

| Código               | HTTP | Cuándo                                                                                    |
| -------------------- | ---- | ----------------------------------------------------------------------------------------- |
| `API_KEY_REQUIRED`   | 400  | Se llamó con una sesión del dashboard. Usa una API key.                                   |
| `LEGACY_API_KEY`     | 400  | La key usa un formato antiguo que no puede firmar solicitudes S3. Crea una API key nueva. |
| `INVALID_CREDENTIAL` | 401  | No se pudo verificar la API key.                                                          |
| `MISSING_SCOPE`      | 403  | La key no tiene ni `blob:read` ni `blob:write`.                                           |
| `RATE_LIMITED`       | 429  | Más de 10 solicitudes en una hora.                                                        |
