Expired Jobs API
Expired Jobs
Retrieve jobs that have been removed or expired from company career pages
GET
Overview
The Expired Jobs endpoint allows you to retrieve jobs that have been removed or expired from company career pages after a specified date. This is useful for tracking job lifecycle, maintaining data freshness, and identifying positions that are no longer active.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 to retrieve expired jobs from. Accepts ISO date format (YYYY-MM-DD) or other standard date strings (e.g.,
2026-01-31)integer
default:"1"
Page number for pagination (min: 1). Response latency grows linearly with page depth — see Pagination for practical limits.
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
Job Lifecycle Tracking
Monitor how long positions remain active
Market Analysis
Analyze hiring velocity by tracking when jobs are filled or closed
Database Synchronization
Keep your local job database in sync with Hirebase
Pagination
Use thepage and limit parameters to paginate through large result sets:
total_pages field in the response, or ceil(total_count / limit).
Deep pagination limits
Response latency grows linearly with page depth, regardless of the date window. Atlimit=1000, page 1 responds in a few seconds, page 100 in ~25s, page 300 in ~45s, and pages beyond roughly 400–500 time out. In practice only about the most recent 350,000–450,000 records of any query are reachable, however large its total_count.
Because results are sorted by date_expired descending and there is no end-date parameter, a large window cannot be narrowed from the far end — the reachable frontier is always the most recent records.
Recommended usage — incremental sync: poll daily with
since=<yesterday>. A one-day window is typically ~150k records (~150 pages at limit=1000), all comfortably reachable. For historical backfill or any pull past the reachable frontier, use Export Expired Jobs — it walks the entire result set server-side with no page-depth limit and is also free.Important Notes
The
since parameter is required and must be a valid date string- 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_expiredin descending order (most recent first)
Error Responses
Unprocessable Entity
Missing required
since query parameter:Bad Request
since is present but cannot be parsed as a date (hand-rolled validation after FastAPI accepts the request).Unauthorized
Invalid or missing API key
Not Found
Invalid endpoint path
Too Many Requests
Rate limit exceeded
Internal Server Error
Returned for very deep page offsets, and — after such a request — temporarily for all requests to this endpoint (including shallow pages) for around a minute. Back off and retry; the endpoint recovers on its own.