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

# API de texte et de chat

> Choisissez l’API de texte et de chat CometAPI adaptée à votre format de requête : Chat Completions, Responses, Anthropic Messages ou génération de contenu Gemini.

Utilisez la documentation des modèles de texte CometAPI en faisant correspondre votre format de requête à la page qui l’implémente. Pour le chat compatible OpenAI, commencez par Chat Completions ou Responses ; pour les formats natifs des fournisseurs, utilisez la page du fournisseur correspondante.

## Choisir une API de texte et de chat

<CardGroup cols={2}>
  <Card title="Créer une chat completion" icon="message" href="/api/text/chat">
    Envoyez des messages de chat compatibles OpenAI avec un tableau `messages`.
  </Card>

  <Card title="Créer une réponse de modèle" icon="sparkles" href="/api/text/responses">
    Utilisez le raisonnement, la sortie multimodale et les outils intégrés via l’API Responses.
  </Card>

  <Card title="Créer un Message" icon="message" href="/api/text/anthropic-messages">
    Appelez des workflows Messages compatibles Claude avec des champs natifs du fournisseur.
  </Card>

  <Card title="Générer du contenu" icon="sparkles" href="/api/text/gemini-generating-content">
    Envoyez des requêtes de génération de contenu natives Gemini.
  </Card>
</CardGroup>

## Appeler un modèle de texte

Utilisez n’importe quel model ID capable de gérer du texte depuis la [page Models](/fr/overview/models) ou le [répertoire des modèles](https://www.cometapi.com/models/). Les exemples ci-dessous appellent le point de terminaison Chat Completions compatible OpenAI.

<Note>
  Ces exemples utilisent l’espace réservé `your-model-id`. Remplacez-le par un model ID de texte disponible depuis la [page Models](/fr/overview/models) ou le [répertoire des modèles](https://www.cometapi.com/models/) avant d’exécuter la requête.
</Note>

<CodeGroup>
  ```python Python theme={null}
  import os
  import requests

  response = requests.post(
      "https://api.cometapi.com/v1/chat/completions",
      headers={
          "Authorization": "Bearer " + os.environ["COMETAPI_KEY"],
          "Content-Type": "application/json",
      },
      json={
          "model": "your-model-id",
          "messages": [
              {
                  "role": "user",
                  "content": "Write one sentence about CometAPI.",
              }
          ],
      },
      timeout=30,
  )

  response.raise_for_status()
  result = response.json()
  print(result["choices"][0]["message"]["content"])
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://api.cometapi.com/v1/chat/completions", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.COMETAPI_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "your-model-id",
      messages: [
        {
          role: "user",
          content: "Write one sentence about CometAPI.",
        },
      ],
    }),
  });

  if (!response.ok) {
    throw new Error(await response.text());
  }

  const result = await response.json();
  console.log(result.choices[0].message.content);
  ```

  ```bash cURL theme={null}
  curl https://api.cometapi.com/v1/chat/completions \
    -H "Authorization: Bearer $COMETAPI_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "your-model-id",
      "messages": [
        {
          "role": "user",
          "content": "Write one sentence about CometAPI."
        }
      ]
    }'
  ```
</CodeGroup>

## Exemple de réponse

Une réponse réussie peut ressembler à ceci. Les valeurs des champs varient selon le modèle et la requête :

```json theme={null}
{
  "id": "chatcmpl_example",
  "object": "chat.completion",
  "created": 1779960520,
  "model": "your-model-id",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "CometAPI lets developers route model requests through one API surface."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 14,
    "total_tokens": 26
  }
}
```

## Exemples d’enregistrements de modèles

<Info>
  Cet exemple de réponse du catalogue de modèles montre l’enveloppe `/api/models` et la forme d’un enregistrement de modèle de texte. Il ne s’agit pas d’une liste complète de modèles.
</Info>

```bash cURL theme={null}
curl https://api.cometapi.com/api/models
```

```json theme={null}
{
  "success": true,
  "page": 1,
  "page_size": 20,
  "total": 302,
  "data": [
    {
      "created": 1773798949,
      "id": "your-text-model-id",
      "code": "your-text-model-id",
      "provider": "ExampleProvider",
      "provider_code": "example",
      "name": "Example text model",
      "model_type": "text",
      "features": [
        "text-to-text"
      ],
      "endpoints": "{\n  \"openai-chat\": {\n    \"path\": \"/v1/chat/completions\",\n    \"method\": \"POST\"\n  }\n}",
      "pricing": {
        "currency": "USD / M Tokens",
        "input": 0.5,
        "output": 1.5,
        "per_request": null,
        "per_second": null
      }
    }
  ]
}
```

## Erreurs courantes

<AccordionGroup>
  <Accordion title="Clé API manquante ou invalide">
    Envoyez `Authorization: Bearer $COMETAPI_KEY`.
  </Accordion>

  <Accordion title="Mauvaise URL de base">
    Utilisez `https://api.cometapi.com/v1` pour les requêtes compatibles OpenAI.
  </Accordion>

  <Accordion title="Mauvais type de modèle">
    Choisissez un modèle capable de traiter du texte depuis la [page Models](/fr/overview/models).
  </Accordion>

  <Accordion title="Erreur de paramètre spécifique au fournisseur">
    Supprimez les champs optionnels, puis rajoutez-les un par un.
  </Accordion>
</AccordionGroup>

## Codes d’erreur et stratégie de retry

<AccordionGroup>
  <Accordion title="400">
    Ne réessayez pas tant que le corps de la requête n’est pas corrigé.
  </Accordion>

  <Accordion title="401">
    Ne réessayez pas tant que la clé API n’est pas présente et valide.
  </Accordion>

  <Accordion title="404">
    Vérifiez l’URL de base, le chemin et le model ID avant de réessayer.
  </Accordion>

  <Accordion title="429">
    Réessayez avec un backoff exponentiel et réduisez la concurrence.
  </Accordion>

  <Accordion title="500 or 503">
    Réessayez avec un backoff pour les erreurs transitoires du fournisseur ou du service.
  </Accordion>
</AccordionGroup>

<Tip>
  Pour des modèles d’implémentation, consultez [Error codes and retry strategy](/fr/guides/error-codes-and-retry-strategy) et [Rate limits and concurrency](/fr/guides/rate-limits-and-concurrency).
</Tip>

## Tarification et répertoire de modèles

<CardGroup cols={3}>
  <Card title="Page Models" icon="list" href="/overview/models">
    Découvrez comment CometAPI expose les model IDs dans la documentation.
  </Card>

  <Card title="Répertoire de modèles" icon="puzzle-piece" href="https://www.cometapi.com/models/">
    Parcourez la disponibilité et les capacités des modèles.
  </Card>

  <Card title="Tarification" icon="tag" href="https://www.cometapi.com/pricing/">
    Vérifiez la tarification avant d’appeler un modèle.
  </Card>
</CardGroup>
