# Introduction

> Ce que propose l'API AYETO, comment elle est structurée et comment envoyer la première requête.

L'API AYETO permet à votre application de faire ce qu'un utilisateur fait dans l'application
AYETO : discuter avec des modèles et des assistants, lire et gérer des conversations, exécuter
des workflows, décider des approbations de workflow et travailler avec les bases de données
des panneaux Booster. Chaque requête agit au nom de l'utilisateur propriétaire de la clé API,
avec ses permissions et ses crédits.

## URL de base

Tous les endpoints se trouvent sous une même URL de base :

```text
https://ayeto.ai/api/v3
```

L'API est versionnée dans le chemin. La version 3 est l'API destinée aux intégrations ; les
autres chemins que vous pouvez voir dans l'application AYETO (comme `/api/v1`) sont internes
à l'application et peuvent changer sans préavis.

## Structure de l'API

- **RPC sur POST.** Presque chaque endpoint est un `POST` avec un corps JSON, nommé d'après
  ce qu'il fait : `/conversation/find`, `/conversation/count`, `/workflow/run`. Il n'existe
  pas de routes `GET /resource/{id}` ni `DELETE`. Voir [Requêtes](conventions.md#requetes).
- **Authentification par clé API.** Envoyez la clé dans l'en-tête `uni-api-key`. Chaque clé
  porte des portées qui déterminent les endpoints qu'elle peut appeler. Voir
  [Authentification](authentication.md).
- **Les listes s'interrogent avec une seule forme de corps.** Les endpoints `find` et `count`
  prennent les filtres, le tri et la pagination dans le corps. Voir
  [Interroger des listes](conventions.md#interroger-des-listes).
- **Les erreurs sont du JSON** de la forme `{"detail": "..."}` avec un statut HTTP pertinent.
  Voir [Erreurs](conventions.md#erreurs).
- **Les réponses longues sont streamées.** Les réponses du chat et les exécutions de workflow
  peuvent être reçues en streaming au fur et à mesure de leur production. Voir
  [Streaming](streaming.md).

## Démarrage rapide

1. Dans l'application AYETO, ouvrez **Profil → Clés API**, créez une clé avec la portée
   **Chat AYETO** et copiez-la. La clé n'est affichée qu'une seule fois.
2. Conservez-la dans une variable d'environnement :

   ```bash
   export AYETO_API_KEY="ayeto-..."
   ```

3. Posez une question à un modèle :

   ```bash
   curl -X POST "https://ayeto.ai/api/v3/chat" \
     -H "uni-api-key: $AYETO_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{"model": "gpt-5-mini", "message": "Summarize the benefits of unit tests in three bullet points."}'
   ```

   La réponse revient sous la forme d'un objet message ; son `content` est en Markdown. Pour
   poursuivre une conversation, générez vous-même un UUID, envoyez-le comme `conversation_id`
   avec le premier message, puis à nouveau avec chaque message suivant (voir [Chat](chat.md)).
   Les identifiants de modèles utilisables sont listés par [`/ai_model/get_all`](models-and-tools.md).

## Pour aller plus loin

| Page | Contenu |
|---|---|
| [Authentification](authentication.md) | Clés API, portées, erreurs d'authentification |
| [Conventions](conventions.md) | Forme des requêtes, champs communs, filtres, pagination, erreurs, limites de débit |
| [Streaming](streaming.md) | Lire les réponses du chat en streaming |
| [Chat](chat.md) | Envoyer des messages aux modèles et aux assistants |
| [Conversations](conversations.md) | Lister, lire et supprimer des conversations |
| [Assistants](assistants.md) | Lister les assistants et leurs avatars |
| [Modèles et outils](models-and-tools.md) | Les modèles et outils d'IA disponibles pour l'utilisateur de la clé |
| [Workflows](workflows.md) | Exécuter, modifier et publier des workflows, approbations, webhooks |
| [Base de données booster](booster-database.md) | Enregistrements dans les bases de données des panneaux Booster |
| [Compte](account.md) | Crédits, appartenance aux organisations, coût d'utilisation, version de l'API |
| [Fichiers et médias](files-and-media.md) | Extraire le texte de fichiers, synthèse vocale |
| [Journal des modifications](changelog.md) | Modifications de l'API |
