ScavioScavio
Pricing
Tools
Sign InsGet Startedg
Blog
Indeed6 min readOct 27, 2026

How to Get Indeed Job Postings and Salary Data Through an API

Use Scavio's Indeed API: one POST returns a page of live postings with salary min and max and employer rating. Detail, employers and reviews are 1 call each.

Scavio Team

Oct 27, 2026

Try the Indeed API free
scavio
Jobs / Salary data
Indeed

To get Indeed job postings programmatically, use Scavio's Indeed API. POST /api/v1/indeed/search with a role and a location returns a live page of postings (45 for "software engineer" in New York) with title, employer, the employer's rating, location, job type, posting date and the salary as salary_min, salary_max and salary_period. /job adds the full description, /company the employer's profile and employee-reported salaries, and /company/reviews the employee reviews. Each call costs 2 credits, about $0.004 on the Growth plan billed yearly.

Indeed's own APIs are for partners who create and manage jobs on Indeed, such as ATS vendors and agencies, so they do not return search results to read. The full comparison of what does is in the best Indeed job data APIs.

Step 1: Search postings

Bash
curl -s https://api.scavio.dev/api/v1/indeed/search \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "software engineer", "location": "New York, NY"}'

On October 27, 2026 this returned 45 postings in 3.8 seconds. The top of the response, as captured:

JSON
{
  "query": "software engineer",
  "location": "New York, NY",
  "page": 1,
  "total_results": 3518,
  "unique_results": 2784,
  "radius": 50,
  "count": 45
}

unique_results is the count after Indeed collapses the same role listed several times, usually by staffing agencies, so use it when you report demand. One row from jobs[], trimmed to the fields most projects use:

JSON
{
  "pos": 6,
  "job_key": "8af0957fc860f6a7",
  "title": "Software Development Engineer",
  "company": "Adobe",
  "company_rating": 4.2,
  "company_review_count": 877,
  "location": "New York, NY 10012",
  "remote": false,
  "salary_text": "$114,100 - $214,950 a year",
  "salary_min": 114100,
  "salary_max": 214950,
  "salary_period": "yearly",
  "salary_currency": "USD",
  "salary_source": "EXTRACTION",
  "job_types": ["Full-time"],
  "posted_at": "2026-06-02T05:00:00.000Z",
  "posted_relative": "30+ days ago",
  "indeed_apply": false,
  "sponsored": false,
  "norm_title": "Software Engineer",
  "apply_count": 832
}

Rows also carry benefits, shifts, schedules, remote types, a snippet and the employer's logo. sponsored marks paid placements: 30 of the 45 rows on this page were sponsored, and some were for unrelated roles, so filter on it before you count. norm_title is Indeed's normalised title, useful for grouping "SDE II" and "Software Engineer" together.

Step 2: Narrow the search and page through it

Bash
curl -s https://api.scavio.dev/api/v1/indeed/search \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "registered nurse", "location": "Denver, CO", "radius": 25, "max_age_days": 3, "job_type": "full_time"}'

The response echoes the Indeed URL it searched, so you can see the filters applied:

JSON
{
  "url": "https://www.indeed.com/jobs?q=registered+nurse&l=Denver%2C+CO&radius=25&fromage=3&jt=fulltime",
  "total_results": 68,
  "unique_results": 63,
  "radius": 25,
  "count": 30
}

All 30 postings showed a salary, and most were hourly, such as Denver Health's Charge Nurse at "salary_text": "$39.60 - $63.54 an hour" with salary_min 39.6, salary_max 63.54 and salary_period "hourly". Check salary_period before you average: yearly, monthly and hourly figures come back side by side. radius accepts 0, 5, 10, 15, 25, 35, 50 or 100 miles and max_age_days 1, 3, 7 or 14; the API rejects other values rather than run an unfiltered search. Pass page for more results. In our test the first page held 36 to 45 postings and the second 15 to 25.

Step 3: Get the full posting

Bash
curl -s https://api.scavio.dev/api/v1/indeed/job \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"job_id": "8af0957fc860f6a7"}'

job_id takes the job_key from search, or any indeed.com URL carrying jk=. Captured, with the 6,892-character description cut short:

JSON
{
  "job_key": "8af0957fc860f6a7",
  "title": "Software Development Engineer",
  "company": "Adobe",
  "company_slug": "Adobe",
  "company_rating": 4.2,
  "company_review_count": 875,
  "location": "New York, NY 10012",
  "salary_text": "$114,100 - $214,950 a year",
  "salary_min": 114100,
  "salary_max": 214950,
  "salary_currency": "USD",
  "salary_period": "yearly",
  "job_types": ["Full-time"],
  "employment_types": ["FULL_TIME"],
  "posted_at": "2026-06-02T05:45:58.118Z",
  "valid_through": "2027-02-24T10:25:01.846Z",
  "expired": false,
  "description": "Our Company\n\nAdobe is passionate about changing the world through digital experiences. We give everyone, from individual..."
}

The response also returns description_html, benefits, highlighted_attributes and source. company_slug feeds the next two calls.

Step 4: Look up the employer

Bash
curl -s https://api.scavio.dev/api/v1/indeed/company \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"company": "Adobe"}'

Trimmed from the captured profile:

JSON
{
  "name": "Adobe",
  "industry": "Computer Hardware Development",
  "headquarters": "San Jose, CA",
  "founded": 1982,
  "employee_range": "10000_plus",
  "revenue": "5b_10b",
  "ceo_approval_percent": 70,
  "rating": 4.2,
  "review_count": 875,
  "rating_categories": {
    "work_life_balance": 4.1,
    "compensation_benefits": 4.2,
    "job_security_advancement": 3.7,
    "management": 3.6,
    "culture": 4.1
  },
  "total_jobs": 178,
  "salaries": [
    { "title": "Software Engineer", "salary_text": "$161,068", "salary": 161068, "salary_period": "yearly", "reported_count": 32 },
    { "title": "Product Manager", "salary_text": "$170,107", "salary": 170107, "salary_period": "yearly", "reported_count": 24 }
  ]
}

salaries[] (16 roles for Adobe) is pay that employees reported to Indeed, a useful check against the ranges in postings. The profile also lists open jobs by location, 20 current postings, similar companies and Indeed's happiness scores.

Step 5: Read employee reviews

Bash
curl -s https://api.scavio.dev/api/v1/indeed/company/reviews \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"company": "Adobe"}'

The first page reported total_results 479 written reviews across total_ratings 875, with topic counts such as 232 mentions of work-life balance rated 4.1. reviews[] holds 20 a page with title, text, rating, rating_categories, current_employee and submitted_on; pass page for more.

All four endpoints

EndpointWhat it returnsCredits
/api/v1/indeed/searchPostings with salary min and max, employer rating, job type, benefits and posting date2
/api/v1/indeed/jobFull description as text and HTML, structured salary, validity date2
/api/v1/indeed/companyEmployer profile, category ratings, open jobs and employee-reported salaries2
/api/v1/indeed/company/reviews20 employee reviews a page with ratings and topics2

For whether Indeed's own API is still an option, see is the Indeed API still available?.

Getting started

  1. Sign up at dashboard.scavio.dev/sign-up: 50 free credits, no card required.
  2. Copy your API key from the dashboard.
  3. Send a POST to /api/v1/indeed/search with a query and location and your key in the Authorization header.

Try the Indeed API free in the playground first, or call it from Claude and other agents through the MCP server.

Reference: Indeed API overview · search · job · company · reviews

Frequently asked questions

How do I get an Indeed API key?

Indeed issues API credentials through its Partner Console only to approved partners such as ATS vendors, agencies and job publishers, and those APIs create and manage jobs rather than return search results. To read public postings, sign up for a third-party API instead: a Scavio key comes from the dashboard at signup with 50 free credits and no card.

Can I get Indeed jobs with Python?

Yes. Install the Scavio SDK with pip install scavio and call client.indeed.search(query=..., location=...), or send a POST to https://api.scavio.dev/api/v1/indeed/search with the requests library and a Bearer header. The response is JSON with a jobs array, so no HTML parsing is needed.

How many Indeed postings does one API call return?

On October 27, 2026, the first page of an Indeed search through the API returned 36 to 45 postings across ten US cities, and the second page 15 to 25. Each page is a separate 2-credit request. The response also reports total_results and unique_results, the count after Indeed collapses duplicate listings.

Does every Indeed posting include a salary?

No. Of 570 software engineer postings pulled across ten cities on October 27, 2026, 453 (79.5%) showed a salary, from 93% in New York to 57% in Dallas. Postings without one return salary_text null. The min_salary filter matches on Indeed's own estimate, so it can return postings with no posted salary.

How much does Indeed data cost with Scavio?

Every Indeed endpoint costs 2 credits a call: about $0.004 on the Growth plan billed yearly and about $0.0086 on the $30 monthly Project plan. New accounts get 50 free credits with no card, which covers 25 Indeed calls.

Indeed job data as JSON

  • Search, job detail, employers and reviews
  • Salary as numbers, not strings
  • 2 credits a call, no partner program
Try the Indeed API free

50 free credits, no credit card

On this page

  1. Step 1: Search postings
  2. Step 2: Narrow the search and page through it
  3. Step 3: Get the full posting
  4. Step 4: Look up the employer

Related articles

View all
  • scavio
    Comparison / Jobs
    Indeed
    5 Best Indeed Job Data APIs in 2026: Why Scavio Wins on Live Salary Data
  • scavio
    Jobs / Job board
    Indeed
    Is the Indeed API Still Available? Not for Job Search, but Here Is How to Get the Data
ScavioScavio

One scraper API for every social, search, e-commerce and real estate platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy