RemoteOK remote jobs feed (public API, attribution)
Pricing
from $5.00 / 1,000 records
RemoteOK remote jobs feed (public API, attribution)
Newest remote job postings from Remote OK's public JSON API, one row per job: company, position, tags, location, salary range, date, URL and description text, plus the source attribution Remote OK's terms require. Filter by tag (one request each) and keyword. Default: the newest 100 postings.
Pricing
from $5.00 / 1,000 records
Rating
0.0
(0)
Developer
RetrainMap Team
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
One row per remote job posting from Remote OK's public JSON API (https://remoteok.com/api): id, company, position, tags, location, published salary range, date, Remote OK URL, apply URL, description text (first 3,000 characters) — and, on every row, the source attribution the API's terms ask for. Filter by Remote OK tags (one request per tag, merged) and a client-side keyword.
The default input (the unfiltered newest feed, up to 200 rows) succeeds within 5 minutes and returns rows — Apify auto-tests it daily.
Data source, terms and attribution
| Publisher | Remote OK (https://remoteok.com) |
| API | https://remoteok.com/api — public, no key; ?tags=a,b filters server-side |
Terms (from the API's own first element, read on every run and stored in RUN_SUMMARY.source_terms) | "Please link back (with follow, and without nofollow!) to the URL on Remote OK and mention Remote OK as a source ... please don't use the Remote OK logo without written permission as it's a registered trademark, please DO use our name Remote OK though." |
| How this Actor honours them | Every row carries url (the Remote OK posting page) and source_attribution = Source: Remote OK - <url>; no logo field is copied (company_logo/logo are dropped). If you republish the rows, keep the link back to url as a follow link and name Remote OK as the source — that is a condition of the API, not of this Actor |
| Refresh cadence | Live on every run; the API's last_updated epoch is stored in RUN_SUMMARY.source_last_updated |
| Known caveats | No paging: one request returns at most the newest ~100 postings (page/offset/limit are ignored — measured 2026-09-04); use tags to widen the pull (each tag = one request, ~100 newest postings carrying it). salary_min/salary_max are the API's integers (USD, 0 = not published → null); location is often empty for worldwide roles; original/verified are present on a few postings only |
Honesty note: the rows are the API's own fields — nothing is parsed out of the description, no
salary is estimated, no field is inferred. A body that is not [legal notice, jobs...] or a job
without id/position stops the run with an error rather than guess.
Identification: requests carry a product-token User-Agent and the operator's contact address in
the standard From: header; at most one request per second by default.
Input
| Field | Type | Meaning |
|---|---|---|
tags | array | Optional Remote OK tags (python, devops, design, customer support, senior, ...); one request per tag, at most 20 |
keyword | string | Optional substring on position/company/tags/description (case-insensitive) |
min_salary | integer | Optional; keep only postings with a published salary at least this (USD) |
max_records | integer | Default 200, newest first |
request_interval_ms | integer | Default 1000 (floor 500) |
contact_email | string | Sent in the From: header |
Example — senior Python, DevOps or design roles:
{ "tags": ["python", "devops", "design"], "keyword": "senior", "max_records": 150 }
Output (dataset row)
id, slug, company, position, tags, location, salary_min, salary_max,
salary_currency, date, url, apply_url, description, original, verified,
matched_tag, source_attribution, source_url, fetched_at.
A run summary (the API's terms text, last_updated, per-tag counts, unique postings, requests,
whether the pay-per-event budget stopped the run) is stored as RUN_SUMMARY in the run's
key-value store.
Pricing (pay per event)
| Event | Price |
|---|---|
run-start — once per run | $0.10 |
record — per row written | $0.005 |
The default pull (~100 rows) costs about $0.60; 1,000 rows across many tags cost $5.10. Rows stop when your run's maximum charge is reached; the run summary says so.
Operator
Steelyard Ventures LLC (RetrainMap) — info@steelyardclinical.com. Not affiliated with Remote OK. The Actor writes only to its own dataset and key-value store; it stores no credentials and sends nothing else.