Indeed data, ready when you are.
Job search and job listings from Indeed, by country.
- See the price before every call
- Pay only for records that come back
- No subscription. Your balance never expires
What you can get.
What the data looks like.
| jobTitle | companyName | city | state | country | employmentType | workplaceType | salaryText | salaryMin | salaryMax | salaryCurrency | salaryPeriod | posted | jobId | jobUrl | applyUrl | companyKey | details |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Barista | Brewlab Coffee | Austin | TX | US | Part-time | On-site | $16 – $19 an hour | 16 | 19 | USD | hour | 2026-10-14 | 3889282693 | https://www.indeed.com/barista-1000 | https://www.indeed.com/barista-1000 | barista |
|
| Shift Supervisor, Coffee Bar | Daily Grind | Austin | TX | US | Full-time | On-site | $19 – $22 an hour | 19 | 22 | USD | hour | 2026-10-13 | 2184679905 | https://www.indeed.com/shift-supervisor-coffee-bar-1001 | https://www.indeed.com/shift-supervisor-coffee-bar-1001 | shift-supervisor-coffee-bar |
|
| Barista (Weekends) | Bean Bar | Round Rock | TX | US | Part-time | On-site | $15 an hour | 15 | 15 | USD | hour | 2026-10-12 | 1556815332 | https://www.indeed.com/barista-weekends-1002 | https://www.indeed.com/barista-weekends-1002 | barista-weekends |
|
For developers
API reference.
One endpoint, POST /v1/indeed. Open an operation to see its fields.
Searchsearch
Search Indeed the way a seeker would. Keyword and place, with Indeed's own filters. Every hit is a full posting with salary, skills and employer signals.
| Field | Type | Meaning |
|---|---|---|
| query * | string · ≤300 chars | |
| location | string · ≤120 chars | |
| country | enum | US · GB · CA · AU · IN · DE · FR · JP · BR · MX · IT · ES · NL · BE · CH · AT · SG · HK · IE · NZ · AR · CL · CO |
| workplace | list of enum | Indeed filters remote only; hybrid/onsite are not filterable there.remote |
| employmentType | list of enum | full_time · part_time · contract · internship · temporary |
| postedWithin | enum | 1d · 3d · 7d · 15d · 30d · any |
| sort | enum | relevance · newest |
| limit | integer · 1-100 |
Response fields, each row of data
| Field | Type |
|---|---|
| jobId | string |
| jobUrl | string |
| applyUrl | string |
| jobTitle | string |
| normalizedTitle | string |
| companyName | string |
| companyKey | string |
| company | any |
| jobDescription | string |
| employmentType | list of string |
| workplaceType | string |
| workSetting | list of string |
| shift | list of string |
| experienceLevel | string |
| educationLevel | string |
| salaryText | string |
| salaryMin | number |
| salaryMax | number |
| salaryCurrency | string |
| salaryPeriod | string |
| posted | string |
| applyStarts | string |
| city | string |
| state | string |
| country | string |
| postalCode | string |
| streetAddress | string |
| fullAddress | string |
| latitude | number |
| longitude | number |
| skills | list of string |
| certifications | list of string |
| benefits | list of string |
| eligibility | list of string |
| physicalRequirements | list of string |
| travel | list of string |
| occupation | string |
| occupationCategories | list of string |
| sponsored | boolean |
| urgentHire | boolean |
| highVolumeHiring | boolean |
| numberOfHires | string |
| employerResponseRate | number |
| employerAvgResponseTimeDays | number |
| employerResponsive | boolean |
| sourceName | string |
| sourceType | string |
| language | string |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
curl -X POST https://apiforagents.dev/v1/indeed \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"search","query":"software engineer","location":"Austin, TX","country":"US","postedWithin":"7d","limit":10}'Example response rows
[
{
"jobTitle": "Barista",
"companyName": "Brewlab Coffee",
"city": "Austin",
"state": "TX",
"country": "US",
"employmentType": "Part-time",
"workplaceType": "On-site",
"salaryText": "$16 – $19 an hour",
"salaryMin": 16,
"salaryMax": 19,
"salaryCurrency": "USD",
"salaryPeriod": "hour",
"posted": "2026-10-14",
"jobId": "3889282693",
"jobUrl": "https://www.indeed.com/barista-1000",
"applyUrl": "https://www.indeed.com/barista-1000",
"companyKey": "barista",
"details": {}
},
{
"jobTitle": "Shift Supervisor, Coffee Bar",
"companyName": "Daily Grind",
"city": "Austin",
"state": "TX",
"country": "US",
"employmentType": "Full-time",
"workplaceType": "On-site",
"salaryText": "$19 – $22 an hour",
"salaryMin": 19,
"salaryMax": 22,
"salaryCurrency": "USD",
"salaryPeriod": "hour",
"posted": "2026-10-13",
"jobId": "2184679905",
"jobUrl": "https://www.indeed.com/shift-supervisor-coffee-bar-1001",
"applyUrl": "https://www.indeed.com/shift-supervisor-coffee-bar-1001",
"companyKey": "shift-supervisor-coffee-bar",
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Jobsjobs
Full postings for up to ten Indeed job keys or job URLs.
| Field | Type | Meaning |
|---|---|---|
| subjects * | list of string · 1-10 items | Job keys or job URLs. |
| country | enum | US · GB · CA · AU · IN · DE · FR · JP · BR · MX · IT · ES · NL · BE · CH · AT · SG · HK · IE · NZ · AR · CL · CO |
Response fields, each row of data
| Field | Type |
|---|---|
| jobId | string |
| jobUrl | string |
| applyUrl | string |
| jobTitle | string |
| normalizedTitle | string |
| companyName | string |
| companyKey | string |
| company | any |
| jobDescription | string |
| employmentType | list of string |
| workplaceType | string |
| workSetting | list of string |
| shift | list of string |
| experienceLevel | string |
| educationLevel | string |
| salaryText | string |
| salaryMin | number |
| salaryMax | number |
| salaryCurrency | string |
| salaryPeriod | string |
| posted | string |
| applyStarts | string |
| city | string |
| state | string |
| country | string |
| postalCode | string |
| streetAddress | string |
| fullAddress | string |
| latitude | number |
| longitude | number |
| skills | list of string |
| certifications | list of string |
| benefits | list of string |
| eligibility | list of string |
| physicalRequirements | list of string |
| travel | list of string |
| occupation | string |
| occupationCategories | list of string |
| sponsored | boolean |
| urgentHire | boolean |
| highVolumeHiring | boolean |
| numberOfHires | string |
| employerResponseRate | number |
| employerAvgResponseTimeDays | number |
| employerResponsive | boolean |
| sourceName | string |
| sourceType | string |
| language | string |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.
curl -X POST https://apiforagents.dev/v1/indeed \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"jobs","subjects":["https://www.indeed.com/viewjob?jk=<job-key>"],"country":"US"}'Example response rows
[
{
"jobTitle": "Customer Success Manager",
"companyName": "Northfold",
"city": "London",
"country": "GB",
"employmentType": "Full-time",
"workplaceType": "Hybrid",
"salaryText": "£45,000 – £55,000 a year",
"salaryMin": 45000,
"salaryMax": 55000,
"salaryCurrency": "GBP",
"salaryPeriod": "year",
"posted": "2026-10-14",
"state": null,
"jobId": "982748018",
"jobUrl": "https://www.indeed.com/customer-success-manager-1000",
"applyUrl": "https://www.indeed.com/customer-success-manager-1000",
"companyKey": "customer-success-manager",
"details": {}
},
{
"jobTitle": "Senior Data Analyst",
"companyName": "Kitebank",
"city": "Austin",
"country": "US",
"employmentType": "Full-time",
"workplaceType": "Remote",
"salaryText": "$110,000 – $135,000 a year",
"salaryMin": 110000,
"salaryMax": 135000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"posted": "2026-10-12",
"state": "TX",
"jobId": "1707840656",
"jobUrl": "https://www.indeed.com/senior-data-analyst-1001",
"applyUrl": "https://www.indeed.com/senior-data-analyst-1001",
"companyKey": "senior-data-analyst",
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.