Indeed jobs
One page (~45) of Indeed job records.
/v1/indeed/jobsIndeed answers plain HTTP with its own embedded job-cards model — no browser, no tokens. Each record carries the jobkey, title, company, location, salary (verbatim text plus Indeed's extracted min/max and period), the relative posting age, the creation date from Indeed's epoch, the company's rating, and Indeed's own redirect link. Sponsored rows come labelled, not dropped.
Request
https://api.scrapercompany.com/v1/indeed/jobsAuthenticate with your API key in the x-api-key header (see Authentication).
Body
JSON object. Unknown fields are rejected with 422.
- qstringrequiredmin length 1, max length 300
Job query.
- locationstring | nullmax length 120
Indeed's
lparameter: a city, state orremote. - pageintegerdefault
1min 1, max 30Result page.
- radius_kminteger | nullmin 0, max 2000
Indeed's
radius, in km. - fromage_daysinteger | nullmin 0, max 30
Posting age limit, in days (Indeed's
fromage).
Example request
curl -X POST "https://api.scrapercompany.com/v1/indeed/jobs" \
-H "x-api-key: $SCRAPERCOMPANY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"q": "hotel jobs"
}'Response
200 — One page of Indeed job records over plain HTTP. Metered responses carry x-credits-charged and x-credits-remaining headers (see credit headers).
{
"search_parameters": {
"engine": "indeed_jobs",
"q": "hotel jobs",
"location": "Chicago, IL",
"page": 1
},
"jobs_results": [
{
"jobkey": "8f0ec6e87b6ba389",
"title": "Front Desk Agent",
"company": "Marriott International, Inc",
"location": "Chicago, IL 60616",
"salary": {
"text": "$27.87 an hour",
"min": 27.87,
"max": 27.87,
"period": "HOURLY"
},
"posted": "6 days ago",
"created": "2029-02-16",
"company_rating": 4,
"company_review_count": 26245,
"job_types": [],
"remote": false,
"sponsored": false,
"link": "https://www.indeed.com/rc/clk?jk=8f0ec6e87b6ba389",
"snippet": "Process all guest check-ins by confirming reservations, assigning room…"
},
{
"jobkey": "e3479bc018d43229",
"title": "Housekeeping Attendant",
"company": "Sonesta International Hotels",
"location": "Chicago, IL",
"salary": {
"text": "$21.00 an hour",
"min": 21,
"max": 21,
"period": "HOURLY"
},
"posted": "1 day ago",
"created": "2029-02-21",
"company_rating": 4.1,
"company_review_count": 402,
"job_types": [
"PART_TIME"
],
"remote": false,
"sponsored": false,
"link": "https://www.indeed.com/rc/clk?jk=e3479bc018d43229",
"snippet": "Clean guest rooms and public areas."
}
],
"total": 2,
"meta": {
"source": "indeed",
"wire_bytes": 1759431,
"elapsed_s": 1.488
}
}Errors
Errors return a JSON body with a detail field. Failed requests are not charged. See Errors for the full list and retry advice.
| Status | Meaning | Retry? |
|---|---|---|
401Unauthorized | Missing or invalid API key. {"detail":"missing or invalid API key"} | No, fix the request |
402Payment Required | Not enough credits for this request. Only returned once credit enforcement is switched on; during the beta metering runs in shadow mode and never blocks. {"detail":"insufficient credits: this request costs 5, 0 available. Credits renew 2026-11-01."} | No, fix the request |
422Unprocessable Content | Request validation failed. {"detail":[{"loc":["body","name"],"msg":"Field required","type":"missing"}]} | No, fix the request |
429Too Many Requests | Too many requests: the key's requests-per-minute limit was exceeded, or (once credit enforcement is on) the plan's concurrent-request limit. No rate-limit or Retry-After headers are sent; back off and retry. {"detail":"rate limit 60/min exceeded"} | Yes, with backoff |
502Bad Gateway | The upstream source failed, blocked the request or returned an unusable answer. Safe to retry later; failed requests are not charged. {"detail":"RuntimeError"} | Yes, with backoff |
503Service Unavailable | Temporarily unavailable: a dependency of this endpoint is down, or the upstream source changed its contract. Retry later. {"detail":"database unavailable: OperationalError"} | Yes, with backoff |
Try it
- Export your key:
export SCRAPERCOMPANY_API_KEY=sk_...(no key yet? request access). - Copy the cURL example above and run it in a terminal.
- Or open the interactive playground on api.scrapercompany.com, paste your key and pick this endpoint.