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

# Resend conversation webhooks

> Send the conversation ended webhook of one or more conversations again

Sends the [conversation ended webhook](/api-reference/webhooks/conversation-ended-webhook) of one or more chat conversations again, with the data stored on each conversation, to the webhook URL currently configured on the conversation's assistant. Use it when your endpoint was down, answered with an error, or lost the payload. For each conversation it does the same as **Re-send webhook** on the conversation page; the conversation is not evaluated again.

The deliveries are queued and start right after the request returns. Failed deliveries are retried the same way as the original ones (see [Delivery and retries](/api-reference/webhooks/conversation-ended-webhook#delivery-and-retries)). Your endpoint receives each conversation again, so de-duplicate on the payload's `conversation_id`.

### Authentication

This endpoint requires your **API key** as a Bearer token.

### Request body

<ParamField body="conversation_uuids" type="string[]" required>
  The UUIDs of the conversations to resend (from [List conversations](/api-reference/conversations/list-conversations)), up to 500 per request. Send one UUID to resend a single conversation. Duplicates are ignored.
</ParamField>

### Response Fields

<ResponseField name="message" type="string">
  A summary of what was queued
</ResponseField>

<ResponseField name="queued_conversation_uuids" type="string[]">
  The conversations whose webhook is being sent again
</ResponseField>

<ResponseField name="skipped" type="object[]">
  Conversations that were not resent, with the reason

  <Expandable title="Skipped conversation properties">
    <ResponseField name="conversation_uuid" type="string">
      The UUID of the conversation
    </ResponseField>

    <ResponseField name="reason" type="string">
      Why it was skipped: the conversation's assistant has no conversation ended webhook URL
    </ResponseField>
  </Expandable>
</ResponseField>

### Error Responses

<ResponseField name="422 Unprocessable Entity">
  <Expandable title="Error Response">
    <ResponseField name="message" type="string">
      `conversation_uuids` is missing, empty, longer than 500 or not a list of UUIDs, or one or more of the conversations do not exist or belong to a different account. Nothing is resent
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="429 Too Many Requests">
  <Expandable title="Error Response">
    <ResponseField name="message" type="string">
      More than 10 requests in a minute. The `Retry-After` response header tells you how many seconds to wait
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://app.autocalls.ai/api/user/conversations/resend-webhooks" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"conversation_uuids": ["7c9e6679-7425-40de-944b-e07fc1f90ae7"]}'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://app.autocalls.ai/api/user/conversations/resend-webhooks',
    {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer YOUR_API_KEY',
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        conversation_uuids: ['7c9e6679-7425-40de-944b-e07fc1f90ae7'],
      }),
    }
  );

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

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

  response = requests.post(
      'https://app.autocalls.ai/api/user/conversations/resend-webhooks',
      headers={'Authorization': 'Bearer YOUR_API_KEY'},
      json={'conversation_uuids': ['7c9e6679-7425-40de-944b-e07fc1f90ae7']}
  )

  data = response.json()
  print(data['queued_conversation_uuids'])
  ```
</RequestExample>

<ResponseExample>
  ```json 200 Success Response theme={null}
  {
    "message": "Webhook resend queued for 1 conversation(s).",
    "queued_conversation_uuids": ["7c9e6679-7425-40de-944b-e07fc1f90ae7"],
    "skipped": []
  }
  ```

  ```json 422 Conversations Not Found theme={null}
  {
    "message": "One or more conversations were not found.",
    "errors": {
      "conversation_uuids": [
        "One or more conversations were not found."
      ]
    }
  }
  ```

  ```json 429 Too Many Requests theme={null}
  {
    "message": "Too Many Attempts."
  }
  ```
</ResponseExample>

### Notes

* Only conversations that belong to the authenticated account can be resent
* The payload reflects the conversation as it is now, including any variables extracted after the original delivery
* The result of each delivery is shown on the conversation page in your dashboard
* Each resend is a new delivery: your endpoint must handle the same `conversation_id` arriving more than once


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.