HimalayasHimalayas logo

Current as of Mar 20, 2026

Remote Jobs API

Browse all remote jobs with pagination or search by keyword, country, company slug, seniority, employment type, and timezone. Free public JSON API — no authentication required.

Note: As of 24th March 2025, we have reduced the maximum limit to 20 jobs per request to improve performance and reliability.

Fill your remote job board with listings from Himalayas

Our public JSON APIs can be used to backfill other remote job boards, power job search experiences, populate internal dashboards, or feed AI agents and automation workflows.

Anyone can use the interface, but please link back to the URL found on Himalayas AND mention Himalayas as the original source. Please do not submit Himalayas jobs to third-party websites, including but not limited to Jooble, Neuvoo, Google Jobs, or LinkedIn Jobs.

Remote Jobs API endpoints

Himalayas currently offers two public JSON endpoints for jobs:

Browse all jobs

Use the browse endpoint when you want the full remote jobs feed and plan to paginate through all available jobs.

Endpoint: https://himalayas.app/jobs/api

The browse endpoint supports two query parameters:

  • offset: the number of jobs to skip
  • limit: the number of jobs to retrieve (max 20)

Example: https://himalayas.app/jobs/api?limit=20&offset=10

Search jobs

Use the search endpoint when you want filtered job results without crawling the full feed locally.

Endpoint: https://himalayas.app/jobs/api/search

The search endpoint accepts these query parameters:

  • q:free-text query, e.g. 'react engineer'
  • country: country filter using ISO alpha-2, common country names, slugs, or abbreviations
  • worldwide: limit to worldwide-friendly jobs
  • exclude_worldwide: exclude worldwide matches when using a country filter
  • seniority: one or more of Entry-level, Mid-level, Senior, Manager, Director, Executive
  • employment_type: one or more of Full Time, Part Time, Contractor, Temporary, Intern, Volunteer, Other
  • company:one or more canonical company slugs, e.g. 'linear' or 'linear,vercel'
  • timezone:timezone filter such as '-5', 'UTC-5', or 'UTC+05:30'
  • sort:one of 'relevant', 'recent', 'salaryAsc', 'salaryDesc', 'nameAToZ', 'nameZToA', or 'jobs'
  • page: 1-based results page

Search API examples:

Shared response fields

Both the browse and search endpoints return the same JSON job object shape:

  • title: Job title
  • excerpt: First few sentences of the job description
  • companyName: Name of the company that is hiring
  • companySlug:Canonical company slug for filtering and stable lookups, e.g. 'linear'
  • companyLogo:Link to the company's logo
  • employmentType:One of the following: 'Full Time', 'Part Time', 'Contractor', 'Temporary', 'Intern', 'Volunteer', 'Other'
  • locationRestrictions (optional, array): Country where candidates must be located, there can be more than one
  • timezoneRestriction (optional, array): Time zone (UTC) where candidates must be located, there can be more than one
  • category (array): Job category, there can be more than one
  • minSalary (number or null): Minimum salary of the job
  • maxSalary (number or null): Maximum salary of the job
  • currency (string): Currency of the job (e.g. USD, EUR, GBP, INR, etc.)
  • parentCategories (array): Job parent categories, there can be more than one
  • description: The full HTML of the job description
  • pubDate: Timestamp of when the job was published
  • expiryDate: Timestamp of when the job will expire
  • applicationLink: Link to apply for the position
  • guid: Unique identifier for the job

How should I filter by company?

Use the companySlug returned in the response and pass it back to the search endpoint via the company query parameter. This is the canonical filter value, and it is more reliable than guessing from companyName.

What are the maximum number of records returned per request?

To keep the browse response small, we return a maximum of 20 records per request from /jobs/api. Use the offset parameter to retrieve records beyond the first 20. The search endpoint uses page-based pagination via the page parameter.

Is there a maximum number of requests?

Due to server capacity constraints, we ratelimit the number of requests that can be made to our API within a certain time period. This ensures that our service remains available and responsive for all users. If you exceed the allowed number of requests, you may receive a 429 error message.

If you have a special reason to require a higher number of requests, or if you need help optimizing your API calls to reduce the number of requests required, please contact us. We'll do our best to accommodate your needs and help you get the most out of our API.

Is there an OpenAPI specification?

Yes. Both endpoints are described in our OpenAPI 3.1 specification at https://himalayas.app/docs/openapi.json. You can also explore and test the API directly in Postman:

What is the difference between your APIs, RSS feed, and MCP server?

The browse API returns the full jobs feed with pagination. The search API returns filtered job results. The RSS feed shows the 100 most recent jobs in XML, while the MCP server provides real-time search and richer AI-native tooling for jobs, companies, salaries, and more.

Other ways to access remote job data

Beyond the JSON API, Himalayas offers several other integration methods:

  • Remote Jobs MCP Server: Real-time job search, salary benchmarks, company research, and application tracking via any AI assistant that supports MCP — including Claude, ChatGPT, Cursor, and Windsurf. No API key required.
  • RSS Feed: The 100 most recent job postings in XML format. Best for feed readers and monitoring.
  • Embeddable Widget: Add live remote job listings to any website with one line of code.

Find your dream job

Sign up now and join over 100,000 remote workers who receive personalized job alerts, curated job matches, and more for free!

Sign up
Himalayas profile for an example user named Frankie Sullivan