Skip to content

List automations

Every automation on your team, newest first.

http
GET /v1/automations

Requires a Full access API key.

Query parameters

Cursor-paginated:

ParameterTypeRequiredDescription
statusstringNoOnly automations in this state — enabled or disabled.
limitnumberNoHow many to return. Default 20, min 1, max 100.
afterstringNoReturn automations after this automation id. Cannot be combined with before.
beforestringNoReturn automations before this automation id. Cannot be combined with after.

Example

bash
# just the live ones
curl "https://api.sendgrail.com/v1/automations?status=enabled" \
  -H "Authorization: Bearer $SENDGRAIL_API_KEY"
js
const res = await fetch(
  'https://api.sendgrail.com/v1/automations?status=enabled',
  { headers: { Authorization: `Bearer ${process.env.SENDGRAIL_API_KEY}` } },
);

const { data, has_more } = await res.json();

Response

Each row is a lean automation object — no steps or connections:

json
{
  "object": "list",
  "has_more": false,
  "data": [
    {
      "object": "automation",
      "id": "auto_5PmT9wRx2AqK",
      "name": "Welcome series",
      "status": "enabled",
      "created_at": "2026-07-14T19:44:32+00:00",
      "updated_at": "2026-07-16T08:12:04+00:00"
    },
    {
      "object": "automation",
      "id": "auto_8Vc1Za4Ht1Nb",
      "name": "Win-back",
      "status": "disabled",
      "created_at": "2026-07-02T11:03:19+00:00",
      "updated_at": "2026-07-02T11:03:19+00:00"
    }
  ]
}

The graph is omitted here on purpose — a page of full steps and connections would be far more than a listing needs. Fetch one automation's graph with Retrieve an automation.

has_more tells you whether another page exists — there is no total, because a keyset paginator never counts the table. To walk every page, pass the last id you saw as after until has_more is false. See Pagination.

Transactional email on your own domain.