> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Recupera riepilogo della conversazione

GET https://api.elevenlabs.io/v1/convai/conversations/{conversation_id}/summary

Ottieni un riepilogo leggero di una conversazione: il titolo, il riepilogo generato della trascrizione, se la chiamata è andata a buon fine e, solo quando la conversazione è breve, i semplici messaggi della chat. Le chiamate agli strumenti, i risultati degli strumenti e gli aggiornamenti contestuali vengono omessi per mantenere piccola la risposta. Usalo invece dell'endpoint della conversazione completa quando ti serve solo il succo (ad esempio, per un agente che legge molte conversazioni); usa GET /v1/convai/conversations/\{conversation\_id} quando ti serve la trascrizione completa con le chiamate agli strumenti e gli aggiornamenti contestuali.

Reference: https://elevenlabs.io/docs/api-reference/conversations/get-summary

## Servers

- `https://api.elevenlabs.io` (Production, default)
- `https://api.us.elevenlabs.io` (Production US)
- `https://api.eu.residency.elevenlabs.io` (Production EU)
- `https://api.in.residency.elevenlabs.io` (Production India)
- `https://api.sg.residency.elevenlabs.io` (Production Singapore)

## Request

### Path parameters

- `conversation_id` (string, required) — L'ID della conversazione su cui stai eseguendo l'azione.

### Query parameters

- `max_messages` (integer, optional, default: 40) — Numero massimo di turni di messaggi chat da includere inline. Quando la conversazione ne contiene di più, i messaggi vengono omessi e viene impostato messages_omitted.

## Response

### 200

Risposta riuscita

- `conversation_id` (string, required)
- `agent_id` (string, required)
- `status` (enum, required)
  - Allowed values: `initiated`, `in-progress`, `processing`, `done`, `failed`
- `message_count` (integer, required) — Numero di turni di messaggi di chat semplice nella conversazione.
- `note` (string, required) — Indicazioni che spiegano all'agente come ottenere la trascrizione completa.
- `call_summary_title` (string, optional, nullable) — Breve titolo generato per la conversazione.
- `transcript_summary` (string, optional, nullable) — Riepilogo della chiamata generato in linguaggio naturale.
- `call_successful` (enum, optional, nullable)
  - Allowed values: `success`, `failure`, `unknown`
- `messages` (list of ConversationSummaryMessageModel, optional, nullable) — I messaggi di chat semplici, contenenti solo ruolo e testo. Inclusi solo quando message_count non supera max_messages richiesto; altrimenti sono null e messages_omitted è true.
- `messages_omitted` (boolean, optional, default: false) — True quando i messaggi della chat sono stati omessi perché la conversazione era troppo lunga. Recupera la trascrizione completa per visualizzare i messaggi.

## Errors

### 422 Unprocessable Entity Error

Errore di convalida

- `detail` (list of ValidationError, optional)

## Types

### ConversationSummaryMessageModel

- `role` (enum, required)
  - Allowed values: `user`, `agent`
- `message` (string, required)

### ValidationError

- `loc` (list of ValidationErrorLocItems, required)
- `msg` (string, required)
- `type` (string, required)

### ValidationErrorLocItems

## Examples

**Response**

```json
{
  "conversation_id": "string",
  "agent_id": "string",
  "status": "initiated",
  "message_count": 1,
  "note": "string",
  "call_summary_title": "string",
  "transcript_summary": "string",
  "call_successful": "success",
  "messages": [
    {
      "role": "user",
      "message": "string"
    }
  ],
  "messages_omitted": false
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/conversations/21m00Tcm4TlvDq8ikWAM/summary"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/convai/conversations/21m00Tcm4TlvDq8ikWAM/summary';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.elevenlabs.io/v1/convai/conversations/21m00Tcm4TlvDq8ikWAM/summary"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.elevenlabs.io/v1/convai/conversations/21m00Tcm4TlvDq8ikWAM/summary")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.elevenlabs.io/v1/convai/conversations/21m00Tcm4TlvDq8ikWAM/summary")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.elevenlabs.io/v1/convai/conversations/21m00Tcm4TlvDq8ikWAM/summary');

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/conversations/21m00Tcm4TlvDq8ikWAM/summary");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/convai/conversations/21m00Tcm4TlvDq8ikWAM/summary")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```