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.
/v3/schedulesCreate a schedule
Timing fields
| Field | Notes |
|---|---|
name | Required label |
description | Shown in the schedule list |
disabled | true keeps the definition but does not run it |
frequency | One of the values below |
minute | 0–59. Required for hourly and slower |
hour | 0–23, except on multi-hour frequencies |
day_of_week | 0–6 for weekly |
day_of_month | 1–31 for monthly. Defaults to 1 |
run_until | Optional 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:
| Target | Fastest frequency |
|---|---|
scan | hourly |
capture | daily |
permutation_check | daily |
domain_survey | weekly |
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
/v3/schedulesList schedules
/v3/schedules/{schedule_id}Get a schedule
/v3/schedules/{schedule_id}Replace a schedule
/v3/schedules/{schedule_id}Delete a schedule
/v3/schedules/{schedule_id}/historyRuns 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.