Skip to main content

Current as of Oct 16, 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 with no key required, plus free API keys for higher rate limits.

No API key is required. Every endpoint works without one, so you can start right away. For higher rate limits, add a free API key in the Authorization header from your server:

cURL
curl https://himalayas.app/jobs/api \
  -H "Authorization: Bearer YOUR_API_KEY"

With a key, your account gets its own allowance of 60 requests per minute and 10,000 per day, shared across your keys, plus a daily usage count. Responses served from our cache are free and do not count. Requests without a key share one public allowance with every other caller. Use of the API is covered by our API terms.

On this page

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 other job boards or aggregators; see our API terms.

Remote Jobs API endpoints

Himalayas currently offers two public JSON endpoints for jobs:

EndpointUse it for
GET /jobs/apiThe full unfiltered jobs feed, paginated with cursor and limit.
GET /jobs/api/searchFiltered remote job search by keyword, country, worldwide availability, seniority, employment type, company slug, timezone, sort order, and page.

Browse all jobs

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

Request
https://himalayas.app/jobs/api?limit=20

The browse endpoint supports these query parameters:

ParameterDescription
cursorYour position in the feed. Leave it off the first request, then pass back the nextCursor value from each response. This is the preferred way to paginate.
limitThe number of jobs to retrieve (max 20).
offsetThe number of jobs to skip. Deprecated, and it will be removed in a future release. Use cursor instead.

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

Request
https://himalayas.app/jobs/api/search?q=react%20engineer

The search endpoint accepts these query parameters:

ParameterDescription
qFree-text query, e.g. 'react engineer'.
countryCountry filter using ISO alpha-2, common country names, slugs, or abbreviations.
worldwideLimit to worldwide-friendly jobs.
exclude_worldwideExclude worldwide matches when using a country filter.
seniorityOne or more of Entry-level, Mid-level, Senior, Manager, Director, Executive.
employment_typeOne or more of Full Time, Part Time, Contractor, Temporary, Intern, Volunteer, Other.
companyOne or more canonical company slugs, e.g. 'linear' or 'linear,vercel'.
timezoneTimezone filter such as '-5', 'UTC-5', or 'UTC+05:30'.
sortOne of 'relevant', 'recent', 'salaryAsc', 'salaryDesc', 'nameAToZ', 'nameZToA', or 'jobs'.
page1-based results page.

Search API examples:

Examples
https://himalayas.app/jobs/api/search?country=US&seniority=Senior&sort=recent
https://himalayas.app/jobs/api/search?company=linear&employment_type=Full%20Time
https://himalayas.app/jobs/api/search?q=python&sort=salaryDesc&page=2

Shared response fields

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

FieldDescription
titleJob title.
excerptFirst few sentences of the job description.
companyNameName of the company that is hiring.
companySlugCanonical company slug for filtering and stable lookups, e.g. 'linear'.
companyLogoLink to the company's logo.
employmentTypeOne of 'Full Time', 'Part Time', 'Contractor', 'Temporary', 'Intern', 'Volunteer', 'Other'.
locationRestrictionsOptional array. Countries where candidates must be located.
timezoneRestrictionOptional array. Time zones (UTC) where candidates must be located.
categoryArray. Job categories.
minSalaryNumber or null. Minimum salary of the job.
maxSalaryNumber or null. Maximum salary of the job.
salaryPeriodPay period for minSalary and maxSalary: hourly, weekly, fortnightly, monthly, or annual (default).
currencyCurrency of the job, e.g. USD, EUR, GBP, INR.
parentCategoriesArray. Job parent categories.
descriptionThe full HTML of the job description.
pubDateTimestamp of when the job was published.
expiryDateTimestamp of when the job will expire.
applicationLinkLink to apply for the position.
guidUnique identifier for the job.

Frequently asked questions

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. To retrieve records beyond the first 20, pass the nextCursor value from each response back as cursor on the next request, and repeat until a response has no nextCursor. The search endpoint uses page-based pagination via the page parameter.

Is there a maximum number of requests?

Yes. Requests with a free API key get higher limits: 60 per minute and 10,000 per UTC day for your account, shared across its keys. Requests without a key share one public allowance with every other caller. Responses served from our cache are free and do not count. Going over returns a 429; with a key, it includes a Retry-After header in seconds and X-RateLimit-* headers. Your usage is on the API keys page.

The data refreshes daily, so there is no benefit to polling more often. If you need a higher allowance, email hi@himalayas.app.

Do I need an API key?

No. Both endpoints work without a key or sign-up. We recommend a free API key for anything beyond a quick test: it gives you higher rate limits and a daily usage count on the API keys page. Send it as Authorization: Bearer YOUR_API_KEY. Responses served from our cache are free and do not count. An invalid, revoked or suspended key returns 401 when a request reaches our servers.

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 import it into Postman or any OpenAPI tool.

Where can I find code examples?

Runnable code examples for the Remote Jobs API live on GitHub at github.com/Himalayas-App/remote-jobs-api. The repository covers both endpoints in curl, Python, Node.js, TypeScript, PHP, Go, and Ruby, and includes the OpenAPI 3.1 specification, pagination recipes, and error handling.

The RSS feed has its own repository at github.com/Himalayas-App/remote-jobs-rss-feed, and the MCP server at github.com/Himalayas-App/himalayas-mcp.

Can I call the API from browser JavaScript?

No. The API does not send Access-Control-Allow-Origin headers, so a fetch() made directly from a browser is blocked by the same-origin policy. Call the API from your backend, a serverless function, or a build step, and serve the results to your frontend from your own origin. This also lets you cache the daily-refreshed data instead of hitting the rate limit from every visitor's browser.

If you only want live job listings on a web page with no backend, use the embeddable widget instead.

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:

OptionBest for
Remote Jobs MCP ServerReal-time job search, salary benchmarks, company research, and application tracking via any AI assistant that supports MCP, including Claude, ChatGPT, Cursor, Windsurf, Grok Bot, Hermes, and OpenClaw. No API key required.
RSS FeedThe 100 most recent job postings in XML format. Best for feed readers and monitoring.
Embeddable WidgetAdd live remote job listings to any website with one line of code.
Remote Jobs API on GitHubOpen-source code examples in seven languages, the OpenAPI 3.1 specification, and integration guides.

Get matched with your dream remote job

Sign up now and join over 250,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