> ## 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

> Obtenez la paire de clés d'accès S3 de votre clé API avec GET /v1/s3/credentials, pour utiliser aws-cli, boto3, rclone et les SDK AWS avec Blob Storage.

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  La clé d'API de votre compte. Vous pouvez la trouver dans les [paramètres de votre compte](https://squarecloud.app/fr/account/security).
</ParamField>

S3 Credentials renvoie la paire de clés d'accès que les outils S3 utilisent pour signer les requêtes vers la [passerelle S3](/fr/blob-reference/s3-compatibility). La paire est **dérivée de la clé API** qui appelle cette route : un nouvel appel renvoie la même paire, et révoquer, régénérer ou laisser expirer la clé fait de même pour la paire. Il n'y a rien d'autre à renouveler ni à révoquer.

Appelez-la avec une clé API qui possède `blob:read` ou `blob:write`. La paire peut lire avec `blob:read` et écrire avec `blob:write`, comme l'indique le champ `access`.

<Warning>La `secret_access_key` donne le même accès que la clé API. Conservez-la comme la clé elle-même.</Warning>

<Tip>La paire ne change pas tant que la clé API ne change pas. Récupérez-la une fois et conservez-la dans votre gestionnaire de secrets ou dans une variable d'environnement : n'appelez pas cette route à chaque démarrage de votre application.</Tip>

### Limites de débit

<Note>10 requêtes par heure par compte (`RATE_LIMITED`, 429).</Note>

### Réponse

<ResponseField name="status" type="string">
  "success" en cas de succès, "error" sinon.
</ResponseField>

<ResponseField name="response" type="object">
  <Expandable title="Afficher l'objet">
    <ResponseField name="access_key_id" type="string">
      L'identifiant de la clé d'accès (`SQ2_...`).
    </ResponseField>

    <ResponseField name="secret_access_key" type="string">
      La clé d'accès secrète.
    </ResponseField>

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

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

    <ResponseField name="buckets" type="string[]">
      Les buckets de votre compte : `public`, `private` et `legacy`.
    </ResponseField>

    <ResponseField name="access" type="object">
      `read` et `write`, chacun valant `true` ou `false`, selon les scopes de la clé.
    </ResponseField>

    <ResponseField name="expires_at" type="ISO 8601 | null">
      Date d'expiration de la clé API, et donc de la paire. `null` si elle n'expire pas.
    </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>

### Erreurs

| Code                 | HTTP | Quand                                                                                               |
| -------------------- | ---- | --------------------------------------------------------------------------------------------------- |
| `API_KEY_REQUIRED`   | 400  | Appel effectué avec une session du tableau de bord. Utilisez une clé API.                           |
| `LEGACY_API_KEY`     | 400  | La clé utilise un ancien format qui ne peut pas signer les requêtes S3. Créez une nouvelle clé API. |
| `INVALID_CREDENTIAL` | 401  | La clé API n'a pas pu être vérifiée.                                                                |
| `MISSING_SCOPE`      | 403  | La clé ne possède ni `blob:read` ni `blob:write`.                                                   |
| `RATE_LIMITED`       | 429  | Plus de 10 requêtes en une heure.                                                                   |
