JobSeek API
Query job listings programmatically with our public REST API. Build integrations, dashboards, or automated alerts using live job data.
Quick Start
- Sign up or log in to your JobSeek account.
- Generate an API key from Profile → API Keys.
- Include the key in every request header:
X-API-Key: your_key_here - Start querying job data below.
Base URL
Authentication
All endpoints require a valid API key passed in the X-API-Key header.
curl -H "X-API-Key: jb_live_xxx" \\
http://jobseek.dev/api/v1/jobs?limit=5
Rate Limits
Usage is tracked per API key. Responses include rate-limit headers so you can monitor consumption.
| Tier | Daily Quota | Per-Minute Burst |
|---|---|---|
| Free | 100 requests / day | 10 requests / min |
| Pro (Paid) | 1,000 requests / day | 10 requests / min |
Daily quotas reset at midnight UTC. Per-minute counters use a 60-second rolling window.
Response Format
All responses are JSON with a consistent envelope.
Success
{
"success": true,
"data": [ ... ],
"meta": {
"page": 1,
"limit": 20,
"total": 150,
"totalPages": 8
}
}
Error
{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Daily quota exceeded. Upgrade to Pro for 1,000 requests/day."
}
}
Endpoints
/api/v1/jobs
List jobs ordered by recency or popularity.
Query Parameters
| Param | Type | Description |
|---|---|---|
| sort | string | date (default) or views |
| page | integer | Page number, 1-indexed. Default: 1 |
| limit | integer | Items per page. Range: 1–100. Default: 20 |
Example
curl -H "X-API-Key: jb_live_xxx" \ "http://jobseek.dev/api/v1/jobs?sort=views&page=1&limit=5"
/api/v1/jobs/search
Search jobs by keywords using full-text search against titles and descriptions.
Query Parameters
| Param | Type | Description |
|---|---|---|
| q | string | Required. Search keywords. |
| sort | string | relevance (default), date, or views |
| page | integer | Page number, 1-indexed. Default: 1 |
| limit | integer | Items per page. Range: 1–100. Default: 20 |
Example
curl -H "X-API-Key: jb_live_xxx" \ "http://jobseek.dev/api/v1/jobs/search?q=backend+engineer&sort=date&limit=10"
/api/v1/jobs/:id
Retrieve a single job by its numeric ID.
Path Parameters
| Param | Type | Description |
|---|---|---|
| id | integer | Numeric job ID. |
Example
curl -H "X-API-Key: jb_live_xxx" \ "http://jobseek.dev/api/v1/jobs/42"
Job Object
The shape of a job returned by the API.
{
"id": 42,
"source_id": "weworkremotely",
"company_id": "acme-corp",
"job_title": "Senior Backend Engineer",
"job_description": "markdown string...",
"job_type": "Full-time",
"job_location": "Remote",
"time_posted": "2026-04-20T00:00:00.000Z",
"time_apply_end": "2026-05-20T00:00:00.000Z",
"key_words": "backend, node, postgres",
"original_link": "https://...",
"apply_link": "https://...",
"view_count": 51,
"created_at": "2026-04-20T00:00:00.000Z",
"updated_at": "2026-04-20T00:00:00.000Z"
}
Error Codes
| Code | HTTP | Meaning |
|---|---|---|
| UNAUTHORIZED | 401 | Missing or invalid API key. |
| FORBIDDEN | 403 | API key has been revoked. |
| RATE_LIMIT_EXCEEDED | 429 | Daily or per-minute quota exceeded. |
| NOT_FOUND | 404 | Job ID not found. |
| VALIDATION_ERROR | 400 | Bad query parameters. |
Rate-Limit Headers
Every successful response includes headers to help you track usage.
X-RateLimit-Limit-Daily: 100 X-RateLimit-Remaining-Daily: 87 X-RateLimit-Reset-Daily: 1777420800 X-RateLimit-Limit-Minute: 10 X-RateLimit-Remaining-Minute: 7 X-RateLimit-Reset-Minute: 1777345874
Need Help?
If you have questions about the API, rate limits, or need higher quotas, feel free to reach out at [email protected].