Indeed Scraper API (Python)
A small Python client that turns Indeed job pages into clean JSON using the ScrapingBee web scraping API. You pass a search query and a location, and you get back a list of jobs with title, company, location, and link. The headless browser rendering, residential proxies, and HTML parsing are handled for you.
Indeed renders its results with JavaScript and defends against automated traffic, so a plain requests.get returns little. This Indeed scraper sends each request through ScrapingBee with JavaScript rendering and residential proxies switched on, then applies the extraction rules server-side so you never touch BeautifulSoup.
Install
pip install indeed-scraper-api
Quickstart
from indeed_scraper_api import IndeedScraper
scraper = IndeedScraper(api_key="YOUR_SCRAPINGBEE_API_KEY")
result = scraper.search("python developer", location="New York", start=0)
for job in result["jobs"]:
print(job["title"], "-", job["company"], "-", job["location"])
Get an API key with 1,000 free credits at ScrapingBee; no card required.
What you get back
search() returns a dictionary with a jobs list, one entry per Indeed job card:
{
"jobs": [
{
"title": "Python Developer",
"company": "Acme Corp",
"location": "New York, NY",
"url": "/rc/clk?jk=..."
}
]
}
The fields come straight from the CSS selectors documented in ScrapingBee's data extraction rules, so you can add your own fields by passing a custom extract_rules dictionary.
API reference
IndeedScraper(api_key, timeout=60) creates a client.
search(query, location="", start=0, **options)returns structured jobs for one results page. Indeed pages in steps of 10, sostart=10is page two.pages(query, location="", count=3, **options)yields structured results for the firstcountpages.scrape(url, extract_rules=None, **options)fetches any Indeed URL. Returns rendered HTML, or JSON when you passextract_rules.
Every method accepts these overrides:
| Option | Default | Purpose |
|---|---|---|
render_js |
True |
Run the page in a headless browser |
premium_proxy |
True |
Route through residential proxies |
country_code |
"us" |
Proxy country |
wait |
5000 |
Milliseconds to wait after load |
extract_rules |
JOB_RULES |
Override the returned fields |
Credit cost
With residential proxies and JavaScript rendering both on, each request costs 25 ScrapingBee credits (Premium tier plus JS). Drop premium_proxy for cheaper datacenter requests where a target allows it. See ScrapingBee pricing for the credit table.
Requirements
Python 3.8 or newer, the requests library (installed automatically), and a ScrapingBee API key. This client is an independent wrapper built on the public ScrapingBee API and is not affiliated with Indeed.
Links
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file indeed_scraper_api-0.0.1.tar.gz.
File metadata
- Download URL: indeed_scraper_api-0.0.1.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0e59f5cb98dff59e6d6ace554251baa61b98a4d4848c2dfbb91dd63f20fdb86
|
|
| MD5 |
dce9e0c49b08a83bd6476691f9b1c969
|
|
| BLAKE2b-256 |
67bab6c6851a6bf96be720a63016a2045e1c5235ce181e7abf43144dee145e20
|
File details
Details for the file indeed_scraper_api-0.0.1-py3-none-any.whl.
File metadata
- Download URL: indeed_scraper_api-0.0.1-py3-none-any.whl
- Upload date:
- Size: 5.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76f5255b6ec5793c0c721c350007053701ab5403bfa4bf59b1913791d22c25fb
|
|
| MD5 |
ae8f436819f87d332fbec398d5e64935
|
|
| BLAKE2b-256 |
06863fb52859def26fe2785a813909f07a1c4915ae90eec98dca6134a94c6a01
|