> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.anthropod.in/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.anthropod.in/_mcp/server.

# Create analysis

> Submit calls and chats for asynchronous analysis.

Send existing conversations to Anthropod for asynchronous analysis. **Batch Analytics** is part of Conversation Analytics, with a separate ingestion API for each channel.

## How batch processing works

| Step            | What happens                                                                                                                             |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Configure       | Get your account API key and service ID, confirm field mappings, and configure an analytics callback in Developer Hub.                   |
| Submit          | Send call records or chat conversations to the channel's batch endpoint.                                                                 |
| Acknowledge     | A nonempty processing ID and receipt timestamp confirm receipt, not completed analysis.                                                  |
| Receive results | Validation and analysis continue asynchronously. Your [webhook](/webhooks) receives product-specific results, including record failures. |

The existing batch endpoints can return HTTP `200` with `processing_id: null` if initiation fails. A null identifier does not confirm acceptance; contact support before resubmitting.

Keep your source conversation and customer IDs for correlation. Use the processing ID when investigating a batch. Avoid resubmitting solely because analysis has not finished.

## API reference

The endpoint pages contain the full inputs, outputs, examples, and errors:

| API           | Reference                                                                            |
| ------------- | ------------------------------------------------------------------------------------ |
| Analyze calls | [POST /call\_analytics/batch/](/api-reference/conversation-analytics/call-analytics) |
| Analyze chats | [POST /chat\_analytics/batch/](/api-reference/conversation-analytics/chat-analytics) |

To retrieve stored analytics, see [Conversation Analytics](/conversation-analytics). For service setup, large imports, or provider-specific field mappings, [contact support](/contact-support).

## Call analysis

Analyze calls recorded by your telephony provider, CRM, or other system. Send a stable call ID, customer and employee IDs, call time, and an accessible recording URL for connected calls.

#### [Call Analytics API reference](/api-reference/conversation-analytics/call-analytics)

POST /call\_analytics/batch/ — request fields, response schema, examples, and errors.

### Prepare your records

| Prepare        | Guidance                                                                                                                                   |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| Service access | Use the existing account API key and the service assigned in Developer Hub. Keep the key on your backend.                                  |
| Identifiers    | Supply stable source call, customer, and employee IDs for correlation.                                                                     |
| Call time      | Send `call_time` in Unix epoch **seconds**, not milliseconds. The current validator accepts times from 1 January 2024 through the present. |
| Recording      | Make connected-call recording URLs accessible to ingestion until processing completes.                                                     |
| Classification | Send `call_answer_status` and `call_direction` explicitly when known.                                                                      |
| Metadata       | Confirm custom fields and the supported batch size with support.                                                                           |

### Submit and receive results

Send the records in `data[]` with your `service_id`. Acceptance returns HTTP `200` with a nonempty `processing_id` and `timestamp`.

Configure the analytics callback in **Dashboard → Developer Hub → Configuration**. Follow the [webhook guide](/webhooks) for the receiving payload, authentication headers, and acknowledgement. Record validation and analysis happen asynchronously.

You can display processed Conversation and Customer views using [embedded URLs](/embedded-urls). The read APIs also support retrieving call analytics with `channel=call`; see [Conversation Analytics](/conversation-analytics) for the read workflow.

## Chat analysis

Analyze chats from your messaging, CRM, or support system. Each conversation contains your source IDs, conversation time, and a nonempty list of messages.

#### [Chat Analytics API reference](/api-reference/conversation-analytics/chat-analytics)

POST /chat\_analytics/batch/ — conversation fields, nested message schema, examples, and errors.

### Prepare your conversations

| Prepare           | Guidance                                                                                                                                            |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| Service access    | Use the existing account API key and the service assigned in Developer Hub.                                                                         |
| Identifiers       | Supply stable conversation, customer, employee, and source message IDs for correlation.                                                             |
| Conversation time | `conversation_time` uses Unix epoch **seconds**.                                                                                                    |
| Message time      | Each message's `timestamp` uses Unix epoch **milliseconds**. Preserve the existing ingestion units.                                                 |
| Messages          | Include `actor_id`, `actor_type`, `message_type`, `timestamp`, and `content`. Ordinary text uses `message_type: normal` and `content.text.content`. |
| Source mapping    | Confirm lifecycle events, non-text content, custom metadata, and batch size during setup.                                                           |

### Submit and receive results

Send conversations in `data[]` with your `service_id`. HTTP `200` with a nonempty `processing_id` and receipt `timestamp` acknowledges the batch. Validation and analysis continue asynchronously.

Configure the analytics callback in **Dashboard → Developer Hub → Configuration**. Use the [webhook guide](/webhooks) to receive and correlate successful results and record failures.

Use [embedded URLs](/embedded-urls) to display processed dashboard views. The read APIs support `channel=chat`; their [Conversation Analytics overview](/conversation-analytics) explains availability.