The Naukri API: what breaks a run, and what it costs
blackfalcondataThere is no official Naukri API. An unofficial one may work for an afternoon, then a challenge page appears, a response comes back empty, or a list stops paging. Yesterday's successful run returns nothing today.
Here is what our own Naukri Actor has to handle, what a run costs, and where it gives up.
Doing it yourself
Building your own scraper makes sense when you need one snapshot or when a failed run costs you nothing. The work is more involved than it first appears. These specifics come from what our own scraper has to handle.
Rate limits. Push hard enough and Naukri returns 429. Backoff is not optional. Without it, the run turns into a queue of failures.
Proxies. Runs go through rotating proxies because a single IP creates a trivially detectable pattern. Proxies are usually the largest cost line, well above compute.
Pagination. The listing is paged, but "until a page comes back empty" is not a safe stop condition. A soft block can also produce an empty page.
Silent breakage. Naukri changes its markup without announcing it. Extraction then fails quietly, producing empty fields instead of an error. Detecting that drift is a separate piece of work.
Deduplication. Each new run returns records you have already collected. Hashing every record and keeping the hashes prevents each run from re-processing everything.
Knowing what is worth retrying. A CDN edge returns 52x when it cannot reach the origin, so those responses are worth retrying. A 404 is not. Treating them the same wastes the retry budget.
The real cost is upkeep. The first version takes an afternoon to write. After that, keeping it working takes an hour every few weeks, forever. Failures are silent: you discover them when a report is empty, not when the scraper errors.
Here is a measured run, not an estimate:
- 30 records in 8.9 seconds
- cost: $0.00101 — about $0.03 per 1,000 records
The shortcut
If you do not want to own that work, one call produces the same result:
```bash curl -X POST "https://api.apify.com/v2/acts/blackfalcondata~naukri-jobs-feed/run-sync-get-dataset-items?token=YOUR_TOKEN" \ -H 'Content-Type: application/json' \ -d '{"keyword": "..."}' ```
The Python version is just as direct:
```python from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN") run = client.actor("blackfalcondata~naukri-jobs-feed").call(run_input={"keyword": "..."})
for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ```
What comes back
Each record contains 96 fields, split across a few groups:
- company — companyName, companyId, companyWebsite, companyApplyJob, companyApplyUrl, companyDescription, +3 more
- salary — salary, salaryMin, salaryMax, salaryCurrency, salaryVariablePercent, salaryMinPerMonth, +2 more
- description — descriptionSnippet, description, descriptionHtml, descriptionMarkdown
What people use it for
- Benchmarking. Pricing and salary fields allow comparisons across the whole set instead of forcing you to eyeball one page of results.
- Lead lists. Company-level fields help you filter for the segment you care about before anyone opens a CRM.
- Change detection. Timestamps let you diff runs and respond to new records instead of re-reading everything.
- Geographic analysis. Location fields support market-by-market comparisons without requiring a separate data source.
Where it stops
- Nothing here gets you past a Naukri login. Whoever writes the scraper, it can access public pages only.
- A scraper that works today may not work in six weeks. Its failure mode is silence, not an exception.
- Proxy cost rises with volume, and it is the line item people forget when estimating the DIY route.
Questions people ask
Is scraping Naukri legal?
Publicly visible pages are generally treated differently from data behind a login. Courts in the US have repeatedly declined to treat public scraping as unauthorised access. That is not legal advice, and a site's terms of service remain a separate question from the law. Anything behind a login is out of scope either way.
Why am I getting 403s when the page loads fine in my browser?
The check is not about the URL. A plain request to Naukri from our probe on 2026-08-22 was answered by akamai — 0 of 3 attempts were refused. Your browser succeeds because it carries a TLS fingerprint, a cookie and a header set that a bare HTTP client does not.
Do I need proxies?
For anything beyond a small sample, yes. Our own input exposes `proxyConfiguration` because a single origin IP is the easiest thing in the world to rate-limit.
How often will it break?
Expect to touch it whenever Naukri ships a redesign. You may not notice immediately because extraction fails quietly, returning empty fields instead of errors. Budget an hour every few weeks, not a fix-and-forget afternoon.
Is it cheaper to build it myself?
Only if your time is free. The measured run below cost $0.00101 for 30 records. The equivalent DIY cost includes proxy spend and the maintenance hour, and that maintenance hour recurs.
Try it
If you would rather not own the upkeep, the Naukri API, maintained against the live site already handles everything above. New accounts receive $5 of free platform credit each month, enough to cover a real run of this size several times over.
Disclosure: we build and maintain this Actor, and the link above is an affiliate link.
Further reading
- hiQ Labs v. LinkedIn — the appeals decision on scraping public pages
- Apify's API reference — the endpoints used above
- dataset storage — how results are stored and exported
- proxy documentation — what the proxy layer costs and offers
- Internshala API — another scraper we build and document
- the Bayt API, in the same detail — another scraper we build and document
- how the Jobstreet API responds — another scraper we build and document
We also publish the full Naukri API reference on blackfalcondata.com — the request, the response, and what a run costs.