Expired & Historical Jobs API
Expired Jobs
Retrieve jobs that have been removed or expired from company career pages
GET
Overview
The Expired Jobs feed lists jobs that have been removed from company career pages since a given date, so you can remove them from your own copy of Hirebase data. It is built for hourly or daily syncs and covers the last 14 days. It returns identifiers only. For past postings and older data, use the Historical Jobs endpoints.Authentication
Metering: each request costs 0. Expired data is not billed; only live job data counts against your Jobs API allowance (
m_jobs_api_calls).string
required
Your Hirebase API key
Query Parameters
string
required
Starting date or datetime to list expired jobs from, as ISO 8601 (
YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ; naive values are treated as UTC). Must be within the last 14 days: on or after midnight UTC 14 days ago. Older values return 400.integer
default:"1"
Page number for pagination (min: 1). Walk pages in order — see Pagination.
integer
default:"100"
Number of results per page (min: 1, max: 1000)
Response
array
List of expired job objects
integer
Total number of expired jobs matching the query across all pages
integer
Current page number in the response
integer
Number of results returned per page
integer
Total number of pages available for the query (
ceil(total_count / limit))Use Cases
Data Cleanup
Identify and remove stale job postings from your database
Database Synchronization
Keep your local job database in sync with Hirebase, hourly or daily
Pagination
Use thepage and limit parameters to paginate through large result sets:
total_pages field in the response, or ceil(total_count / limit).
Walk pages in order
Request pages in order with the samesince and limit. Each page picks up where the previous one ended, as long as you request it within 15 minutes, so a sequential walk stays fast at any depth.
Jumping straight to a deep page is not supported: if (page - 1) × limit is over 200,000 and you did not just fetch the page before it, the request returns 400. Start again from page 1, or use Export Expired Jobs.
Recommended usage — incremental sync: poll daily with
since=<yesterday> (or hourly with a datetime). A one-day window is typically ~150k records (~150 pages at limit=1000). To catch up after missed syncs, or to get a whole window as one file, use Export Expired Jobs. Both are limited to the last 14 days; if your sync has been down longer than that, re-export live jobs and remove any you hold that are no longer in it.Important Notes
The
since parameter is required and must be a valid date within the last 14 days- Jobs are considered expired when they are no longer available on the company’s career page
- The
date_expiredfield represents when Hirebase detected the job was no longer active (not necessarily when the company removed it) - Results are sorted by
date_expireddescending (most recent first), thenjob_slugdescending
Error Responses
Unprocessable Entity
Missing required
since query parameter:Bad Request
since cannot be parsed as a date, is older than 14 days, or the page is too deep to jump to directly (see Walk pages in order). The detail message says which:Unauthorized
Invalid or missing API key
Not Found
Invalid endpoint path
Too Many Requests
Rate limit exceeded
Internal Server Error
Unexpected server error. Back off and retry.