
# Définir une autorisation d'API d'application

`PUT /v1/applications/{application_id}/api-grants/{api_id}` · permission `applications:write`

Remplace, dans son intégralité, les scopes qu'une application peut demander pour une API. Une application peut détenir des autorisations pour au maximum 50 API.

## Demande

| Paramètre | Dans | Description |
|---|---|---|
| `application_id` | path | Identifiant de l'application (`app_…`). |
| `api_id` | path | Identifiant de l'API (`api_…`). |

**Corps**

| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| `scopes` | string[] | oui | Scopes autorisés (`resource:action`) ; chacun doit être défini sur l'API. Au maximum 1000. |
| `default_scopes` | string[] | non | Scopes accordés par défaut ; un sous-ensemble de `scopes`. |

## Réponse

`200 OK` avec l'autorisation.

```json
{
  "application_id": "app_6f8d0cjgbmf0gtn2rg6pscp3cg",
  "api_id": "api_0000000000000000000000001z",
  "scopes": ["orders:read", "orders:write"],
  "default_scopes": ["orders:read"],
  "created_at": "2026-10-05T10:00:01Z",
  "updated_at": "2026-10-05T10:00:01Z"
}
```

## Erreurs

| HTTP | `code` | Quand |
|---|---|---|
| 401 | `unauthenticated` | La clé est manquante, invalide ou révoquée. |
| 403 | `insufficient_permissions` | La clé n'a pas la permission requise. |
| 404 | `not_found` | L'application ou l'autorisation n'existe pas dans cet environnement. |
| 422 | `validation_failed` | Un scope est malformé ou non défini sur l'API, ou `default_scopes` n'est pas un sous-ensemble de `scopes`. |
| 403 | `quota_exceeded` | L'application détient déjà des autorisations pour 50 API. |
| 400 | `unknown_field` | Le corps a un champ qui ne fait pas partie du schéma. |

## Exemple

```bash
curl -X PUT https://api.eu.keenauth.com/v1/applications/app_6f8d0cjgbmf0gtn2rg6pscp3cg/api-grants/api_0000000000000000000000001z \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"scopes":["orders:read","orders:write"],"default_scopes":["orders:read"]}'
```
