> ## 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 di testo e chat

> Scegli l'API di testo e chat di CometAPI adatta al formato della tua richiesta: Chat Completions, Responses, Anthropic Messages o generazione di contenuti Gemini.

Usa la documentazione dei modelli di testo di CometAPI abbinando il formato della tua richiesta alla pagina che lo implementa. Per la chat compatibile con OpenAI, inizia con Chat Completions o Responses; per i formati nativi del provider, usa la pagina del provider corrispondente.

## Scegli un'API di testo e chat

<CardGroup cols={2}>
  <Card title="Crea un completamento chat" icon="message" href="/api/text/chat">
    Invia messaggi chat compatibili con OpenAI con un array `messages`.
  </Card>

  <Card title="Crea una risposta del modello" icon="sparkles" href="/api/text/responses">
    Usa reasoning, output multimodale e strumenti integrati tramite l'API Responses.
  </Card>

  <Card title="Crea un messaggio" icon="message" href="/api/text/anthropic-messages">
    Chiama i flussi di lavoro Messages compatibili con Claude con campi nativi del provider.
  </Card>

  <Card title="Genera contenuti" icon="sparkles" href="/api/text/gemini-generating-content">
    Invia richieste native di generazione di contenuti Gemini.
  </Card>
</CardGroup>

## Chiama un modello di testo

Usa qualsiasi model ID con capacità di testo dalla [pagina Models](/it/overview/models) o dalla [directory dei modelli](https://www.cometapi.com/models/). Gli esempi qui sotto chiamano l'endpoint Chat Completions compatibile con OpenAI.

<Note>
  Questi esempi usano il segnaposto `your-model-id`. Sostituiscilo con un model ID di testo disponibile dalla [pagina Models](/it/overview/models) o dalla [directory dei modelli](https://www.cometapi.com/models/) prima di eseguire la richiesta.
</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>

## Esempio di risposta

Una risposta riuscita può apparire così. I valori dei campi variano in base al modello e alla richiesta:

```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
  }
}
```

## Esempi di record di model

<Info>
  Questa risposta di esempio del catalogo modelli mostra l’involucro `/api/models` e la struttura di un record di modello di testo. Non è un elenco completo dei modelli.
</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
      }
    }
  ]
}
```

## Errori comuni

<AccordionGroup>
  <Accordion title="Chiave API mancante o non valida">
    Invia `Authorization: Bearer $COMETAPI_KEY`.
  </Accordion>

  <Accordion title="URL di base errato">
    Usa `https://api.cometapi.com/v1` per le richieste compatibili con OpenAI.
  </Accordion>

  <Accordion title="Tipo di model errato">
    Scegli un modello con capacità di testo dalla [pagina Models](/it/overview/models).
  </Accordion>

  <Accordion title="Errore di parametro specifico del provider">
    Rimuovi i campi facoltativi, poi riaggiungili uno alla volta.
  </Accordion>
</AccordionGroup>

## Codici di errore e strategia di retry

<AccordionGroup>
  <Accordion title="400">
    Non riprovare finché il corpo della richiesta non è stato corretto.
  </Accordion>

  <Accordion title="401">
    Non riprovare finché la chiave API non è presente e valida.
  </Accordion>

  <Accordion title="404">
    Controlla l’URL di base, il path e il model ID prima di riprovare.
  </Accordion>

  <Accordion title="429">
    Riprova con exponential backoff e riduci la concorrenza.
  </Accordion>

  <Accordion title="500 or 503">
    Riprova con backoff per errori temporanei del provider o del servizio.
  </Accordion>
</AccordionGroup>

<Tip>
  Per i pattern di implementazione, vedi [Error codes and retry strategy](/it/guides/error-codes-and-retry-strategy) e [Rate limits and concurrency](/it/guides/rate-limits-and-concurrency).
</Tip>

## Prezzi e directory dei modelli

<CardGroup cols={3}>
  <Card title="Pagina Models" icon="list" href="/overview/models">
    Leggi come CometAPI espone i model ID nella documentazione.
  </Card>

  <Card title="Directory dei modelli" icon="puzzle-piece" href="https://www.cometapi.com/models/">
    Esplora disponibilità e capacità dei modelli.
  </Card>

  <Card title="Prezzi" icon="tag" href="https://www.cometapi.com/pricing/">
    Controlla i prezzi prima di chiamare un modello.
  </Card>
</CardGroup>
