Upcoming steps

GET /api/v1/series/upcoming Lists the steps of your active series that have not gone out yet, soonest first, across every series at once. This is the reading the API could not do: a published series was visible, and nothing said when its steps would leave. The moments are computed — start date, waits accumulated along the path, then the step's send time — by the same function the editor, the calendar and the engine use. This endpoint cannot announce a time the send will not honour.

Authorization

RoleAccess
OWNERAllowed
ADMINAllowed
MEMBERAllowed

Example

bash
curl -s 'https://www.agentsmail.io/api/v1/series/upcoming' \
  -H "x-api-key: $AGENTMAIL_API_KEY"

Response

CodeWhen
200The steps to come, possibly an empty list
401Missing or invalid key

Response fields

FieldTypeDescription
successbooleanAlways true here
dataarrayThe steps still to come, soonest first
data[].idstringPrefixed series:never a campaign id
data[].namestringThe name the campaign will carry: <series name> · step N
data[].dueAtstringWhen the step goes out, ISO 8601
data[].campaignIdnullAlways null: the campaign does not exist yet

Example response

json
{
  "success": true,
  "data": [
    {
      "id": "series:3c3c3c3c-9999-4ddd-8eee-ffff11112222",
      "name": "March launch · step 2",
      "dueAt": "2026-03-18T08:00:00.000Z",
      "campaignId": null
    }
  ]
}

Notes

Nothing here exists as a campaign yet, which is why campaignId is null and the id is prefixed. The campaign is created at dueAt, named exactly as name says, and from then on it reads through the Campaigns API like any other. Creating campaigns ahead of time is deliberately impossible: a draft sitting in the list could be sent by hand, out of the series' order. A step whose moment has passed is not listed — it already has its campaign.