Developer

API Documentation

REST API for accessing job listings, companies, and tags. All endpoints require bearer token authentication and return standardized JSON responses.

Base URL/api/v1

Authentication

All endpoints require a bearer token in the Authorization header. Contact us to get an API token.

Header
Authorization: Bearer <your_token>
Missing Token
401 Unauthorized
Invalid Token
403 Forbidden
Rate Exceeded
429 Too Many Requests

Rate Limiting

Each token is limited to 100 requests per minute using a sliding window. Rate limit status is included in response headers.

X-RateLimit-Limit

Maximum requests per window (100)

X-RateLimit-Remaining

Remaining requests in current window

Response Format

Success (list)
{
  "data": [ ... ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 150,
    "totalPages": 8
  }
}
Error
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Job not found"
  }
}

Endpoints

GET/api/v1/jobs

List active jobs with optional filters. Results are ordered by most recently posted.

ParamTypeDescription
role_categorystringFilter by category. Client-facing: fde, solutions_engineer, csm, tam, sales_engineer, implementation, professional_services. Broad: engineering, product, design, marketing, data, operations, sales, finance, hr, legal, other
client_facingbooleanIf true, return all client-facing role categories
companystringFilter by company slug
locationstringPartial match on job location
remote_onlybooleanIf true, only return remote jobs
searchstringSearch job title or company name
pageintegerPage number (default: 1)
limitintegerResults per page (default: 20, max: 50)
Example
curl -H "Authorization: Bearer $TOKEN" \
  "https://aijobs.example.com/api/v1/jobs?role_category=fde&limit=5"
GET/api/v1/jobs/:id

Get a single job by UUID, including full description and company details.

Example
curl -H "Authorization: Bearer $TOKEN" \
  "https://aijobs.example.com/api/v1/jobs/<uuid>"
GET/api/v1/companies

List active companies with tags and active job counts. Sorted by active jobs, then by name.

ParamTypeDescription
categorystringFilter by company category (enterprise_ai, public_saas, ai_native, other)
searchstringPartial match on company name
pageintegerPage number (default: 1)
limitintegerResults per page (default: 50, max: 100)
Example
curl -H "Authorization: Bearer $TOKEN" \
  "https://aijobs.example.com/api/v1/companies?search=anthropic"
GET/api/v1/companies/:id

Get a single company by UUID or slug. Includes tags, active job count, and full metadata.

Example
curl -H "Authorization: Bearer $TOKEN" \
  "https://aijobs.example.com/api/v1/companies/anthropic"
GET/api/v1/tags

All tags grouped by dimension: industry, stage, business_model, ai_role, funding_tier.

Example
curl -H "Authorization: Bearer $TOKEN" \
  "https://aijobs.example.com/api/v1/tags"
Response
{
  "data": {
    "industry": [
      { "value": "AI Infrastructure", "slug": "ai-infrastructure" },
      { "value": "Developer Tools", "slug": "developer-tools" }
    ],
    "stage": [ ... ],
    "funding_tier": [ ... ]
  }
}
GET/api/v1/stats

Site-wide statistics: total active jobs, total active companies, and new jobs added today.

Example
curl -H "Authorization: Bearer $TOKEN" \
  "https://aijobs.example.com/api/v1/stats"
Response
{
  "data": {
    "totalJobs": 1234,
    "totalCompanies": 772,
    "newToday": 45
  }
}