Schedules

Run a scan, survey, capture, or permutation check on a recurring frequency.

What a schedule is

A schedule runs one scan, domain survey, capture, or permutation check on a cadence. Set exactly one of those objects. Create returns 201.

POST/v3/schedules

Create a schedule

Timing fields

FieldNotes
nameRequired label
descriptionShown in the schedule list
disabledtrue keeps the definition but does not run it
frequencyOne of the values below
minute0–59. Required for hourly and slower
hour0–23, except on multi-hour frequencies
day_of_week0–6 for weekly
day_of_month1–31 for monthly. Defaults to 1
run_untilOptional RFC3339 end time

Allowed frequency values:

hourly, every_2_hours, every_3_hours, every_4_hours, every_6_hours, every_8_hours, every_12_hours, daily, weekly, monthly.

On every_N_hours, hour is an offset inside the interval, not a clock hour. every_4_hours allows hour 0–3. Omit hour to use the default offset.

Fastest frequency:

TargetFastest frequency
scanhourly
capturedaily
permutation_checkdaily
domain_surveyweekly

One target per schedule

The object uses the same fields as a one-off create. See Scans, Domain Surveys, Captures, and Domain Permutations.

A callback on the target is stored with the schedule and checked again on every run. Empty phases are filled from preferences at run time, not when you save the schedule. If the stored callback_id points at a webhook that was deleted or deactivated, that run is not created. See Callbacks.

curl -sS -X POST "https://api.efflux.io/v3/schedules" \
  -H "Authorization: Bearer $EFFLUX_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Daily edge scan",
    "frequency": "daily",
    "hour": 6,
    "minute": 15,
    "scan": {
      "hosts": ["203.0.113.10"],
      "ports": ["top_100"],
      "proto": "tcp",
      "checks": true
    }
  }'

The response includes schedule_id, last_run_at, and next_run_at.

Update, pause, and history

GET/v3/schedules

List schedules

GET/v3/schedules/{schedule_id}

Get a schedule

PUT/v3/schedules/{schedule_id}

Replace a schedule

DELETE/v3/schedules/{schedule_id}

Delete a schedule

GET/v3/schedules/{schedule_id}/history

Runs produced by this schedule

Update sends the same body as create. Set disabled: true to pause without deleting. The schedule list defaults to limit 20 (max 1000). History defaults to 100 (max 1000).

How many schedules you can keep, and the fastest frequency your plan allows, are on GET /limits.