---
title: "Get campaign"
method: GET
path: "/campaigns/{id}"
tags: ["Campaigns"]
---

# Get campaign

`GET /campaigns/{id}`

## Request

- Base URL: `https://api.textla.com/v1`
- URL: `https://api.textla.com/v1/campaigns/{id}`
- Auth: HTTP bearer

Returns the campaign's status, failure code, current batch and approval state. Until status-change webhooks exist, polling this operation is the only way to learn a campaign was approved, rejected or failed. It is 404 when the account has no campaign with the ID.

## Path parameters

- `id` string, required

## Response `200`

OK

- Campaign
  - `$schema` string, uri: A URL to the JSON Schema for this object.
  - `audience` AudienceFilter, required
    - `all_contacts` boolean, nullable, required
    - `groups` LabelFilter, required
      - `exclude` string[], nullable, required
      - `include` string[], nullable, required
      - `match` string, nullable, required
    - `keywords` LabelFilter, required
      - `exclude` string[], nullable, required
      - `include` string[], nullable, required
      - `match` string, nullable, required
    - `tags` LabelFilter, required
      - `exclude` string[], nullable, required
      - `include` string[], nullable, required
      - `match` string, nullable, required
  - `batch_count` integer, required
  - `created_at` integer, required
  - `current_batch` CurrentBatch, required
    - `id` string, required
    - `status` string, required
  - `failure_code` string, nullable, required
  - `id` string, required
  - `media` Media[], nullable, required
    - `content_type` string, required
    - `height` integer, nullable, required
    - `id` string, required
    - `name` string, required
    - `size_bytes` integer, required
    - `url` string, nullable, required
    - `width` integer, nullable, required
  - `message` string, required
  - `message_count` integer, required
  - `name` string, required
  - `phone_number` string, required
  - `rejection_reason` string, nullable, required
  - `send_at` integer, nullable, required
  - `status` string, required
  - `updated_at` integer, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `412`: Precondition Failed
- `422`: Unprocessable Entity
- `429`: Too Many Requests
- `500`: Internal Server Error
- `501`: Not Implemented
- `502`: Bad Gateway
- `503`: Service Unavailable
- `504`: Gateway Timeout

---

[API](https://skmtc.dev/textla/apis/textla-api.md) - [All operations](https://skmtc.dev/textla/apis/textla-api/llms.txt) - [OpenAPI document](https://skmtc.dev/textla/apis/textla-api/revisions/473f03350bc1?raw)
