API Documentation

Build with BoardPulse's job market data API. Get real-time access to millions of job listings, trend analytics, and absence detection.

Getting Started

To use the API, you'll need an API key. Free tier includes 100 requests/day. See pricing →

Try it free

Get a free API key instantly. No credit card required.

Get Free API Key

Get an API Key

POST /api/api-keys

Create a new API key. Requires authentication (JWT token in Authorization header).

⚡ Live Explorer

Authentication

Include your API key in the Authorization header using the Bearer scheme:

Authorization: Bearer bp_your_api_key_here

Endpoints

GET /v1/jobs

Search and filter job listings. Returns paginated results with job details, categories, and health status.

ParameterTypeDescription
limitintMax results (1-100, default: 50)
offsetintPagination offset (default: 0)
sectorstringFilter by sector (e.g., "engineering", "sales")
rolestringFilter by role type (e.g., "frontend", "backend")
senioritystringFilter by seniority (e.g., "junior", "senior", "lead")
sourcestringFilter by source (e.g., "greenhouse", "lever", "workable")
locationstringFilter by location (case-insensitive partial match)
health_statusstringFilter by health: "healthy", "dead", "broken", "redirect", "unchecked"
⚡ Live Explorer
GET /v1/absences

Get absence signals — companies or sectors that have jobs absent for 7+ days or expired for 30+ days. Helps detect hiring freezes or laid-off teams.

ParameterTypeDescription
sectorstringFilter by sector
companystringFilter by company name
⚡ Live Explorer
GET /v1/stats

Get aggregate statistics: total jobs, breakdown by source, last fetch times, and health status counts.

No parameters required.

⚡ Live Explorer

Response Format

All responses follow a consistent format:

{
  "success": true,
  "data": { ... },
  "meta": {
    "api_version": "v1",
    "total": 1234,
    "limit": 50,
    "offset": 0
  }
}

Rate Limits

Free Tier

100

requests / hour

Pro Tier

10,000

requests / day

Rate limit info is included in response headers: X-RateLimit-Limit, X-RateLimit-Remaining.

Code Examples

cURL

curl -H "Authorization: Bearer bp_your_api_key" \
  "https://boardpulse.polsia.app/v1/jobs?limit=10§or=engineering"

JavaScript (fetch)

const response = await fetch('https://boardpulse.polsia.app/v1/jobs?limit=10', {
  headers: {
    'Authorization': 'Bearer bp_your_api_key'
  }
});
const data = await response.json();
console.log(data);

Python (requests)

import requests

response = requests.get(
    'https://boardpulse.polsia.app/v1/jobs',
    params={'limit': 10, 'sector': 'engineering'},
    headers={'Authorization': 'Bearer bp_your_api_key'}
)
print(response.json())

Error Codes

401 Unauthorized

Invalid or missing API key. Check your Authorization header.

429 Rate Limited

You've exceeded your rate limit. Wait before retrying. Header includes retry_after seconds.

400 Bad Request

Invalid parameters. Check the message for details.

See the full API at boardpulse.polsia.app