Skip to main content
GET
/
api
/
public
/
v1
/
jobs
/
facets
curl -sS https://app.opentrain.ai/api/public/v1/jobs/facets
{
  "totalJobs": 184,
  "categories": [
    { "value": "Text Annotation", "count": 62 },
    { "value": "Audio Annotation", "count": 41 },
    { "value": "Image Annotation", "count": 35 }
  ],
  "languages": [
    { "value": "English", "count": 120 },
    { "value": "Spanish", "count": 28 }
  ],
  "countries": [
    { "value": "US", "count": 44 },
    { "value": "IN", "count": 31 }
  ],
  "payTypes": [
    { "value": "PAY_PER_HOUR", "count": 97 },
    { "value": "PAY_PER_LABEL", "count": 52 },
    { "value": "FIXED_PRICE", "count": 35 }
  ],
  "generatedAt": "2026-06-12T08:00:00.000Z"
}
Aggregate counts across the open marketplace — categories, languages, countries, and pay types, each with the number of matching jobs. Use these to populate filter dropdowns or to discover valid filter values for GET /jobs instead of guessing strings. Tokenless, CORS-enabled, and edge-cached the same way as the search endpoint. Requirements: none — no token, no scope, no feature flag. Rate limited to 120 requests/minute per IP.

Request

No parameters. OPTIONS returns 204 (CORS preflight).

Response

totalJobs
number
Total open jobs in the marketplace.
categories
object[]
{value, count} pairs, sorted by count descending.
languages
object[]
{value, count} pairs, sorted by count descending.
countries
object[]
{value, count} pairs, sorted by count descending.
payTypes
object[]
{value, count} pairs — values are PAY_PER_HOUR, FIXED_PRICE, PAY_PER_LABEL.
generatedAt
string
ISO timestamp when the counts were computed.

Errors

StatuscodeMeaning
429RATE_LIMITEDOver 120 requests/minute from one IP
curl -sS https://app.opentrain.ai/api/public/v1/jobs/facets
{
  "totalJobs": 184,
  "categories": [
    { "value": "Text Annotation", "count": 62 },
    { "value": "Audio Annotation", "count": 41 },
    { "value": "Image Annotation", "count": 35 }
  ],
  "languages": [
    { "value": "English", "count": 120 },
    { "value": "Spanish", "count": 28 }
  ],
  "countries": [
    { "value": "US", "count": 44 },
    { "value": "IN", "count": 31 }
  ],
  "payTypes": [
    { "value": "PAY_PER_HOUR", "count": 97 },
    { "value": "PAY_PER_LABEL", "count": 52 },
    { "value": "FIXED_PRICE", "count": 35 }
  ],
  "generatedAt": "2026-06-12T08:00:00.000Z"
}