Jobs & Hiring

Indeed API

The Indeed API returns live job listings, salary data and company profiles as clean JSON.

7 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary jobs/search endpoint returns jobs with jobkey, title, company, location, remote flag, employment types, job level and salary range, and you can pull a single job, a company profile, company reviews and salaries, and an estimated salary for a role. It is built for recruiting tools, labor-market analysts and job boards that need live Indeed data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.

Live example

Real request and response JSON

Captured from the indexed primary action, jobs/search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/indeed/v1/jobs/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "python developer",
    "location": "New York",
    "country": "US",
    "max_results": 60
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "indeed",
    "endpoint": "jobs/search",
    "mode": "live",
    "latency_ms": 2017.7,
    "record_count": 60,
    "bytes": 0,
    "cache_hit": false
  },
  "data": {
    "jobs": [
      {
        "jobkey": "[redacted-phone]b74e4a",
        "indeed_url": "https://www.indeed.com/viewjob?jk=[redacted-phone]b74e4a",
        "search_query": "python developer",
        "search_country": "US",
        "title": "Senior Associate - Developer Engineer",
        "normalized_title": null,
        "company": "New York Life",
        "company_rating": null,
        "company_review_count": null,
        "company_logo_url": "https://d2q79iu7y748jz.cloudfront.net/s/_squarelogo/256x256/977b8c576b59e94555a5f6bbb0270201",
        "company_url": "https://www.indeed.com/cmp/New-York-Life",
        "company_industry": null,
        "company_employees": "10,000+",
        "company_revenue": "more than $10B (USD)",
        "company_description": "For over 175 years, New York Life has helped people act on their love through offerings such as life insurance, retirement services, investments, and long-term care insurance.",
        "company_website": "https://www.newyorklife.com",
        "formatted_location": "New York, NY",
        "city": "New York",
        "state": "NY",
        "postal_code": null,
        "country": "US",
        "remote": true,
        "location": null,
        "salary_text": null,
        "salary_min": 100000,
        "salary_max": 143000,
        "salary_period": "YEARLY",
        "salary_currency": "USD",
        "salary_source": "EMPLOYER",
        "salary_yearly_min": 100000,
        "salary_yearly_max": 143000,
        "salary_usd_yearly_normalized": null,
        "salary_range": null,
        "posted_relative": null,
        "posted_iso": "[redacted-phone]",
        "posted_epoch_ms": 1782363600000,
        "valid_through": null,
        "sponsored": false,
        "urgently_hiring": false,
        "new_job": false,
        "expired": false,
        "indeed_apply": false,
        "apply_url": "https://careers.newyorklife.com/careers/job/42742531",
        "external_apply_url": "https://careers.newyorklife.com/careers/job/42742531",
        "snippet_html": null,
        "snippet_text": null,
        "description_html": "<div><div><div><div><h2 class=\"jobSectionHeader\"><b>Job Description</b></h2>\n</div></div><div><div><div><h4 class=\"jobSectionHeader\"><b>Requisition ID</b></h4>\n<div>94321</div>\n</div><div><h4 class=\"jobSectionHeader\"><b>Department</b></h4>\n<div>Tech Data AI Ventures</div>\n</div><div><h4 class=\"jobSectionHeader\"><b>Job Function</b></h4>\n<div>Tech Data AI Ventures</div>\n</div><div><h4 class=\"jobSectionHeader\"><b>Location</b></h4>\n<div>New York,New York,United States</div>\n</div><div><h4 class=\"jobSectionHeader\"><b>Role Location Designation</b></h4>\n<div>Hybrid - 3 days per week</div><br>\n</div><",
        "description_text": "Job Description Requisition ID 94321 Department Tech Data AI Ventures Job Function Tech Data AI Ventures Location New York,New York,United States Role Location Designation Hybrid - 3 days per week Location Designation: Hybrid - 3 days per week Role Overview New York Life is seeking a highly motivated and forward-thinking Senior Associate –Developer Engineer to join our technology organization. This role is ideal for an experienced engineer who combines deep mainframe expertise with modern software engineering practices and a passion for continuous learning. As a senior member of the engineerin",
        "indeed_skills": [
          "Spring Boot",
          "Bachelor's degree in management information systems",
          "Version control"
        ],
        "benefits": [
          "Yearly bonus"
        ],
        "employment_types": [],
        "job_level": "Senior level",
        "work_schedule": null,
        "onet_skills": null,
        "ai_summary": null
      },
      {
        "jobkey": "4a903b480e04c419",
        "indeed_url": "https://www.indeed.com/viewjob?jk=4a903b480e04c419",
        "search_query": "python developer",
        "search_country": "US",
        "title": "Senior Executive Director of Software Engineering - Data Platforms | Workforce and Experience Technology (WXT)",
        "normalized_title": null,
        "company": "JPMorganChase",
        "company_rating": null,
        "company_review_count": null,
        "company_logo_url": "https://d2q79iu7y748jz.cloudfront.net/s/_squarelogo/256x256/62e186e96c[redacted-phone]ef6880fae379",
        "company_url": "https://www.indeed.com/cmp/Jpmorganchase-2",
        "company_industry": null,
        "company_employees": "10,000+",
        "company_revenue": "more than $10B (USD)",
        "company_description": "Headquartered in New York City, JPMorgan Chase is the largest bank in the United States.",
        "company_website": "https://www.jpmorganchase.com/",
        "formatted_location": "New York, NY 10172",
        "city": "New York",
        "state": "NY",
        "postal_code": "10172",
        "country": "US",
        "remote": false,
        "location": null,
        "salary_text": null,
        "salary_min": 232750,
        "salary_max": 325000,
        "salary_period": "YEARLY",
        "salary_currency": "USD",
        "salary_source": "EMPLOYER",
        "salary_yearly_min": 232750,
        "salary_yearly_max": 325000,
        "salary_usd_yearly_normalized": null,
        "salary_range": null,
        "posted_relative": null,
        "posted_iso": "[redacted-phone]",
        "posted_epoch_ms": 1784350800000,
        "valid_through": null,
        "sponsored": false,
        "urgently_hiring": false,
        "new_job": false,
        "expired": false,
        "indeed_apply": false,
        "apply_url": "https://JPMorganChase.contacthr.com/[redacted-phone]",
        "external_apply_url": "https://JPMorganChase.contacthr.com/[redacted-phone]",
        "snippet_html": null,
        "snippet_text": null,
        "description_html": "<div><b>JOB DESCRIPTION</b><br>\n<br>\n<br>\n<p>You will be poised to achieve extraordinary success and make a high impact on those around you through data solutions. Partner with an organization comprised of the industry's thought leaders and committed to advancing your leadership career.\n</p><p></p><p>As a Senior Director of Software Engineering at JPMorganChase within the Employee Platforms, Workforce Experience Technology (WxT) Workforce Data and Analytics (WDA) team, you lead multiple technical areas, manage the activities of multiple departments, and collaborate across technical domains. Yo",
        "description_text": "JOB DESCRIPTION You will be poised to achieve extraordinary success and make a high impact on those around you through data solutions. Partner with an organization comprised of the industry's thought leaders and committed to advancing your leadership career. As a Senior Director of Software Engineering at JPMorganChase within the Employee Platforms, Workforce Experience Technology (WxT) Workforce Data and Analytics (WDA) team, you lead multiple technical areas, manage the activities of multiple departments, and collaborate across technical domains. Your expertise is applied cross-functionally ",
        "indeed_skills": [
          "Data integrity assurance",
          "Cost management",
          "Commission pay"
        ],
        "benefits": [
          "Health insurance",
          "Tuition reimbursement"
        ],
        "employment_types": [
          "Full-time"
        ],
        "job_level": "Senior level",
        "work_schedule": null,
        "onet_skills": null,
        "ai_summary": null
      },
      {
        "jobkey": "fa7d6f6db028664f",
        "indeed_url": "https://www.indeed.com/viewjob?jk=fa7d6f6db028664f",
        "search_query": "python developer",
        "search_country": "US",
        "title": "Principal Agile Coach",
        "normalized_title": null,
        "company": "Metropolitan Transportation Authority",
        "company_rating": null,
        "company_review_count": null,
        "company_logo_url": "https://d2q79iu7y748jz.cloudfront.net/s/_squarelogo/256x256/80a263f4cedc4492e628479e5d010de6",
        "company_url": "https://www.indeed.com/cmp/Metropolitan-Transportation-Authority-7",
        "company_industry": null,
        "company_employees": "10,000+",
        "company_revenue": null,
        "company_description": "We move the region that moves the world.",
        "company_website": "https://new.mta.info/",
        "formatted_location": "New York, NY 10004",
        "city": "New York",
        "state": "NY",
        "postal_code": "10004",
        "country": "US",
        "remote": false,
        "location": null,
        "salary_text": null,
        "salary_min": 142251,
        "salary_max": 167902,
        "salary_period": "YEARLY",
        "salary_currency": "USD",
        "salary_source": "EMPLOYER",
        "salary_yearly_min": 142251,
        "salary_yearly_max": 167902,
        "salary_usd_yearly_normalized": null,
        "salary_range": null,
        "posted_relative": null,
        "posted_iso": "[redacted-phone]",
        "posted_epoch_ms": 1784264400000,
        "valid_through": null,
        "sponsored": false,
        "urgently_hiring": false,
        "new_job": false,
        "expired": false,
        "indeed_apply": false,
        "apply_url": "https://careers.mta.org/jobs/18009077-principal-agile-coach?tm_job=16585&tm_event=view&tm_company=47560",
        "external_apply_url": "https://careers.mta.org/jobs/18009077-principal-agile-coach?tm_job=16585&tm_event=view&tm_company=47560",
        "snippet_html": null,
        "snippet_text": null,
        "description_html": "<div><p><b>Description</b><br>\n</p><br>\n<br>\n<div><div><p>JOB TITLE:</p><p><br>\nPrincipal Agile Coach</p></div><div><p><br>\nSALARY RANGE:</p><p><br>\n$142,251 - $167,902</p></div><div><p><br>\nDEPT/DIV:<br>\n</p><p>Information Technology</p></div><div><p><br>\nSUPERVISOR:<br>\n</p><p>Director, Portfolio &amp; Prog Mgmt</p></div><div><p><br>\nLOCATION:</p><p><br>\n2 Broadway, New York, NY 10004</p></div><div><p><br>\nHOURS OF WORK:<br>\n</p><p>9:00 am - 5:30 pm (7.5 hours/day) or as required</p></div></div><p></p><p><br>\nThis position is eligible for teleworking, which is currently 2 days per week. New ",
        "description_text": "Description JOB TITLE: Principal Agile Coach SALARY RANGE: $142,251 - $167,902 DEPT/DIV: Information Technology SUPERVISOR: Director, Portfolio & Prog Mgmt LOCATION: 2 Broadway, New York, NY 10004 HOURS OF WORK: 9:00 am - 5:30 pm (7.5 hours/day) or as required This position is eligible for teleworking, which is currently 2 days per week. New hires are eligible to apply 30 days after their effective date of hire. Opening: The Metropolitan Transportation Authority is North America's largest transportation network, serving a population of 15.3 million people across a 5,000-square-mile travel area",
        "indeed_skills": [
          "Jira",
          "Performance dashboard reports",
          "SAFe"
        ],
        "benefits": [],
        "employment_types": [],
        "job_level": "Senior level",
        "work_schedule": null,
        "onet_skills": null,
        "ai_summary": null
      }
    ]
  }
}
Actions

What the Indeed API does

ActionDescriptionConcrete use caseKey params
jobs/searchSearch live job postings on Indeed by keyword and location. Each result includes the full job description, salary range, employer details, posting date, apply link, employment type and remote flag. Filter by job type, remote/hybrid, seniority, posting date and radius. Covers 60+ Indeed country sites.Recruiting teams call jobs/search to search live job postings on Indeed by keyword and location.query, country, location, max_results, sort_by, ...
jobGet the full detail of one or more specific jobs by their Indeed job key (or job URL). Returns the complete job description, salary, employer details, location, posting date, skills, benefits and apply link for each. Pass several keys at once to fetch them in a single call.Labor-market analysts call job to get the full detail of one or more specific jobs by their Indeed job key (or job URL).jobkey, country
companyLook up a company on Indeed: profile (industry, size, revenue, HQ, founded year, description, website), reputation (overall rating, review count, CEO approval) and optionally the company's open jobs.Job boards call company to look up a company on Indeed.company, country, include_jobs, max_jobs
company/searchFind companies on Indeed by name or keyword (optionally near a location). Returns a ranked list of companies with each one's overall rating, review count, industry sectors, logo and links to its Indeed profile, jobs, reviews and salaries pages.Sales intelligence teams call company/search to find companies on Indeed by name or keyword (optionally near a location).query, country, location, max_results
company/reviewsGet a company's employee reviews from Indeed (review text, overall rating, the 5 sub-ratings — work/life balance, compensation, management, culture, job security — job title, location and date). Pass the company name or Indeed /cmp slug; paginate with `start`.Recruiting teams call company/reviews to get a company's employee reviews from Indeed (review text, overall rating, the 5 sub-ratings.company, max_reviews, start, sort
company/salariesGet a company's salary breakdown by job title from Indeed (average pay, pay period and the number of salaries reported per role). Pass the company name or Indeed /cmp slug.Labor-market analysts call company/salaries to get a company's salary breakdown by job title from Indeed (average pay, pay period and the nu….company
estimated_salaryEstimate the market salary for a job title (optionally in a specific US location) from Indeed's salary data — median/mean/min/max/std + sample size + average cash bonus, plus the top-paying companies, top-paid cities, related job titles and a per-US-state average map. Both the location-specific estimate and the national estimate are returned.Job boards call estimated_salary to get estimate the market salary for a job title (optionally in a specific US location) from Indeed….job_title, location
Code samples

Call jobs/search from your stack

curl -X POST https://api.reefapi.com/indeed/v1/jobs/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"python developer","location":"New York","country":"US","max_results":60}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.indeed.jobs/search with {"query":"python developer","location":"New York","country":"US","max_results":60}.
Use cases

Who uses this API and why

  • Job boards call jobs/search to aggregate fresh listings by role, location and remote status.
  • Compensation tools use estimated_salary and company/salaries to benchmark pay for a title.
  • Sales-intelligence teams use company and jobs/search to detect hiring signals at target accounts.
FAQ

Questions developers ask before integrating

What is the Indeed API?

Indeed API is a ReefAPI endpoint group for job search and company profiles. It returns live JSON through POST requests under /indeed/v1.

Is the Indeed API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Indeed calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Indeed login or account?

No login to Indeed is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Indeed data?

The page example is captured from a live jobs/search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Indeed API use?

Indeed actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Indeed from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call indeed actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Indeed API a Indeed scraper?

It is the managed alternative to a DIY Indeed scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same job search and company profiles back as clean JSON.

Why does my Indeed scraper keep getting blocked?

Most Indeed scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / indeed

Indeed

Job search and company profiles.

base /indeed/v17 endpoints
post/indeed/v1/jobs/search1 credit

Search live job postings on Indeed by keyword and location. Each result includes the full job description, salary range, employer details, posting date, apply link, employment type and remote flag. Filter by job type, remote/hybrid, seniority, posting date and radius. Covers 60+ Indeed country sites.

ParameterAllowed / rangeDescription
queryrequiredWhat job to search for — job title, skill or company keyword.
country = USoptionalUS · CA · MX · UK · IE · DE · FR · ES · IT · NL · CH · AT · BE · LU · PT · SE · DK · NO · FI · PL · CZ · HU · RO · GR · UA · TR · AE · SA · QA · KW · BH · OM · IL · ZA · EG · MA · NG · IN · PK · SG · HK · PH · MY · ID · JP · KR · TW · TH · VN · AU · NZ · BR · AR · CL · CO · PE · EC · CR · PA · UY · VEIndeed country site to search. Each country is a separate Indeed site with its own jobs.
locationoptionalCity, region or postal code to search around. Leave empty to search the whole country.
max_results = 60optional1–1000How many jobs to return (1–1000). The engine pages internally — no page/cursor needed.
sort_by = relevanceoptionalrelevance · dateResult ordering.
job_typeoptionalfulltime · parttime · contract · internship · temporary · permanent · seasonalOnly return jobs of this employment type.
remote = falseoptionalOnly remote jobs.
hybrid = falseoptionalOnly hybrid (part-remote) jobs.
leveloptionalentry_level · mid_level · senior_levelOnly jobs at this seniority level.
from_daysoptional1 · 3 · 7 · 14Only jobs posted within the last N days. Dropdown values work everywhere; other day-counts work on the primary API path.
radiusoptional0 · 5 · 10 · 15 · 25 · 35 · 50 · 100Search radius in miles around `location` (only used when a location is given). Dropdown values work everywhere; other mile-counts work on the primary API path.
include_detail = falseoptionalForce-fetch the full job description per job on the slow fallback path. Normally unnecessary — descriptions come inline.
Try in playground →
post/indeed/v1/job1 credit

Get the full detail of one or more specific jobs by their Indeed job key (or job URL). Returns the complete job description, salary, employer details, location, posting date, skills, benefits and apply link for each. Pass several keys at once to fetch them in a single call.

ParameterAllowed / rangeDescription
jobkeyrequiredOne or more Indeed job keys (the 16-character id from a job URL, e.g. ?jk=c64905855731be67) or full Indeed job URLs. Accepts a single value or a list.
country = USoptionalUS · CA · MX · UK · IE · DE · FR · ES · IT · NL · CH · AT · BE · LU · PT · SE · DK · NO · FI · PL · CZ · HU · RO · GR · UA · TR · AE · SA · QA · KW · BH · OM · IL · ZA · EG · MA · NG · IN · PK · SG · HK · PH · MY · ID · JP · KR · TW · TH · VN · AU · NZ · BR · AR · CL · CO · PE · EC · CR · PA · UY · VEIndeed country site to search. Each country is a separate Indeed site with its own jobs.
Try in playground →
post/indeed/v1/company2 credits

Look up a company on Indeed: profile (industry, size, revenue, HQ, founded year, description, website), reputation (overall rating, review count, CEO approval) and optionally the company's open jobs.

ParameterAllowed / rangeDescription
companyrequiredCompany name or Indeed company slug (the part after indeed.com/cmp/).
country = USoptionalUS · CA · MX · UK · IE · DE · FR · ES · IT · NL · CH · AT · BE · LU · PT · SE · DK · NO · FI · PL · CZ · HU · RO · GR · UA · TR · AE · SA · QA · KW · BH · OM · IL · ZA · EG · MA · NG · IN · PK · SG · HK · PH · MY · ID · JP · KR · TW · TH · VN · AU · NZ · BR · AR · CL · CO · PE · EC · CR · PA · UY · VEIndeed country site to search. Each country is a separate Indeed site with its own jobs.
include_jobs = trueoptionalAlso list the company's open jobs.
max_jobs = 50optional1–500How many of the company's jobs to return (1–500).
Try in playground →
post/indeed/v1/company/search1 credit

Find companies on Indeed by name or keyword (optionally near a location). Returns a ranked list of companies with each one's overall rating, review count, industry sectors, logo and links to its Indeed profile, jobs, reviews and salaries pages.

ParameterAllowed / rangeDescription
queryrequiredCompany name or keyword to search for (e.g. a name, industry or product).
country = USoptionalUS · CA · MX · UK · IE · DE · FR · ES · IT · NL · CH · AT · BE · LU · PT · SE · DK · NO · FI · PL · CZ · HU · RO · GR · UA · TR · AE · SA · QA · KW · BH · OM · IL · ZA · EG · MA · NG · IN · PK · SG · HK · PH · MY · ID · JP · KR · TW · TH · VN · AU · NZ · BR · AR · CL · CO · PE · EC · CR · PA · UY · VEIndeed country site to search. Each country is a separate Indeed site with its own jobs.
locationoptionalOptional city or region to bias the company search.
max_results = 50optional1–50How many companies to return (1–50, one page).
Try in playground →
post/indeed/v1/company/reviews1 credit

Get a company's employee reviews from Indeed (review text, overall rating, the 5 sub-ratings — work/life balance, compensation, management, culture, job security — job title, location and date). Pass the company name or Indeed /cmp slug; paginate with `start`.

ParameterAllowed / rangeDescription
companyrequiredCompany name or Indeed /cmp slug.
max_reviews = 20optional1–20How many reviews to return from this page (1–20).
start = 0optional0–Pagination offset (0, 20, 40 …).
sort = relevanceoptionalrelevance · helpfulness · rating_desc · rating_asc · date_descHow to order the reviews.
Try in playground →
post/indeed/v1/company/salaries1 credit

Get a company's salary breakdown by job title from Indeed (average pay, pay period and the number of salaries reported per role). Pass the company name or Indeed /cmp slug.

ParameterAllowed / rangeDescription
companyrequiredCompany name or Indeed /cmp slug.
Try in playground →
post/indeed/v1/estimated_salary1 credit

Estimate the market salary for a job title (optionally in a specific US location) from Indeed's salary data — median/mean/min/max/std + sample size + average cash bonus, plus the top-paying companies, top-paid cities, related job titles and a per-US-state average map. Both the location-specific estimate and the national estimate are returned.

ParameterAllowed / rangeDescription
job_titlerequiredThe job title to estimate pay for (e.g. 'software engineer', 'registered nurse', 'truck driver').
locationoptionalOptional US city or state to localise the estimate (e.g. 'Austin, TX', 'California'). Omit for the national figure.
Try in playground →