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

# Retry single call

> Immediately retry a campaign call by phone number

Retries a specific call for a phone number on the campaign. The call is dispatched immediately (bypasses the scheduled orchestrator).

## Authentication

<ParamField header="X-API-Key" type="string" required>
  Project API key for this organization and project. Format: `bot_live_…`
</ParamField>

## Path parameters

<ParamField path="organization_id" type="string" required>
  Organization ID. Must match the API key.
</ParamField>

<ParamField path="project_id" type="string" required>
  Project ID. Must match the API key.
</ParamField>

<ParamField path="campaign_id" type="string" required>
  Campaign ID.
</ParamField>

## Body

<ParamField body="phone_number" type="string" required>
  Phone number to call again.
</ParamField>

## Response

<ResponseField name="success" type="boolean" required>
  `true` when the retry was queued.
</ResponseField>

<ResponseField name="campaign_call_id" type="string" required>
  ID of the new campaign call attempt.
</ResponseField>

<ResponseField name="message" type="string" required>
  Human-readable confirmation.
</ResponseField>

## Errors

<ResponseField name="400" type="Bad Request">
  Campaign not ready, invalid phone, or retry failed.
</ResponseField>

<ResponseField name="401" type="Unauthorized">
  Missing, invalid, or revoked API key.
</ResponseField>

<ResponseField name="403" type="Forbidden">
  API key is not authorized for this organization or project.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://backend.botcadence.com/organizations/ORG_ID/projects/PROJECT_ID/campaigns/CAMPAIGN_ID/retry-call" \
    -H "X-API-Key: bot_live_YOUR_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "phone_number": "+14155552671"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    `https://backend.botcadence.com/organizations/${organizationId}/projects/${projectId}/campaigns/${campaignId}/retry-call`,
    {
      method: "POST",
      headers: {
        "X-API-Key": process.env.BOTCADENCE_API_KEY,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ phone_number: "+14155552671" }),
    }
  );
  ```

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

  response = requests.post(
      f"https://backend.botcadence.com/organizations/{organization_id}/projects/{project_id}/campaigns/{campaign_id}/retry-call",
      headers={
          "X-API-Key": os.environ["BOTCADENCE_API_KEY"],
          "Content-Type": "application/json",
      },
      json={"phone_number": "+14155552671"},
  )
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "status": "success",
    "message": "Call initiated to +14155552671",
    "data": {
      "success": true,
      "campaign_call_id": "665f1a2b3c4d5e6f7a8b9c0d",
      "message": "Call initiated to +14155552671"
    },
    "status_code": 200
  }
  ```

  ```json 400 theme={null}
  {
    "status": "error",
    "message": "Campaign has no phone numbers (caller ID) configured",
    "data": null,
    "status_code": 400
  }
  ```
</ResponseExample>
