The OpenWeb Ninja JSearch API offers a fast, reliable, and comprehensive real-time job postings data and salary data from Google for Job - the largest job aggregate on the web. The API sources job postings and salary data from LinkedIn, Indeed, Glassdoor, ZipRecruiter, Monster + all public job sites on the web.
The API supports several options and filters, including filtering by posting date, job title, location, remote jobs, job requirements, employer, and many other options. Each job posting includes 40+ job data points, including job title, job description, required experience, education, skills, job location, job expiration, and many other details.
To begin using JSearch API, follow these steps and make your first API call:
Subscribe to a plan: Visit our Pricing page and subscribe to one of the plans. If you are just starting, you can subscribe to the free BASIC plan of the API with 200 free monthly requests (hard-limited and no credit card required).
Make your first API call: Visit the RapidAPI Playground - the Search endpoint should be selected and displayed on the main panel view. Since there is already a default query parameter value, just click the blue “Test endpoint” button to make a your first API call. The JSON response will be displayed on the right panel.
Documentation and Resources: Refer to the detailed endpoint, parameter descriptions, and examples provided in the Endpoints tab under each endpoint. Code snippets are available for all popular programming languages and environments, including - Javascript, Python, Java, Shell, and many others, to help you easily integrate the API into your project or workflow.
You should be good to go now!
To authenticate with the API, send the X-RapidAPI-Host header with a value of “jsearch.p.rapidapi.com” along with the X-RapidAPI-Key header set with your RapidAPI App API Key (as shown in the endpoint Code Snippets).
All JSON response bodies returned by our API backend have the following fields: status (ERROR or OK), request_id, and either error (including message and code fields), if the request failed and data field otherwise.
Here’s an example of a successful response:
{
"status": "OK",
"request_id": "53345b8a-de21-40c7-9ec7-b5842796c526",
"data": {..} or [..]
}
Here’s an example of an error response:
{
"status": "ERROR",
"request_id": "408a33ea-77f5-4a21-94e5-8b5884da6bb1",
"error": {
"message": "Limit should be an integer between 1-500.",
"code": 400
}
}
Please note that some errors might be returned by the RapidAPI gateway and will have a different structure. Please refer to the Error Handling / Error Response Structure section for more details.
In addition, RapidAPI gateway adds several headers to each response, for more information, please refer to https://docs.rapidapi.com/docs/response-headers.
For detailed endpoint parameters and responses documentation and examples, and to try the API, please refer to the Endpoints section of the API.
Search for jobs posted on any public job site across the web on the largest job aggregate in the world (Google for Jobs). Extensive filtering support and most options available on Google for Jobs.
Get filter values for use with the Search endpoint. Accepts all Search endpoint parameters (except for page
and num_pages
) and returns the relevant filters and their estimated result counts for later use in Search or for stats further analysis.
Each filter value in the response corresponds to a tab in the top filters tab bar as seen on https://google.com/search?gl=us&ibp=htl;jobs&q=marketing+in+texas.
Get all job details by id. Details including all job details returned by the Search endpoint in addition to employer reviews, additional application options / links, and estimated salaries for similar jobs.
Get salary/pay estimation for a job title (e.g. Node Developer) around a location (e.g. San Francisco, CA, US). A search radius (km) can be specified (default is 200) - results are returned from within the area defined by location and radius.
The salary estimations are returned for several periods, depending on data availability / relevance, and includes: hourly, daily, weekly, monthly, or yearly.
Each subscription plan of the API defines the maximum number of requests permitted per month or the quota, in addition to a rate limit expressed in RPS (Requests Per Second).
Please note that all free plans of the API (e.g. BASIC) are rate limited to 1000 requests per hour. This is a RapidAPI requirement for any free plan.
All API responses include rate limit information in the following headers:
When hitting the rate limits of the API, the RapidAPI gateway will return a 429 Too Many Requests error. When that happens, wait until your rate limit resets, or consider upgrading your subscription plan for a higher limit. We can support almost any monthly quota and rate limit, contact us for more information.
Here’s an example of a 429 Too Many Requests error:
{
"message":"Too many requests"
}
Code examples are available for all popular programming languages and environments (Javascript, Python, Java, Shell, etc) on the Endpoints tab, on the right panel, under “Code Snippets”.
The OpenWeb Ninja JSearch API can be used for a variety of use cases, including:
The JSearch API is designed to provide robust and reliable access to search data. However, in the event of errors during API interaction, we use HTTP status codes to indicate the nature of the problem. Below, you’ll find detailed explanations of common error codes you may encounter, along with potential causes and suggested remediation steps.
400 Bad Request: This status is returned when your request is malformed or missing some required parameters. The response body might also include a “message” field, explaining the specific error. Ensure that all required fields are included and properly formatted before retrying your request.
403 Forbidden: This error indicates that you are not subscribed to the API or that your API key is invalid. If you believe this is in error, please contact RapidAPI support - support@rapidapi.com.
404 Not Found: This status is returned if the requested resource could not be found. This can occur with incorrect URL endpoints. Double-check the URL and try again.
429 Too Many Requests: This error means you have hit the rate limit for your subscription plan. Wait until your rate limit resets, or consider upgrading your subscription plan for a higher limit. If you believe this is in error, please contact us.
5XX Server Error (500, 502, and 503): This indicates a problem with our servers processing your request or an internal server timeout. This is a rare occurrence and should be temporary. If this error persists, please contact our technical support for assistance.
Errors returned by our API backend will have a message and potentially other details attached to them to help you understand and resolve issues. Here’s an example of an error response:
{
"status": "ERROR",
"request_id": "35dabdcd-b334-4600-afbc-d654b8af91cf",
"error": {
"message": "Missing query",
"code": 400
}
}
Some errors like 429 Too Many Requests, 403 Forbidden, or 404 Not Found, might be returned from RapidAPI gateway, in that case, the structure will be different. Here’s an example of an error response:
{
"message": "You are not subscribed to this API."
}
Implement error handling in your application to manage these responses gracefully. Here are some tips:
Retry Logic: For 5XX (500, 502, 503) and 429, implement a retry mechanism that waits for a few seconds before retrying the request.
Validation: Prior to sending requests, validate parameters to catch common errors like 400 Bad Request.
Logging: Log error responses for further analysis to understand patterns or recurring issues that might require changes in how you integrate with the API. The request_id field in the response can be used for further debugging.
If you encounter any issues that you are unable to resolve, or if you need further clarification on the errors you are seeing, please do not hesitate to contact us (see the Contact Us section below). Provide us with the error code, message, and the context in which the error occurred, and we will assist you promptly.
For custom plans / high tier plans, custom services or any other subject, feel free to drop us a private message or an email and we will get back to you shortly.
Email: support@openwebninja.com
Discord: https://discord.gg/wxJxGsZgha
LinkedIn: https://www.linkedin.com/company/openwebninja-api