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.

StatusMeaning
200Success
401Missing or invalid API key
404Resource not found
429Rate limit exceeded
500Internal server error

List Jobs

GET /api/v1/jobs
Returns paginated job listings with optional filters.

Query Parameters

ParameterTypeDescription
pageintegerPage number (default: 1)
per_pageintegerResults per page, max 100 (default: 50)
searchstringFull-text search across title and department
companystringFilter by company name (case-insensitive)
company_idintegerFilter by company ID
countrystringFilter by country code or name
remotebooleanFilter remote jobs (true, 1, or yes)
role_categorystringFilter by role category (e.g., "Engineering")
senioritystringComma-separated seniority levels (e.g., "Senior,Lead")
sinceISO 8601Only 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
}
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

ParameterTypeDescription
daysintegerNumber 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" }