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

# Conventions d'appel

> Instructions concernant l'authentification, la structure des erreurs, les énumérations courantes et la consultation des tâches asynchrones.

## Méthodes d'authentification

Toutes les interfaces publiques utilisent par défaut Bearer Token :

```http theme={null}
Authorization: Bearer YOUR_API_KEY
```

Adresse de base :

```text theme={null}
https://api.aiid.edu.kg
```

Certaines interfaces de format natif ou dédiées à des modèles ont des chemins différents, mais utilisent toujours le même mécanisme d’authentification par clé API.

## Structure d'erreur

Lors du dépannage de requêtes ayant échoué, concentrez-vous en priorité sur :

* Codes d’état HTTP
* `error.code`
* `error.message`

Structure typique :

```json theme={null}
{
  "error": {
    "code": "invalid_request_error",
    "message": "the reason why error occurred"
  }
}
```

## Codes d'état courants

| HTTP | Signification                   | Recommandation                                                                 |
| ---- | ------------------------------- | ------------------------------------------------------------------------------ |
| 400  | Paramètres de requête invalides | Vérifier les champs obligatoires, le nom du modèle et les paramètres de chemin |
| 401  | Échec de l’authentification     | Vérifiez si la clé API est valide                                              |
| 404  | Chemin ou tâche inexistant      | Vérifier le chemin de la requête et l'ID de la tâche                           |
| 429  | Limite de débit atteinte        | Réduire la fréquence ou réessayer                                              |
| 500  | Erreur interne du serveur       | Enregistrer la requête et réessayer ou contacter le support                    |

## Énumérations d'état courantes

Énumération des rôles courants :

* `system`
* `user`
* `assistant`

États courants des tâches longues :

* `queued`
* `running`
* `succeeded`
* `failed`
* `in_progress`
* `completed`

Les champs d'état renvoyés par les différentes interfaces vidéo peuvent varier légèrement, mais la sémantique tourne autour de « En attente / En cours / Terminé / Échec ».

## Requête de tâche asynchrone

La documentation publique actuelle se concentre principalement sur la « requête active des résultats de tâche », les méthodes courantes incluent :

* `GET /v1/videos/{task_id}`
* `GET /v1/responses/{response_id}`
* `GET /api/v3/contents/generations/tasks/{task_id}`
* `GET /suno/fetch/{task_id}`
* `GET /ent/v2/tasks/{task_id}/creations`
* `GET /v1beta/{operation_name}`

Suggestions d'intégration :

* Implémenter des mécanismes de retry et d'exponential backoff pour les requêtes de tâches
* Persister `task_id` ou `operation_name`
* La consultation des résultats sert de mécanisme de secours pour le suivi des tâches asynchrones
