---
title: "Get campaign sending status"
method: GET
path: "/api/v2/campaigns/{id}/sending-status"
tags: ["Campaign"]
---

# Get campaign sending status

`GET /api/v2/campaigns/{id}/sending-status`

Returns sending status data explaining why a campaign may not be sending emails or is sending slower than expected. Note: Some fields may be missing when the campaign is out of schedule. Always-present fields: campaign_id, last_updated, status, issue_tracking.


Requires one of the following scopes: `campaigns:read`, `campaigns:all`, `all:read`, `all:all`

## Path parameters

- `id` string, uuid, required

## Query parameters

- `with_ai_summary` boolean

## Response `200`

Sending status data with human-readable summary. Returns null for both fields if no data is available.

- object — Sending status data with human-readable summary. Returns null for both fields if no data is available.
  - `diagnostics` object, nullable — Raw sending status data. Some fields may be missing when campaign is out of schedule.
    - `campaign_id` string — The campaign ID
    - `subsequence_id` string — The subsequence ID (only present for subsequence endpoints)
    - `last_updated` string — ISO timestamp of when this data was last updated
    - `status` 'campaign_paused' | 'campaign_draft' | 'campaign_completed' | 'campaign_running_subsequences' | 'campaign_bounce_protect' | 'campaign_accounts_unhealthy' | 'campaign_account_suspended' | 'out_of_schedule' | 'waiting_for_leads' | 'daily_limit_met' | 'account_daily_limit_met' | 'new_lead_limit_met' | 'all_accounts_unhealthy' | 'waiting_for_esp_match' | 'domain_limit_reached' | 'follow_up_delay_not_met' | 'no_accounts_available' | 'healthy', nullable — Status code explaining why the campaign is not sending or sending slower
    - `issue_tracking` object — Tracks persistence of the current issue
      - `current_status_code` string, nullable — Current status code
      - `issue_first_seen_at` string, nullable — ISO timestamp when the issue was first detected
      - `consecutive_loops_with_issue` number — Number of consecutive processing loops with this issue
      - `last_healthy_send_at` string, nullable — ISO timestamp of last successful send
    - `accounts_summary` object — Summary of sending account availability. May be missing when campaign is out of schedule.
      - `total_connected` number — Total number of connected sending accounts
      - `available` number — Number of accounts available to send
      - `unavailable` object — Breakdown of unavailable accounts by reason
        - `daily_limit_hit` number — Accounts that hit their configured daily sending limit
        - `slow_ramp_limit_hit` number — Accounts that hit the dynamic slow ramp limit (warmup feature)
        - `disconnected` number — Accounts that are disconnected
        - `global_gap_not_met` number — Accounts waiting for global sending gap
    - `campaign_daily_limit` object — Campaign daily sending limit status. May be missing when campaign is out of schedule.
      - `limit` number — Configured daily sending limit
      - `sent` number — Number of emails sent today
      - `limit_hit` boolean — Whether the daily limit has been reached
    - `new_lead_limit` object — New lead daily limit status. May be missing when campaign is out of schedule.
      - `enabled` boolean — Whether new lead limiting is enabled
      - `limit` number, nullable — Configured new lead limit per day
      - `contacted` number — Number of new leads contacted today
      - `limit_hit` boolean — Whether the new lead limit has been reached
    - `schedule_status` object — Campaign schedule status
      - `in_schedule` boolean — Whether the campaign is currently within scheduled sending hours
    - `send_one_by_one` object — Send one-by-one settings. May be missing when campaign is out of schedule.
      - `enabled` boolean — Whether send one-by-one mode is enabled
      - `single_account_per_wait_gap` boolean — Whether to use single account per wait gap
    - `follow_ups_waiting` object — Follow-up emails waiting status. May be missing when campaign is out of schedule.
      - `count` number — Number of follow-ups waiting to be sent
      - `earliest_wait_time_seconds` number, nullable — Seconds until the earliest follow-up can be sent
    - `esp_routing_status` object — ESP routing status. May be missing when campaign is out of schedule.
      - `enabled` boolean — Whether ESP routing is enabled
      - `waiting_for_match` boolean — Whether waiting for an ESP-matched account
      - `connected_esps` number[] — List of connected ESP IDs
    - `domain_limiter` object — Per-domain sending limit status. May be missing when campaign is out of schedule.
      - `active` boolean — Whether domain limiting is active
      - `domains_at_limit` number — Number of domains that have reached their limit
    - `leads_status` object — Lead availability status. May be missing when campaign is out of schedule.
      - `no_leads_ready` boolean — Whether there are no leads ready to receive emails
      - `account_unavailable_skips` number — Number of leads skipped due to account unavailability
      - `delay_not_met_skips` number — Number of leads skipped due to delay requirements not met
  - `summary` object, nullable — Human-readable summary of the sending status
    - `status` string, nullable — The status code
    - `status_message` string, nullable — Human-readable message explaining the status
    - `issue_started_at` string, nullable — ISO timestamp when the issue was first detected
    - `last_healthy_send_at` string, nullable — ISO timestamp of last successful send
    - `ai_summary` string, nullable — AI-generated plain-English summary (only when with_ai_summary=true)

## Other responses

- `401` — This request is unauthorized (either the Authorization header is missing or invalid, or the API key has been revoked)
- `402` — This request cannot be fulfilled because the workspace does not have an active paid plan
- `404` — The requested resource was not found
- `429` — You have exceeded the rate limit. Please check the rate limit docs for more information.

---

[API](https://skmtc.net/instantly/apis/api-explorer.md) · [All operations](https://skmtc.net/instantly/apis/api-explorer/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/instantly/api-explorer/revisions/378d1e253fe7/schema)
