API
Free REST API. No auth required. Base URL: https://jobsbase.io
Search jobs
GET /api/jobs?q=frontend+engineer Parameters
| Name | Required | Description |
|---|---|---|
q | yes | Search query (matches relevant keywords, title, company, city, region, country) |
type | no | full-time, part-time, contract, freelance, internship (comma-separated) |
workplace_type | no | remote, hybrid, on-site (comma-separated) |
city | no | City name(s), comma-separated |
state | no | State/province name(s), comma-separated |
country | no | Country code(s) — US, GB, CA, etc. (comma-separated) |
region | no | north_america, latin_america, europe, asia_pacific, middle_east_africa (comma-separated) |
seniority_level | no | internship, entry, mid, senior, lead, executive (comma-separated) |
salary_at_least | no | Minimum annual salary |
salary_at_most | no | Maximum annual salary |
posted_within | no | 24h, 3d, 7d, 14d, 30d |
company | no | Exact company name |
experience_no_more_than | no | Max years of experience required |
education_level | no | high_school, associate, bachelor, master, doctorate |
visa_sponsorship | no | true — only jobs with visa sponsorship |
sort | no | relevance, posted_at (default), salary |
limit | no | Results per page, 1–100 (default 20) |
cursor | no | Cursor from previous response for next page |
Response
{
"jobs": [
{
"id": "abc123",
"title": "Founding Engineer",
"company": "Acme Inc",
"company_logo": "https://...",
"display_location": "San Francisco, CA",
"city": "San Francisco",
"country": "US",
"type": "full-time",
"workplace_type": "remote",
"seniority_level": "senior",
"salary_min": 150000,
"salary_max": 200000,
"salary_period": "annual",
"currency": "USD",
"experience_min": 3,
"experience_max": 7,
"education_level": "bachelor",
"visa_sponsorship": false,
"skills": "TypeScript, React, Node.js",
"apply_url": "https://...",
"posted_at": "2026-04-06T12:00:00Z"
}
],
"has_more": true,
"next_cursor": "eyJwIjoiMjAyNi0wNC0wNi..."
} To paginate, pass next_cursor as the cursor parameter in the next request. Cursors expire after 30 minutes.
Get job details
GET /api/jobs/:id Response
Returns the same fields as the search response, plus:
{
"description": "<p>Full job description HTML...</p>",
"region": "north_america",
"country_name": "United States",
"education_field": "Computer Science",
"job_function": "Engineering",
"industries": "Software, SaaS",
"benefits": "Health insurance, 401k, ..."
} Returns 404 if the job is not found.
List filters
GET /api/filters Response
{
"types": ["full-time", "part-time", "contract", ...],
"workplace_types": ["remote", "hybrid", "on-site"],
"cities": ["San Francisco", "New York", ...],
"countries": [{ "code": "US", "name": "United States" }, ...],
"seniority_levels": ["entry", "mid", "senior", ...],
"companies": ["Acme Inc", ...],
"education_levels": ["bachelor", "master", ...]
} Use these values to build valid filter parameters for the search endpoint.