Ids of roles that have come off the ledger

The cheap half of /v1/jobs/closed. Returns id, closed_at and closed_reason only — enough to mark rows stale in your own database without transferring the jobs themselves. About 89% smaller than the same page from /v1/jobs/closed.

Closure dates: JOA records as the closure date the day its daily verification confirmed that an advert had gone. Before late September 2026 that verification ran in large catch-up batches, so closure dates recorded before then show when JOA confirmed a closure, not when the employer closed the role; daily verification applies from late September 2026. Keyset paged exactly like /v1/changes: pass since on the first call and the returned next_since from then on. An empty page echoes your cursor back, so the loop keeps working once you are current.

Needs the delta feed (Growth and up; 403 plan_upgrade_required otherwise). Not metered: it returns ids, not job rows, charges no records and sends no X-RateLimit-Records-* headers.

get/v1/jobs/expired

Request

  • Base URL: https://api.jobopportunitiesapi.org
  • URL: https://api.jobopportunitiesapi.org/v1/jobs/expired
  • Auth: HTTP bearer

Query parameters

sincestring required

RFC3339 timestamp, or a next_since cursor from a previous call.

limitinteger

1-10000, default 1000.

Response

A page of closures.

countinteger
next_sincestring

Changes

No recorded changes to this operation across all 1 revision of this API.