Remote Landers API
A free, public, read-only JSON API of the live remote job listings on remotelanders.com. Built for job-board directories, aggregators, and partner sites that want to list or link to our openings - no API key, no auth, no rate-limit headaches.
Every listing returned here is sourced directly from the employer's own ATS (Greenhouse, Ashby, Lever, SmartRecruiters, Recruitee) - paid or aggregated third-party listings are never included.
Base URL
https://remotelanders.com/apiAuthentication
None required. Every endpoint below is a public GET request and responds with Access-Control-Allow-Origin: *, so it can be called directly from a browser on another domain.
GET /api/jobs
Returns a paginated list of live, ATS-direct job listings.
| Param | Type | Description |
|---|---|---|
| category | string | Filter to one function category, e.g. Engineering. |
| location | string | Filter to listings whose location contains this text. |
| type | string | Filter by employment type, e.g. Full-time. |
| company | string | Filter to one company (exact match). |
| limit | number | Results per page. Default 50, max 100. |
| page | number | 1-indexed page number. Default 1. |
Example request:
curl "https://remotelanders.com/api/jobs?category=Engineering&limit=2"Example response:
{
"total": 214,
"page": 1,
"limit": 2,
"count": 2,
"jobs": [
{
"slug": "senior-backend-engineer-acme-remote-9f3k2a",
"title": "Senior Backend Engineer (Remote)",
"company": "Acme",
"companyWebsite": "https://acme.com",
"category": "Engineering",
"subtags": ["Backend"],
"location": "Worldwide",
"type": "Full-time",
"level": "Senior",
"salary": "$140k–180k / yr",
"postedDate": "2026-08-04",
"url": "https://remotelanders.com/jobs/senior-backend-engineer-acme-remote-9f3k2a",
"applyUrl": "https://jobs.ashbyhq.com/acme/apply/9f3k2a"
}
]
}GET /api/jobs/{slug}
Returns a single job by its slug (the same value as the slug field above, and the last path segment of its url).
Example request:
curl "https://remotelanders.com/api/jobs/senior-backend-engineer-acme-remote-9f3k2a"Returns the same job object shown above, or a 404 with the body below if the slug doesn't exist, has expired, or isn't an ATS-direct listing:
{ "error": "Job not found" }Job object fields
| Param | Type | Description |
|---|---|---|
| slug | string | Unique identifier for the listing, also used in the job's URL. |
| title | string | Job title as posted. |
| company | string | Hiring company's name. |
| companyWebsite | string | null | Company's official website, when known. |
| category | string | One of 15 fixed function categories, e.g. "Engineering", "Design", "Marketing". |
| subtags | string[] | Finer-grained sub-functions within the category, e.g. ["Frontend", "Backend"]. |
| location | string | Eligible work location(s), e.g. "Worldwide" or "United States". |
| type | string | Employment type: "Full-time", "Part-time", "Contract", "Intern", etc. |
| level | string | Seniority level when specified by the employer; empty string if unspecified. |
| salary | string | null | Human-readable salary range as posted, e.g. "$98k–139k / yr". |
| postedDate | string | null | ISO date (YYYY-MM-DD) this listing was first seen. |
| url | string | Canonical Remote Landers page for this listing. |
| applyUrl | string | Direct link to the employer's own application page. |
Freshness & caching
The underlying data refreshes roughly every 10 minutes. Please cache responses on your end rather than polling more often than that - repeated identical requests within that window return the same data.
Questions
Something not working, or need a field this API doesn't expose yet? Reach out via the contact page.