API Documentation
Programmatic access to live job listings across top tech companies. Build agents, integrations, and dashboards with real-time hiring data.
Base URL
https://livejobs.fyi/api/v1
To get an API key, sign in to LiveJobs.fyi and go to Preferences → API Access. Your key is shown once — store it securely.
Authentication
All API requests require a Bearer token in the Authorization header. Generate keys from your account's Preferences tab.
# Include your key in every request
curl -H "Authorization: Bearer lj_your_api_key_here" \
https://livejobs.fyi/api/v1/jobs
Rate Limits
100 requests / day per key
Each API key is limited to 100 requests per day. The counter resets at midnight UTC. When the limit is exceeded, the API returns a 429 status with a descriptive message.
// 429 response body
{
"error": "Rate limit exceeded",
"limit": 100,
"message": "Daily request limit reached. Resets at midnight UTC."
}
Error Handling
The API returns standard HTTP status codes. Error responses always include a JSON body with an error field.
| Status | Meaning |
|---|---|
| 200 | Success |
| 401 | Missing or invalid API key |
| 404 | Resource not found |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
List Jobs
GET
/api/v1/jobs
Returns paginated job listings with optional filters.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| page | integer | Page number (default: 1) |
| per_page | integer | Results per page, max 100 (default: 50) |
| search | string | Full-text search across title and department |
| company | string | Filter by company name (case-insensitive) |
| company_id | integer | Filter by company ID |
| country | string | Filter by country code or name |
| remote | boolean | Filter remote jobs (true, 1, or yes) |
| role_category | string | Filter by role category (e.g., "Engineering") |
| seniority | string | Comma-separated seniority levels (e.g., "Senior,Lead") |
| since | ISO 8601 | Only return jobs first seen after this timestamp |
Example Request
curl -H "Authorization: Bearer lj_abc123..." \
"https://livejobs.fyi/api/v1/jobs?search=backend&country=US&remote=true&per_page=10"
Response
{
"jobs": [
{
"id": 4821,
"title": "Senior Backend Engineer",
"company": "Stripe",
"company_id": 12,
"url": "https://stripe.com/jobs/4821",
"location": "San Francisco, CA",
"country": "US",
"is_remote": true,
"department": "Engineering",
"seniority": "Senior",
"role_type": "IC",
"role_category": "Engineering",
"description": "We're looking for...",
"posted_date": "2025-03-15",
"first_seen_at": "2025-03-15 08:30:00+00:00"
}
],
"total": 142,
"page": 1,
"per_page": 10,
"pages": 15
}
Get Job Detail
GET
/api/v1/jobs/:id
Returns full details for a single job listing.
Example
curl -H "Authorization: Bearer lj_abc123..." \
https://livejobs.fyi/api/v1/jobs/4821
Response
{
"id": 4821,
"title": "Senior Backend Engineer",
"company": "Stripe",
"company_id": 12,
"url": "https://stripe.com/jobs/4821",
"location": "San Francisco, CA",
"country": "US",
"is_remote": true,
"department": "Engineering",
"seniority": "Senior",
"role_type": "IC",
"role_category": "Engineering",
"description": "We're looking for a senior backend engineer...",
"posted_date": "2025-03-15",
"first_seen_at": "2025-03-15 08:30:00+00:00",
"is_active": true
}
List Companies
GET
/api/v1/companies
Returns all tracked companies with their active job counts.
Example
curl -H "Authorization: Bearer lj_abc123..." \
https://livejobs.fyi/api/v1/companies
Response
{
"companies": [
{
"id": 12,
"name": "Stripe",
"careers_url": "https://stripe.com/jobs",
"description": "Financial infrastructure for the internet",
"active_jobs": 87,
"latest_job_at": "2025-03-20 14:00:00+00:00"
}
],
"total": 24
}
Company Hiring Trends
GET
/api/v1/companies/:id/trends
Returns daily hiring trend data for a specific company. Useful for building charts and tracking hiring velocity over time.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| days | integer | Number of days of history, max 365 (default: 90) |
Example
curl -H "Authorization: Bearer lj_abc123..." \
"https://livejobs.fyi/api/v1/companies/12/trends?days=30"
Response
{
"company_id": 12,
"company_name": "Stripe",
"days": 30,
"trends": [
{
"snapshot_date": "2025-03-20",
"active_jobs": 87,
"new_jobs": 5,
"archived_jobs": 2,
"breakdown": {
"Engineering": 42,
"Product": 18,
"Design": 12,
"Sales": 15
}
}
]
}
List API Keys
Key management endpoints use session authentication (your browser login), not Bearer tokens. These are used by the web UI.
GET
/api/v1/keys
Lists all API keys for the authenticated user. Keys are shown as prefixes only.
Create API Key
POST
/api/v1/keys
Creates a new API key. The full key is returned once — store it securely. Maximum 5 active keys per account.
Request Body
{ "name": "My Agent" }
Response
{
"key": "lj_a1b2c3d4e5f6...",
"message": "Store this key securely — it won't be shown again."
}
Revoke API Key
DELETE
/api/v1/keys/:id
Permanently revokes an API key. This cannot be undone.
Response
{ "message": "API key revoked" }