Himalayas is one of the largest remote-job feeds out there, and it ships a free, public, no-auth JSON API that most people never find. If you are building a job board, a careers page, an AI agent that needs live job-market data, or a comp-intel dashboard, this is the cleanest no-key way to get structured remote-job data with real salary fields.
I run the Remote Jobs API and Himalayas is my #2 biggest source (~132k live listings at the time of writing). I use the raw feed under the hood, so I can show you exactly what the endpoints return and how to page through them without writing a scraper.
The two endpoints
Browse the full feed:
GET https://himalayas.app/jobs/api?limit=20&cursor=<nextCursor>
Search with filters:
GET https://himalayas.app/jobs/api/search?keyword=engineer&country=Norway&limit=20
Both return JSON. No API key, no Authorization header, no signup.
What a job looks like
Every job object is richly structured. A single browse record (real, from the live API) carries:
-
title,excerpt,description -
companyName,companySlug,companyLogo -
employmentType(Full Time / Part Time / Contract) -
minSalary,maxSalary,salaryPeriod,currency— actual numbers, not "competitive" -
seniority(array: Mid-level, Senior, ...) -
locationRestrictions(array of countries) -
timezoneRestrictions(array of UTC offsets) -
categories,parentCategories -
pubDate,expiryDate -
applicationLink,guid
The salary block is the part that makes this feed unusually useful. Most job boards bury salary or omit it entirely. Himalayas gives you minSalary / maxSalary / salaryPeriod / currency as discrete fields you can sort and filter on directly.
Pagination: use the cursor, skip the offset
The feed supports offset paging, but the API docs explicitly say cursor pagination is now the preferred way. Each response includes a nextCursor; pass it back as ?cursor= and you get the next page without ever seeing a job twice. The offset parameter is deprecated and will be removed, so if you are building this today, build on the cursor.
GET /jobs/api?limit=20 -> nextCursor: MjAyNi0xMC0...
GET /jobs/api?limit=20&cursor=MjAyNi0xMC0...
For large backfills, this is materially faster and idempotent in a way offset paging is not.
Search filters that actually matter
The search endpoint accepts keyword, country, seniority, employment_type, timezone, and company_slug. The country filter is the one that surprises people — you can pull "all remote engineering roles in Norway" as a single call and get a clean, countable result set (3,400+ at the time of writing) with no scraping.
Why I point people here
If you want one source that combines breadth (120k+ live listings), structured salary, and zero friction (no key), Himalayas is the default. The one caveat: it is a single provider, so if your product depends on it as the only source, you should wire in a fallback — which is exactly why I aggregate 16 sources in the Remote Jobs API and expose them under one schema, one call. But as a building block on its own, the raw Himalayas API is the easiest keyless remote-job data source I have found.
Built this on the Remote Jobs API: remote-jobs-api.tten.no (keyless, 16 sources, one schema, self-hostable, MIT).
Top comments (0)