Monsterindia APImonsterindia.com ↗
Search and retrieve job listings from foundit.in (Monster India) via 4 endpoints. Filter by location, experience, and freshness. Get full job details, skills, and salary.
What is the Monsterindia API?
This API exposes 4 endpoints for searching and retrieving job listings from foundit.in (formerly Monster India). The search_jobs endpoint accepts keyword queries and returns paginated results with title, company, salary, skills, and experience requirements. Companion endpoints cover full job details, popular cities, and top locations — giving you the building blocks for job aggregators, market analysis tools, or recruiting dashboards.
curl -X GET 'https://api.parse.bot/scraper/9c251bb8-c5d3-4322-89ca-e5590e408a1b/search_jobs?limit=20&query=python+developer&offset=0&location=Bengaluru&freshness=1&experience=3' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace monsterindia-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Foundit (Monster India) SDK — search jobs, drill into details, explore cities."""
from parse_apis.foundit_monster_india_job_api import Foundit, Freshness, JobNotFound
client = Foundit()
# Search for recent Python jobs in Bengaluru, capped at 5 results.
for job in client.jobs.search(query="python developer", location="Bengaluru", freshness=Freshness.ONE_WEEK, limit=5):
print(job.title, job.company_name, job.active)
# Drill into the first result for full details including views and similar jobs.
summary = client.jobs.search(query="data science", limit=1).first()
if summary:
detail = summary.details()
print(detail.title, detail.views, detail.description[:100])
for similar in detail.similar_jobs[:2]:
print(similar.title, similar.company_name)
# Point-lookup by ID — wrap in typed error handling.
try:
job = client.jobs.get(job_id="55416973")
print(job.title, job.company_name, job.jd_url)
except JobNotFound as exc:
print(f"Job not found: {exc.job_id}")
# List popular hiring cities for use as filter values.
for city in client.cities.list_popular(limit=5):
print(city.name)
print("exercised: jobs.search / jobs.get / summary.details / cities.list_popular")
Full-text search over foundit.in job listings. query matches job titles, skills, and company names. Results paginate via offset; each page returns up to limit items. Filters narrow by location, experience level, and posting freshness. Returns job summaries with id, title, company, locations, experience range, salary, and skills.
| Param | Type | Description |
|---|---|---|
| limit | integer | Number of results to return per page. |
| queryrequired | string | Search keywords matching job titles, skills, or company names. |
| offset | integer | Offset for pagination (number of results to skip). |
| location | string | City or location name to filter results (e.g. 'Bengaluru', 'Mumbai', 'Delhi NCR', 'Remote'). |
| freshness | integer | Filter jobs posted within this many days. Accepted values: 1, 3, 7, 15, or 30. |
| experience | integer | Minimum years of experience required for the job. |
{
"type": "object",
"fields": {
"data": "array of job listing objects with id, title, company, locations, experience, salary, skills, description, jobTypes, employmentTypes, postedAt, and jdUrl",
"meta": "object containing paging info (total, limit, cursors) and search metadata (resultId, searchId)"
},
"sample": {
"data": {
"data": [
{
"id": "55416973",
"jdUrl": "/job/python-developer-tata-consultancy-services-bengaluru-bangalore-55416973",
"title": "Python Developer",
"company": {
"name": "Tata Consultancy Services",
"companyId": 332041
},
"itSkills": [
{
"text": "Numpy"
},
{
"text": "Pandas"
},
{
"text": "Python"
}
],
"jobTypes": [
"Permanent Job"
],
"postedAt": 1781107465000,
"activeJob": true,
"locations": [
{
"city": "Bengaluru / Bangalore",
"state": "Karnataka",
"country": "India"
}
],
"companyName": "Tata Consultancy Services",
"description": "<ol><li>Must have 6+ years of IT experience</li></ol>",
"currencyCode": "INR",
"maximumSalary": {
"currency": "INR",
"absoluteValue": 0
},
"minimumSalary": {
"currency": "INR",
"absoluteValue": 0
},
"employmentTypes": [
"Full time"
],
"totalApplicants": 8,
"maximumExperience": {
"years": 8
},
"minimumExperience": {
"years": 6
}
}
],
"meta": {
"paging": {
"limit": 5,
"total": 2248,
"cursors": {
"next": "5",
"previous": "0"
}
},
"resultId": "cf05295d-f27c-4327-a387-f30ba424ecff",
"searchId": "22e379c1c8a1f994567f7c4639eaebb5"
}
},
"status": "success"
}
}About the Monsterindia API
Search and Filter Jobs
The search_jobs endpoint accepts a required query string matched against job titles, skills, and company names. Optional filters include location (e.g. 'Bengaluru', 'Delhi NCR', 'Remote'), experience (minimum years), and freshness (jobs posted within 1, 3, 7, 15, or 30 days). Results paginate via offset and limit. Each result object in the data array includes id, title, company, locations, salary, skills, description, jobTypes, and employmentType. The meta object exposes total count and cursor-based paging alongside search identifiers (resultId, searchId).
Full Job Details
get_job_details takes a job_id (obtained from search_jobs results) and returns a single, fully-hydrated listing. The response adds fields not present in search results: an HTML description, a views integer, an activeJob boolean, nested company details (including companyId, city, and industries), and a similarJobs object containing a paginated array of related listings. This endpoint is the right call when you need the complete job description text or want to surface related opportunities.
Location Reference Endpoints
get_popular_cities and get_top_locations both return a data array of location name strings with no required parameters. These two endpoints return the same location set and are intended for populating location filter dropdowns when building search interfaces against search_jobs. They act as a canonical reference for valid location strings accepted by the search endpoint.
The Monsterindia API is a managed, monitored endpoint for monsterindia.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when monsterindia.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official monsterindia.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Aggregate Indian tech job listings filtered by city and experience level for a niche job board
- Track salary ranges and required skills for specific roles across foundit.in over time
- Build a recruiter dashboard that surfaces similar jobs alongside a viewed listing using the
similarJobsfield - Power location-aware job alerts by combining
get_popular_citieswithsearch_jobsfreshness filters - Analyze which companies are actively hiring in specific Indian metros using company and location fields
- Identify trending skills in job descriptions by parsing the
skillsarrays from search results - Monitor whether a specific job listing is still active using the
activeJobboolean fromget_job_details
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does foundit.in (Monster India) offer an official developer API?+
What does `get_job_details` return that `search_jobs` does not?+
get_job_details returns several fields absent from search results: the full HTML description, a views count, an activeJob boolean, structured company details (including companyId and industries), and a similarJobs object with a paginated array of related listings. Search results carry only summary fields like title, salary, skills, and locations.Are there limits on how the `freshness` filter works in `search_jobs`?+
freshness parameter only accepts specific integer values: 1, 3, 7, 15, or 30. Arbitrary day ranges are not supported. Omitting the parameter returns results regardless of posting date.Does the API cover job applications or candidate profiles?+
Can I retrieve company-level listings — all jobs from a single employer?+
search_jobs endpoint matches company names via the query parameter, so you can query by company name, but there is no dedicated company-profile or employer-listings endpoint. The API covers search and individual job detail pages. You can fork it on Parse and revise to add a company-specific listing endpoint.