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

# Get Call Extractions

> Retrieve extracted data from voice call conversations

## Overview

Retrieve all data extracted from a voice call, including:

* **Extracted fields** - Custom data points extracted from the conversation
* **Extraction config** - What fields were configured for extraction
* **Lead outcome** - Classification result (qualified, dnc, pending, etc.)
* **Objective status** - Whether call objective was met

Extraction happens automatically after each call when `extraction_fields` is configured on the agent.

<Info>
  All extracted data is automatically white-labeled (technology provider names removed).
</Info>

***

## Authentication

<ParamField header="X-API-Key" type="string" required>
  Your Teli API key
</ParamField>

***

## Path Parameters

<ParamField path="call_id" type="string" required>
  The call ID to retrieve extractions for
</ParamField>

***

## Response

<ResponseExample>
  ```json 200 - Success theme={null}
  {
    "success": true,
    "call_id": "call_9edb137b8014366b8cf399330da",
    "extraction_config": ["credit_score", "loan_amount", "interest_rate", "loan_type"],
    "extracted_fields": {
      "credit_score": "720",
      "loan_amount": "$350,000",
      "interest_rate": "6.5%",
      "loan_type": "30-year fixed"
    },
    "extracted_at": "2026-01-23T19:45:32Z",
    "call_status": "ended",
    "call_successful": true
  }
  ```

  ```json 404 - Call Not Found theme={null}
  {
    "error": "Call not found",
    "success": false,
    "powered_by": "Teli"
  }
  ```
</ResponseExample>

***

## Response Fields

<ResponseField name="success" type="boolean">
  Whether the request was successful
</ResponseField>

<ResponseField name="call_id" type="string">
  The call identifier
</ResponseField>

<ResponseField name="extraction_config" type="array">
  List of fields that were configured for extraction on the agent
</ResponseField>

<ResponseField name="extracted_fields" type="object">
  JSONB object containing all extracted key-value pairs

  Example:

  ```json theme={null}
  {
    "credit_score": "720",
    "loan_amount": "$350,000",
    "interest_rate": "6.5%"
  }
  ```
</ResponseField>

<ResponseField name="extracted_at" type="string">
  ISO timestamp when data was extracted
</ResponseField>

<ResponseField name="call_status" type="string">
  Call status: `ended`, `ongoing`, `error`
</ResponseField>

<ResponseField name="call_successful" type="boolean">
  Whether the call was successful
</ResponseField>

***

## Request Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://api.teli.ai/v1/voice/calls/call_9edb137b8014366b8cf399330da/extractions" \
    -H "X-API-Key: YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://api.teli.ai/v1/voice/calls/call_9edb137b8014366b8cf399330da/extractions',
    {
      headers: {
        'X-API-Key': 'YOUR_API_KEY'
      }
    }
  );

  const data = await response.json();
  console.log(data.extracted_fields);
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://api.teli.ai/v1/voice/calls/call_9edb137b8014366b8cf399330da/extractions',
      headers={'X-API-Key': 'YOUR_API_KEY'}
  )

  data = response.json()
  print(data['extracted_fields'])
  ```
</CodeGroup>

***

## Get Extractions by Phone Number

**Endpoint:** `GET /v1/voice/extractions/phone/{phone_number}`

Retrieve all extractions for a specific phone number across all calls.

### Path Parameters

<ParamField path="phone_number" type="string" required>
  Phone number in E.164 format (e.g., `+15551234567`)
</ParamField>

### Query Parameters

<ParamField query="organization_id" type="string" required>
  Organization unique\_id to filter by
</ParamField>

<ParamField query="limit" type="number" default="50">
  Maximum results to return (max: 100)
</ParamField>

### Response

```json 200 - Success theme={null}
{
  "success": true,
  "phone_number": "+15551234567",
  "extractions": [
    {
      "call_id": "call_xxx",
      "extracted_fields": {
        "credit_score": "720",
        "loan_amount": "$350,000"
      },
      "extraction_config": ["credit_score", "loan_amount", "interest_rate"],
      "lead_outcome": "qualified",
      "objective_met": true,
      "call_date": 1763586795333,
      "call_duration_ms": 57610,
      "call_successful": true,
      "extracted_at": "2026-01-23T19:45:32Z"
    },
    {
      "call_id": "call_yyy",
      "extracted_fields": {
        "interested": "no"
      },
      "lead_outcome": "dnc",
      "objective_met": false,
      "call_date": 1763486795333,
      "call_duration_ms": 25000,
      "extracted_at": "2026-01-22T14:20:15Z"
    }
  ],
  "count": 2
}
```

### Request Example

```bash cURL theme={null}
curl -X GET "https://api.teli.ai/v1/voice/extractions/phone/+15551234567?organization_id=org_xxx" \
  -H "X-API-Key: YOUR_API_KEY"
```

***

## Use Cases

### Lead Qualification

Extract key qualifying information:

```json theme={null}
"extraction_fields": ["budget", "timeline", "credit_score", "interested"]
```

### Customer Support

Capture support details:

```json theme={null}
"extraction_fields": ["issue_type", "account_number", "resolution_needed", "satisfaction"]
```

### Appointment Scheduling

Extract booking details:

```json theme={null}
"extraction_fields": ["preferred_date", "preferred_time", "appointment_reason", "special_requests"]
```

### Sales Calls

Capture deal information:

```json theme={null}
"extraction_fields": ["product_interest", "quantity", "budget", "decision_timeframe", "decision_maker"]
```

***

## Best Practices

<Check>
  **Keep fields simple** - Use clear, descriptive field names (e.g., `email`, `phone_number`, `budget`)
</Check>

<Check>
  **Limit field count** - Extract 5-10 fields max per call for best results
</Check>

<Check>
  **Configure on agent** - Set extraction\_fields when creating agent for automatic extraction
</Check>

<Check>
  **Poll for results** - Use Get Call Details endpoint to check when extraction is complete
</Check>

***

## Notes

<Warning>
  * Extraction happens automatically **after call ends** (not during call)
  * Results available within 5-10 seconds of call completion
  * Empty `extracted_fields` means either:
    * No extraction\_fields configured on agent
    * Call ended before information could be gathered
    * Transcript didn't contain requested information
  * All field keys and values are automatically white-labeled
</Warning>

***

## Related Endpoints

* [Create Voice Agent](/partner-api/agents/create-voice) - Configure extraction\_fields
* [Update Voice Agent](/partner-api/agents/update-voice) - Update extraction\_fields
* [Get Call Details](/partner-api/call-history/get) - Get full call with transcript
* [List Calls](/partner-api/call-history/list) - List all calls
