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

# Logs overview

> Compare Calls, Chat, Sessions, Webhooks, and API in Vapi Logs to choose the right log, understand what it records, and find the available access method.

The **Logs** section of the [Dashboard](https://dashboard.vapi.ai) brings together retained activity across five tabs:

* **Calls**: voice calls, including transcripts, messages, recordings, analysis, latency, and cost when available.
* **Chat**: text conversations with an assistant.
* **Sessions**: conversation state that persists across chats.
* **Webhooks**: logged server-message delivery operations from Vapi to your server.
* **API**: requests logged by the Vapi API.

## Retention and logging configuration

Log generation, history availability, and data deletion are separate controls. An activity must happen before Vapi can log it. What remains available then depends on your subscription, compliance mode, and any settings for that log type.

Usage only and each Success Package determine how far back history is available in Vapi. The Extended Retention add-on can raise the call and chat history windows. Calls use the call-history window, Chat and Sessions use the chat-history window, and Webhooks and API use the longer of the two. See [Pricing and Success Packages](/billing/pricing-and-success-packages#whats-included).

The separately billed Data Retention add-on enables an organization setting that clears eligible call, chat, and session content after the configured number of days. It does not delete Webhook or API logs. See [Manage Success Packages and add-ons](/billing/manage-packages-and-add-ons#buy-compliance-and-data-add-ons).

Compliance settings can also change what Vapi stores:

* **ZDR:** For calls, [Zero Data Retention (ZDR)](/security-and-privacy/zero-data-retention) prevents Vapi from storing recordings, transcripts, messages, summaries, and detailed pipeline logs. Call records and limited operational data, including cost and performance metrics, remain available. ZDR also prevents Vapi from storing Webhook and API request logs.
* **HIPAA:** [HIPAA mode](/security-and-privacy/hipaa) uses HIPAA-compliant storage for supported call logs, recordings, and transcripts. API and Webhook logs use the HIPAA log store when HIPAA with Data Retention is enabled. Configured retention and artifact settings still apply.

ZDR and HIPAA mode cannot be enabled together.

| Surface                                              | Do you need to enable logging?                                                | What configuration affects it?                                                                                                                                                                                                                                                |
| ---------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Calls](/observability/logs/call-logs)               | No. Vapi creates the call record automatically.                               | **Logging**, **Audio Recording**, and **Transcript** are enabled by default and controlled separately under **Assistants → Advanced → Recording & Artifacts**. **Logging** controls detailed pipeline logging, not the call record.                                           |
| [Chat](/observability/logs/chat-logs)                | No. Chat logging has no separate enable or disable switch.                    | For chats that Vapi stores, the subscription's chat-history window limits how long the record remains available.                                                                                                                                                              |
| [Sessions](/observability/logs/session-logs)         | No. Session logging has no separate enable or disable switch.                 | For sessions that Vapi stores, the chat-history window limits how long the record remains available. Session expiration controls how long a session remains active, not how long its history is available.                                                                    |
| [Webhooks](/observability/logs/webhook-logs)         | No. Vapi creates a log when it attempts a configured server-message delivery. | Your Server URL and event configuration determine which deliveries happen. The assistant's **Logging** setting does not disable Webhook-tab logs. ZDR prevents the log from being written; the subscription log-history window limits how long written logs remain available. |
| [API requests](/observability/logs/api-request-logs) | No. Vapi automatically logs requests that reach its API logging layer.        | There is no separate switch, and the assistant's **Logging** setting does not control this log type. Requests rejected before the logging layer might not appear. The subscription log-history window limits availability; ZDR prevents Vapi from writing API request logs.   |

## Which log answers which question

| You want to...                             | Look in                                                  |
| ------------------------------------------ | -------------------------------------------------------- |
| See what happened on a phone or web call   | [Call logs](/observability/logs/call-logs)               |
| Review a text conversation                 | [Chat logs](/observability/logs/chat-logs)               |
| Understand why a conversation lost context | [Session logs](/observability/logs/session-logs)         |
| Review a logged server-message delivery    | [Webhook logs](/observability/logs/webhook-logs)         |
| Inspect a logged API request and response  | [API request logs](/observability/logs/api-request-logs) |

## Filter and find

Use the search and filters available on each tab. Calls, Chat, Sessions, and Webhooks support time-range filtering and log-specific filters. The API tab supports text search.

## Access logs

The Dashboard provides all five log types. Calls, chats, and sessions also have public resource endpoints.

| Surface                                                  | Dashboard       | Public API                                                                                 |
| -------------------------------------------------------- | --------------- | ------------------------------------------------------------------------------------------ |
| [Call logs](/observability/logs/call-logs)               | Logs → Calls    | [List calls](/api-reference/calls/list) / [Get call](/api-reference/calls/get)             |
| [Chat logs](/observability/logs/chat-logs)               | Logs → Chat     | [List chats](/api-reference/chats/list) / [Get chat](/api-reference/chats/get)             |
| [Session logs](/observability/logs/session-logs)         | Logs → Sessions | [List sessions](/api-reference/sessions/list) / [Get session](/api-reference/sessions/get) |
| [Webhook logs](/observability/logs/webhook-logs)         | Logs → Webhooks | No Logs endpoint                                                                           |
| [API request logs](/observability/logs/api-request-logs) | Logs → API      | No Logs endpoint                                                                           |