Skip to content
Pidgely Docs

API reference · Automations

List automation enrollments

GEThttps://api.pidgely.com/automations/{id}/enrollments
View as Markdown

The customers of an automation, newest first: status (active, held while paused, completed, exited), the step they are on, the e-mails sent and, for those who left early, exit_reason (organization automations add goal, exit_event, event_received and timeout). Filter with status. Recorded in the access log.

The customers of an automation, newest first: the step each one is on, the e-mails sent and why they left. Recorded in the access log. Needs a plan with automations (Scale or custom; 403 plan_required otherwise).

Authorization: Bearer pdg_…. An API key with full_access. A sending_access key gets 401 restricted_api_key.

Path parameters

Name Type Required Description
id string Yes Automation id. UUID.

Query parameters

Name Type Required Description
status string No One of active, held, completed, exited.
limit integer No Between 1 and 100.
after string No —
before string No —

Request

This endpoint is not in the SDKs yet; call it over HTTP.

cURL
curl -X GET 'https://api.pidgely.com/automations/0199e1a0-2b4c-7d6e-8f01-2a3b4c5d6e7f/enrollments?status=exited&limit=20' \
  -H "Authorization: Bearer $PIDGELY_API_KEY"

Response

200 OK

JSON
{
  "object": "list",
  "has_more": false,
  "data": [
    {
      "id": "0199e2c4-5d6e-7f80-9a1b-2c3d4e5f6a71",
      "email": "ana.souza@example.com",
      "first_name": "Ana",
      "status": "exited",
      "step": 3,
      "awaiting_delivery": false,
      "next_at": null,
      "exit_reason": "checkout_recovered",
      "exited_at": "2026-10-12 16:44:41.000000+00",
      "subject_type": "checkout",
      "subject_id": "0199e2b0-1c2d-7e3f-8a4b-5c6d7e8f9a02",
      "waiting_event": "",
      "sent": 1,
      "sends": [
        {
          "position": 1,
          "status": "queued",
          "reason": "",
          "email_id": "0199d8a2-6f3c-7c51-9e2a-3b1f0c6d4e21",
          "sent_at": "2026-10-12 16:44:41.000000+00"
        }
      ],
      "created_at": "2026-10-12 16:44:41.000000+00"
    }
  ]
}

Response fields

Name Type Required Description
object string Yes Object type.
has_more boolean Yes Whether another page exists.
data object[] Yes Items of this page.
data[].id string Yes Unique id (UUID). UUID.
data[].email string Yes Email address.
data[].first_name string Yes First name, up to 200 characters. Available as {{{FIRST_NAME}}} in broadcasts.
data[].status string Yes Current status. One of active, held, completed, exited.
data[].step integer Yes Position of the next e-mail step (or of the step it was waiting for when it ended).
data[].awaiting_delivery boolean Yes post_purchase: waiting for the delivery event.
data[].next_at string | null Yes Format: date-time.
data[].exit_reason string Yes order_placed, checkout_recovered, checkout_completed, paid, goal (goals); exit_event, event_received, timeout, cancelled, refunded, unsubscribed, suppressed, expired, store_disconnected, deleted, failed.
data[].exited_at string | null Yes Format: date-time.
data[].subject_type string Yes One of checkout, order, contact, event.
data[].subject_id string | null Yes UUID.
data[].waiting_event string Yes Event a wait-for-event step is waiting for; empty otherwise.
data[].sent integer Yes —
data[].sends object[] Yes —
data[].sends[].position integer Yes —
data[].sends[].status string Yes Current status. One of queued, skipped.
data[].sends[].reason string Yes —
data[].sends[].email_id string | null Yes UUID.
data[].sends[].sent_at string Yes Format: date-time.
data[].created_at string Yes Creation time, YYYY-MM-DD HH:MM:SS.ffffff+00 (UTC). Format: date-time.

Errors

Errors have the shape {"statusCode", "name", "message"}. See Errors for the full list.

Status Name When
401 missing_api_key, restricted_api_key No Authorization: Bearer header, or a sending_access key called an endpoint that needs full_access.
403 invalid_api_key, validation_error The API key is invalid or revoked, or the request is not allowed for this account (unverified domain, plan limit, paused account).
404 not_found The resource does not exist in this account (or the id is not a valid UUID).
422 validation_error A field is missing or invalid; message names it.
429 rate_limit_exceeded Too many requests per second. Wait for Retry-After seconds.
403 plan_required The organization is below the Scale plan (field is automations).