> ## Documentation Index
> Fetch the complete documentation index at: https://doc.convo.co.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve the Full Details of a Single API Campaign

> Retrieve all details of a specific API campaign by its ID, including the linked WhatsApp template, current status, and message payload.

Retrieve the full details of a specific API campaign by its ID. Use this endpoint to inspect a campaign's current status, verify which template it is linked to, and review its send counts.

## Endpoint

```text theme={null}
GET https://connect.api-wa.co/project-apis/v1/project/{project_id}/campaign/api/{campaign_id}
```

## Authentication

```text theme={null}
X-API-WA-Project-API-Pwd: YOUR_API_PASSWORD
```

## Path Parameters

<ParamField path="project_id" type="string" required>
  Your Convo project ID.
</ParamField>

<ParamField path="campaign_id" type="string" required>
  The unique ID of the API campaign. This is the `_id` field returned when you [create a campaign](/api-reference/campaigns/create-campaign) or [list campaigns](/api-reference/campaigns/list-campaigns).
</ParamField>

## Request Example

```bash theme={null}
curl "https://connect.api-wa.co/project-apis/v1/project/YOUR_PROJECT_ID/campaign/api/64b3e1ac7f2c0a001d8e9f34" \
  -H "X-API-WA-Project-API-Pwd: YOUR_API_PASSWORD"
```

## Response

A successful request returns `200 OK` with the full campaign object.

<ResponseField name="_id" type="string">
  The unique identifier of this campaign.
</ResponseField>

<ResponseField name="name" type="string">
  The campaign's unique name within your project.
</ResponseField>

<ResponseField name="type" type="string">
  Campaign type. Always `"API"` for campaigns returned by this endpoint.
</ResponseField>

<ResponseField name="status" type="string">
  Current campaign status:

  * `"LIVE"` — Active and accepting send requests.
  * `"PAUSED"` — Temporarily suspended. Sends will be rejected until resumed.
  * `"STOPPED"` — Campaign has been stopped and is no longer active.
</ResponseField>

<ResponseField name="message_type" type="string">
  The media type of the linked template (e.g., `"TEXT"`, `"IMAGE"`, `"VIDEO"`, `"FILE"`).
</ResponseField>

<ResponseField name="message_payload" type="object">
  The full payload for the campaign's messages.

  <Expandable title="message_payload.template">
    <ResponseField name="template._id" type="string">
      The unique ID of the linked WhatsApp Message Template.
    </ResponseField>

    <ResponseField name="template.name" type="string">
      The template's machine-readable name.
    </ResponseField>

    <ResponseField name="template.label" type="string">
      The template's human-readable display label.
    </ResponseField>

    <ResponseField name="template.status" type="string">
      Approval status of the template: `APPROVED`, `PENDING`, `REJECTED`, or `DISABLED`.
    </ResponseField>

    <ResponseField name="template.category" type="string">
      Template category: `TRANSACTIONAL`, `MARKETING`, or `OTP`.
    </ResponseField>

    <ResponseField name="template.type" type="string">
      Template media type: `TEXT`, `IMAGE`, `VIDEO`, `FILE`, `LOCATION`, `CAROUSEL`, or `ORDER_DETAILS`.
    </ResponseField>

    <ResponseField name="template.language" type="string">
      Full language name for this template.
    </ResponseField>

    <ResponseField name="template.text" type="string">
      The message body text with `{{n}}` placeholders.
    </ResponseField>

    <ResponseField name="template.sample_text" type="string">
      The message body with placeholders filled in with sample values.
    </ResponseField>

    <ResponseField name="template.total_parameters" type="integer">
      The number of dynamic placeholders in the template.
    </ResponseField>

    <ResponseField name="template.message_action_type" type="string">
      Button type: `CTA`, `QuickReplies`, `All`, or `null`.
    </ResponseField>

    <ResponseField name="template.call_to_action" type="array">
      Array of CTA button objects (type, button\_title, button\_value).
    </ResponseField>

    <ResponseField name="template.quick_replies" type="array">
      Array of quick reply label strings.
    </ResponseField>

    <ResponseField name="template.footer_text" type="string">
      Footer text of the template.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="audience_size" type="integer">
  For API campaigns, this is always `0` — the audience is determined dynamically on each [Send Campaign](/api-reference/campaigns/send-campaign) call.
</ResponseField>

<ResponseField name="submitted" type="integer">
  The total number of messages sent through this campaign since creation.
</ResponseField>

<ResponseField name="project_id" type="string">
  The Convo project this campaign belongs to.
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO 8601 timestamp of when the campaign was created.
</ResponseField>

<ResponseField name="updated_at" type="string">
  ISO 8601 timestamp of the most recent update to this campaign record.
</ResponseField>

### Response Example

```json theme={null}
{
  "_id": "64b3e1ac7f2c0a001d8e9f34",
  "name": "ShipmentAlerts_Q4_2024",
  "type": "API",
  "status": "LIVE",
  "message_type": "TEXT",
  "message_payload": {
    "template": {
      "_id": "64a1f3bc9e4a2b001c3d7f12",
      "name": "shipping_update_v1",
      "label": "Shipping Update",
      "status": "APPROVED",
      "category": "TRANSACTIONAL",
      "type": "TEXT",
      "language": "English",
      "text": "Hi {{1}}, your order {{2}} has been shipped and will arrive by {{3}}.",
      "sample_text": "Hi Priya, your order #ORD-4521 has been shipped and will arrive by Dec 10.",
      "total_parameters": 3,
      "footer_text": "Reply STOP to unsubscribe",
      "message_action_type": "CTA",
      "call_to_action": [
        {
          "type": "URL",
          "button_title": "Track Order",
          "button_value": "https://example.com/track/{{1}}"
        },
        {
          "type": "Phone Number",
          "button_title": "Call Support",
          "button_value": "+919876543210"
        }
      ],
      "quick_replies": [],
      "isClickTrackingEnabled": true,
      "project_id": "YOUR_PROJECT_ID"
    }
  },
  "audience_size": 0,
  "submitted": 1482,
  "project_id": "YOUR_PROJECT_ID",
  "created_at": "2024-07-16T09:30:00.000Z",
  "updated_at": "2024-07-16T09:30:00.000Z"
}
```

## Error Responses

| Status                      | Description                                                          |
| --------------------------- | -------------------------------------------------------------------- |
| `404 Not Found`             | No API campaign with the given `campaign_id` exists in your project. |
| `500 Internal Server Error` | An unexpected server-side error occurred.                            |

```json theme={null}
{
  "error": "Not Found",
  "message": "Campaign with id '64b3e1ac7f2c0a001d8e9f34' not found."
}
```
