blocklist

Get Blocklist Schedule

Changed on

When the blocklists are regenerated: the configured interval, the last run of the generation job, the newest list's lastUpdated, and when the next run is expected. The job runs on an interval placed relative to its last run, not at a fixed hour of the day.

expectedNextRunAt is startedAt + intervalHours after a success, and intervalHours after the end of a failed or timeout run. It is null — the next run cannot be dated from outside the worker — while a run is running, after an interrupted one (the worker retries it shortly after its next start), with no run history, or with the scheduler off. overdue is true once now is more than an hour past expectedNextRunAt.

No authentication required. Not metered.

Per-IP ceiling. 120 requests a minute per IP (per /64 for IPv6), shared by /stats, /blocklist/stats, /blocklist/schedule, /analytics, /cve/stats/epss, /cve/stats/timeseries and /license, with or without a key. Over it, 429 with Retry-After. Computed on each call.

get/blocklist/schedule

Request

  • Base URL
    https://api.ismalicious.com
  • Auth
    none required

Response

The regeneration schedule

expectedNextRunAtstring nullable

When the next run is expected; null when it cannot be known (the scheduler is off, a run is in flight or was cut short, or the last run was started by hand and the worker has not published its next tick)

expectedNextRunBasisstring nullable

Where expectedNextRunAt comes from: armedTick (the tick the worker's scheduler armed) or lastScheduledRun (computed from the last run the scheduler started); null with no date

intervalHoursinteger required

Hours between two runs of the generation job (BLOCKLIST_SCHEDULER_INTERVAL_HOURS)

lastRegeneratedAtstring nullable

The newest lastUpdated among the lists; null when none was ever generated

overdueboolean required

More than an hour past expectedNextRunAt

schedulerEnabledboolean required

Whether the scheduler is on (BLOCKLIST_SCHEDULER_ENABLED)

Example response

{
  "expectedNextRunAt": "2026-11-08T15:12:04Z",
  "expectedNextRunBasis": "armedTick",
  "intervalHours": 12,
  "lastRegeneratedAt": "2026-11-08T03:41:19Z",
  "lastRun": {
    "completedAt": "2026-11-08T03:41:19Z",
    "initiator": "interval-scheduler",
    "startedAt": "2026-11-08T03:12:04Z",
    "status": "success"
  }
}

Changes