---
title: "Fetch Send Action"
method: GET
path: "/emails/broadcasts/send_actions/{id}"
tags: ["Emails::Broadcasts::SendAction"]
---

# Fetch Send Action

`GET /emails/broadcasts/send_actions/{id}`

Retrieve a single send action and its current async delivery progress. Compare `performed_count` to `target_count` to determine how far along delivery is. `completed_at` is set when delivery finishes.
When accessing the API through an OAuth connection from a third-party platform, this endpoint is restricted to trusted developer platforms. If you are using your own API key, you can access this endpoint directly.

## Path parameters

- `id` string, required

## Response `200`

OK

- EmailsBroadcastsSendActionAttributes — An asynchronous action that sends (or schedules) the delivery of a parent email broadcast. The action runs in the background; poll `performed_count` vs `target_count` to track progress.
  - `id` integer — Send Action ID
  - `public_id` string, nullable — Send Action public ID
  - `workspace_id` integer — Workspace ID
  - `send_type` 'default' | 'split_test_main' | 'split_test_variant' | 'split_test_winner' | 'send_in_contacts_time_zone' | 'schedule_send_in_contacts_time_zone' — The delivery strategy used for this send action.
  - `target_ids` integer[], nullable — Array of broadcast IDs targeted by this send action. For a standard broadcast send, this contains the single broadcast ID being delivered.
  - `target_count` integer, nullable — Total number of contacts targeted by this send action. `null` until the async job has resolved the audience count.
  - `performed_count` integer, nullable — Number of contacts processed so far. Poll alongside `target_count` to track async delivery progress.
  - `scheduled_for` string, date-time, nullable — Datetime the send is scheduled to begin. Reflects the `send_at` passed at creation, adjusted to the workspace time zone. `null` for immediate sends.
  - `started_at` string, date-time, nullable — Datetime the async delivery job began processing contacts. `null` until the job has started.
  - `completed_at` string, date-time, nullable — Datetime the async delivery job finished. `null` until delivery is complete.
  - `created_by_id` integer, nullable — Reserved; `null` in most cases. The member who triggered the send is recorded in `approved_by_id` instead.
  - `approved_by_id` integer, nullable — ID of the workspace membership that created/approved this send action — the member that triggered the send. Populated for API-created sends.
  - `created_at` string, date-time, nullable — Created at datetime
  - `updated_at` string, date-time, nullable — Updated at datetime
  - `broadcast_id` integer, nullable — The ID of the email broadcast being delivered. Convenience field derived from `target_ids[0]`.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found

---

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