Free
$0/mo
200
Requests / month
- Overage
- Hard limit
- Rate limit
- 10/min
- Card
- Not needed
Public Indeed job cards, then one job.
Data samples
The page the Indeed Jobs API reads, and the response it returns for the same query.
https://www.indeed.com/jobs?q=software+engineer&l=New+York%2C+NY

{
"engine": "indeed",
"family": "jobs",
"query": {
"q": "software engineer",
"location": "New York, NY",
"job_type": null,
"remote": false,
"posted": null,
"page": 1
},
"count": 1,
"next_cursor": "2",
"results": [
{
"position": 1,
"id": "e6489bd83820f079",
"title": "Software Engineer, Early Career, Campus",
"company": "Google",
"location": "New York, NY",
"workplace_type": null,
"remote": false,
"salary_text": "$123,000 - $174,000 a year",
"salary": {
"min": 123000,
"max": 174000,
"median": null,
"currency": "USD",
"period": "year",
"source": "employer"
},
"job_type": "Full-time",
"posted_age": "30+ days ago",
"posted_at": "2026-08-07T05:00:00.000Z",
"snippet": "We're looking for engineers who bring fresh ideas from all areas, including information retrieval, distributed computing, large-scale system design, networking",
"benefits": [
"Paid holidays",
"Dental insurance",
"Health insurance",
"401(k) matching",
"Paid time off"
],
"company_rating": 4.3,
"company_reviews_count": 6269,
"company_url": "https://www.indeed.com/cmp/Google",
"easy_apply": false,
"urgently_hiring": false,
"sponsored": false,
"url": "https://www.indeed.com/viewjob?jk=e6489bd83820f079"
}
]
}Source page captured separately from the recorded response, so live values can differ.
Code
One host, one Bearer key for every Clair API. Each call returns JSON with the same envelope, so a second API is a new path, not a new client.
curl -G "https://api.clair.im/v1/search?engine=indeed&q=software+engineer&location=New+York%2C+NY" \ -H "Authorization: Bearer YOUR_API_KEY"
Reference
q is required. location maps to Indeed's l parameter. One page per search: narrow with location, job_type, remote, or posted.
GET /v1/search?engine=indeed
Authorizationheader · stringrequired
enginestringrequired
qstringrequired
locationstring
job_typestring
remotestring
postedstring
pagestring
Pricing
This API is its own subscription with its own quota. Unused requests expire at renewal. Need a custom volume? Email contact@serinlabs.com.
$0/mo
200
Requests / month
$49.99/mo
8,500
Requests / month
Most popular
$149/mo
34,000
Requests / month
$399/mo
113,800
Requests / month
No monthly fee
$0.0088
Per request
Prices in USD, billed monthly by Stripe. Cancel any time from Manage billing.
Search reads one Indeed results page (US indeed.com). Job reads that card's posting. Mosaic JSON is the live salary/date source. Indeed shows later pages to signed-in visitors only, so a search is one page of every card Indeed serves (about 45); next_cursor is always null. Hybrid is inferred from location text.
All of them: Jobs, Job. They share this API's monthly quota.
Each call is one request, and each extra page is a new call. A malformed request (400) is not counted, and a request that fails on our side (5xx) is refunded.
Yes. Every Clair API has its own free tier: 200 requests a month, with no card. It resets monthly, and the API stops when the month's requests run out.
On a paid tier, extra calls are billed at the tier's overage rate until its ceiling, then the API returns 429 until the next period. The free tier returns 429 as soon as its requests are used.
No. Each API is its own subscription, and one key works with all of them. A call to an API the account does not subscribe to returns 403 not_subscribed.
Related
APIs teams often combine with the Indeed Jobs API.
Each Clair API is its own monthly request quota. Unused requests expire. Every API has a free tier to try it.