A scheduler job, with its schedule, the target it calls, and how its calls are signed and retried.

A scheduler job: a schedule in a time zone, and the target it calls at each time on it.

{
  "id": "01m3c081d2wj4g63qcr53pa1yh",
  "projectId": "01k5ztq3jb9y2a1m9v2xw8e0ha",
  "name": "Payment reminders",
  "description": "",
  "schedule": "0 8 * * MON-FRI",
  "timeZone": "Africa/Dar_es_Salaam",
  "state": "enabled",
  "target": {
    "url": "https://shop.example/tasks/reminders",
    "method": "POST",
    "headers": { "Content-Type": "application/json" },
    "body": "{\"channel\":\"sms\"}"
  },
  "signing": {
    "enabled": true,
    "audience": "",
    "effectiveAudience": "https://shop.example/tasks/reminders"
  },
  "retry": {
    "count": 3,
    "maxDurationSeconds": 0,
    "minBackoffSeconds": 30,
    "maxBackoffSeconds": 3600,
    "maxDoublings": 5
  },
  "attemptDeadlineSeconds": 180,
  "nextRunAt": "2026-09-30T05:00:00Z",
  "lastRunAt": "2026-09-29T05:00:00Z",
  "createdAt": "2026-09-01T09:12:44Z",
  "updatedAt": "2026-09-01T09:12:44Z"
}

Fields

idstring

The job’s ID, 26 lowercase letters and digits.

projectIdstring

The project the job belongs to.

namestring

1 to 100 characters, unique in the project ignoring case.

descriptionstring

Empty when the job has none.

schedulestring

A 5-field cron schedule, or a shortcut such as @daily. See Schedule format.

timeZonestring

The IANA time zone the schedule runs in, such as Africa/Dar_es_Salaam or UTC.

statestring

enabled, or paused after pause().

target.urlstring

The https address the job calls.

target.methodstring

The method it calls with, such as POST.

target.headersRecord<string, string>

The headers it sends. An empty object when there are none.

target.bodystring

The body it sends. Empty when there is none.

signing.enabledboolean

Whether each call carries a token your endpoint can check with verify().

signing.audiencestring

The audience you set. Empty when the default applies.

signing.effectiveAudiencestring or undefined

The audience its tokens carry, after the default is applied: the target URL without its query. Pass it as audience to verify(). Only there while signing is on.

retryobject

The retry policy, with every field filled in: count, maxDurationSeconds, minBackoffSeconds, maxBackoffSeconds, and maxDoublings. See Retry jobs.

attemptDeadlineSecondsnumber

How long each call waits for an answer, in seconds.

nextRunAtstring or null

When the job runs next, as an ISO 8601 string. null while it is paused.

lastRunAtstring or null

When the job last ran. null until it has run.

createdAtstring

When the job was created, as an ISO 8601 string.

updatedAtstring

When the job was last changed, as an ISO 8601 string.

Returned by

Last updated