[NewSearch millions of jobs from your AI agent with MCP→](/blog/jobspipe-mcp-server)

[All posts](/blog)

![](/listly/card-field.png)

GuideRemoteok

Guide·Aug 22, 2026·6 min read

# RemoteOK API: the free remote-jobs feed, and its 100-job window

RemoteOK publishes its latest postings as a public JSON feed: one GET, no key, full descriptions included, and a licence that costs exactly one dofollow backlink. It is also one of the most constrained jobs APIs around - the array holds only the newest 100 jobs, about a week of history, with no search, no pagination, and a tags filter that is silently ignored. We tested the feed this week: what each of the fifteen fields actually contains, why only 3 of 100 postings carried a salary, and what to reach for when a harvest-only feed of one board stops being enough.

![Dvir Atias](/authors/dvir-atias.jpg)

Dvir Atias

Founder, JobsPipe

Most job sites make you fight for their data. RemoteOK - Pieter Levels’ remote job board, running since 2015 - does the opposite: it publishes its latest postings as a public JSON feed at `remoteok.com/api`, no key, no signup, no OAuth dance. One GET and you have full job descriptions in hand, which is more than most official jobs APIs give you on the first call. The catch is everything around that call: the feed is a fixed window of the newest 100 postings, there is no search, no pagination and no working filter, and the terms of service ride along inside the response itself. Here is what the API actually returns, tested this week, and where its one-board, hundred-job shape stops working.

## One GET, no key

The whole API is a single endpoint returning a single JSON array. The only quirk you must know before writing code: the first element is not a job. It is a metadata object carrying a `last_updated` timestamp and the legal terms as a string. Jobs start at index 1:

```
curl -s https://remoteok.com/api | jq '.[0]'

{
  "last_updated": 1787361650,
  "legal": "API Terms of Service: Please link back (with follow,
    and without nofollow!) to the URL on Remote OK and mention
    Remote OK as a source, so we get traffic back from your site..."
}

curl -s https://remoteok.com/api | jq '.[1:] | length'

100
```

Skip element zero (`.[1:]` in jq terms) or your parser will choke on a “job” with no title. The API has been shipped in exactly this shape since Levels announced it in a tweet back in 2018, and its stability is one of its genuine virtues.

## The terms live inside the response

That `legal` string is the licence, and it is refreshingly plain: you may use the data if you link back to the posting’s URL on Remote OK, as a normal followed link - the terms explicitly say “without nofollow!” - and name Remote OK as the source. Skip the attribution and they reserve the right to suspend API access. The logo is a registered trademark you may not use without written permission; the name is fine. In other words, the price of the feed is a dofollow backlink from every page where you show its jobs. For a job widget that is a fair trade. For an internal analytics pipeline that never renders a page, read the terms carefully - the entire licence is built around the assumption that traffic flows back.

## What a record carries

Each of the 100 job objects has the same fifteen fields:

-   Identity: `id`, `slug`, `epoch` and `date` (ISO 8601 with timezone).
-   The role: `position`, `company`, `location`, `tags`, and a `description` containing the full posting as HTML - no second detail call needed, which puts RemoteOK ahead of APIs that return snippets and make you fetch each job again.
-   Money: `salary_min` and `salary_max` exist on every record but are usually zero. On the day we tested, 3 postings out of 100 carried a non-zero salary.
-   Links and art: `url`, `apply_url`, `company_logo` and `logo`. Note that `apply_url` frequently points at the remoteok.com job page rather than the employer’s application form.

Treat `tags` and `location` as decoration, not data. In this week’s feed, a construction estimator role in Brisbane carried the tags `education`, `customer support`, `dev`, `marketing`, `exec`, `medical`, `recruiter` and `digital nomad`, with a location of “West End,” - trailing comma included. Anything you build on top of these fields needs its own classification pass.

## The 100-job window

The array always contains the newest 100 postings and nothing else. When we pulled the feed, the oldest record was seven days old - so at the board’s current posting rate, the entire visible history is about a week. There is no pagination parameter, no search endpoint, and the one filter you will find mentioned in old wrapper libraries, `?tags=dev`, is silently ignored today: we compared the responses and they are byte-for-byte the same list. The RSS twin at `/remote-jobs.rss` is gone too - it returns HTTP 410.

The engineering consequence: RemoteOK cannot be queried, only harvested. Any real use means polling on a schedule, storing every record yourself, and diffing on `id` - miss a busy week and the jobs that scrolled out of the window are simply gone. There is no archive, no way to re-fetch an old posting, and no signal that a job closed; your own copy is the only history that exists.

## When the RemoteOK API is the right choice

Plenty of the time. A remote-jobs widget on a community site, a newsletter digest, a Discord bot, a weekend project to learn API plumbing - for anything that just needs a stream of fresh remote postings with full text, this is the lowest-friction feed on the internet, and it costs exactly one backlink. It pairs naturally with the other free feeds we compare on the [free jobs API](/free-jobs-api) page - [Adzuna](/blog/adzuna-api) for aggregated coverage with real search parameters, per-company ATS endpoints for depth on specific employers. And if the widget is growing into a product, our [remote job board build guide](/blog/how-to-build-a-remote-job-board) walks through the whole stack.

## When 100 jobs stops being enough

The moment your product needs to answer a question - remote React roles in the US posted this week, remote jobs at companies using a specific stack, salary bands for remote data engineers - a harvest-only feed of one board’s newest hundred cannot carry it. That is a coverage problem and a query problem at once, and it is where a cross-source API earns its keep. JobsPipe reads LinkedIn, Indeed and ATS-hosted career sites - Workday, Greenhouse, Lever, Ashby, Workable, SmartRecruiters - into one schema, tracking over 3.3 million live postings as of August 2026, with remote work as a first-class filter rather than a board you happen to be on:

```
curl https://api.jobspipe.dev/v1/jobs/search \
  -H "Authorization: Bearer jp_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "remote": true,
    "skills_or": ["react"],
    "job_country_code_or": ["US"],
    "posted_at_max_age_days": 7,
    "limit": 25
  }'
```

Every record comes back with parsed compensation where the posting discloses it - roughly 28% of live postings carry a structured salary band, against the 3 in 100 above - plus skills, ISCO-08 occupation codes and industry classification you can filter on with `skills_or`, `occupation_code_or` and `isic_division_or`. A `work_arrangement_or` filter separates remote from hybrid and onsite where the arrangement is known. The free tier includes 1,000 jobs per month, and the wider market of paid options is compared in our [jobs API roundup](/blog/best-jobs-api-2026).

A fair split: RemoteOK’s feed for showing fresh remote jobs with zero setup - it is free, stable and honest about what it is. A queryable multi-source API the moment you need to search, filter or remember.

Remote jobs from every source, one filter - full postings, free tier included.

[

Next →

Mantiks review: what it does, what it costs, and where the data stops

](/blog/mantiks-review)

---
Canonical URL: https://jobspipe.dev/blog/remoteok-api
Title: RemoteOK API: the free remote-jobs feed, and its 100-job window
Description: RemoteOK publishes its latest postings as a public JSON feed: one GET, no key, full descriptions included, and a licence that costs exactly one dofollow backlink. It is also one of the most constrained jobs APIs around - the array holds only the newest 100 jobs, about a week of history, with no search, no pagination, and a tags filter that is silently ignored. We tested the feed this week: what each of the fifteen fields actually contains, why only 3 of 100 postings carried a salary, and what to reach for when a harvest-only feed of one board stops being enough.

---
AI agents: the full machine-readable index of this site is https://jobspipe.dev/llms.txt?src=md-twin - API quickstart, no-key sandbox (POST https://api.jobspipe.dev/v1/sandbox/jobs/search), MCP server, pricing. Free key: https://jobspipe.dev/signup