Kraiter
API Reference

Scheduled

View and manage emails that are scheduled for future delivery.

Scheduled sends are emails queued for future delivery, typically created by sequence steps with delays. Use this API to view what emails are pending and when they will be sent.

List scheduled sends

GET /api/scheduled

Returns a paginated list of emails scheduled for future delivery, ordered by scheduled time (earliest first).

Query parameters

ParameterTypeDefaultDescription
cursorstringPagination cursor from a previous response.
limitnumber20Number of scheduled sends to return (max 100).

Response

{
  "data": [
    {
      "id": "sch_01H9...",
      "contactId": "cnt_01H8MZXK...",
      "email": "alice@example.com",
      "templateId": "getting-started",
      "templateName": "Getting Started Guide",
      "subject": "Getting started with Kraiter",
      "scheduledFor": "2025-09-16T14:00:00.000Z",
      "source": "sequence",
      "sourceId": "onboarding",
      "step": 2,
      "createdAt": "2025-09-15T14:00:00.000Z"
    },
    {
      "id": "sch_01HA...",
      "contactId": "cnt_01H8N2PQ...",
      "email": "bob@example.com",
      "templateId": "tips-and-tricks",
      "templateName": "Tips and Tricks",
      "subject": "Kraiter tips and tricks",
      "scheduledFor": "2025-09-18T14:00:00.000Z",
      "source": "sequence",
      "sourceId": "onboarding",
      "step": 3,
      "createdAt": "2025-09-15T14:00:00.000Z"
    }
  ],
  "nextCursor": null
}

Response fields

FieldTypeDescription
idstringUnique identifier for the scheduled send.
contactIdstringThe contact who will receive the email.
emailstringThe recipient email address.
templateIdstringThe template that will be rendered.
templateNamestringHuman-readable template name.
subjectstringThe email subject line (may contain unresolved variables).
scheduledForstringISO 8601 timestamp of when the email will be sent.
sourcestringWhere this scheduled send originated (sequence).
sourceIdstringThe ID of the source (e.g. sequence ID).
stepnumberThe step number within the sequence.
createdAtstringWhen the scheduled send was created.

Examples

curl "https://api.kraiter.com/api/scheduled?limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY"
const scheduled = await kraiter.scheduled.list({ limit: 20 });

for (const item of scheduled.data) {
  console.log(
    `${item.email} — ${item.templateName} scheduled for ${item.scheduledFor}`
  );
}

Get scheduled send

GET /api/scheduled/:id

Returns the details of a single scheduled send.

Path parameters

ParameterTypeDescription
idstringThe scheduled send ID.

Response

Returns the full scheduled send object (same fields as the list response).

{
  "id": "sch_01H9...",
  "contactId": "cnt_01H8MZXK...",
  "email": "alice@example.com",
  "templateId": "getting-started",
  "templateName": "Getting Started Guide",
  "subject": "Getting started with Kraiter",
  "scheduledFor": "2025-09-16T14:00:00.000Z",
  "source": "sequence",
  "sourceId": "onboarding",
  "step": 2,
  "createdAt": "2025-09-15T14:00:00.000Z"
}

Errors

CodeDescription
NOT_FOUNDNo scheduled send with this ID exists, or it has already been sent.

Examples

curl https://api.kraiter.com/api/scheduled/sch_01H9... \
  -H "Authorization: Bearer YOUR_API_KEY"
const item = await kraiter.scheduled.get("sch_01H9...");
console.log(`Scheduled for: ${item.scheduledFor}`);

Lifecycle of a scheduled send

Scheduled sends follow this lifecycle:

  1. Created — A sequence step creates the scheduled send with a future scheduledFor timestamp.
  2. Pending — The send remains in the scheduled queue until its delivery time.
  3. Sent — At the scheduled time, the email is rendered and delivered. The scheduled record is removed and a Send record is created.
  4. Cancelled — If the contact is deleted, unsubscribes, or the sequence is deleted, the scheduled send is removed without sending.

Once a scheduled send has been delivered or cancelled, it no longer appears in the scheduled sends list. To view delivered emails, use the Sends API.

Viewing scheduled sends for a contact

To see what emails are pending for a specific contact, use the contact's scheduled sends endpoint:

curl "https://api.kraiter.com/api/contacts/cnt_01H8MZXK.../scheduled" \
  -H "Authorization: Bearer YOUR_API_KEY"
const scheduled = await kraiter.contacts.listScheduled("cnt_01H8MZXK...");

See Contacts — List scheduled sends for details.