Ir al contenido principal

Catalitium Developers

Jobs & Salary API

Simple JSON endpoints for catalog jobs and salary lookup from the Catalitium index — a searchable snapshot, not a live ATS mirror or continuous ingest. Built for engineers, analysts, and recruiters who want to use Catalitium data in their own tools without ceremony. Need custom enterprise access? .

Trust: Privacy · DPA · Security · Legal overview

Explore sample data in the product: Salary tool · Jobs catalog

Quickstart — first successful GET in ~15 minutes

One path from zero to a verified JSON response: account → confirmed key → curl → understand the payload → handle errors → upgrade when you need scale.

  1. Sign in — use Sign in / Sign up so we can attach usage to your workspace.
  2. Open Studio → Developer APIStudio (#api-access) has Register free API key.
  3. Confirm the email — keys stay inactive until you click the confirmation link once.
  4. Call the API — send X-API-Key: cat_… on every /v1/* request (query-string keys are rejected).
  5. Inspect JSON — successful search responses expose items (job rows) alongside meta.total, meta.page, and pagination hints; single-job GET returns one flattened job object with title, company, and apply_url (empty when no applyable http(s)/mailto link).
  6. Quota headers — every /v1/* response includes X-RateLimit-*. GET /api/keys/usage also requires X-API-Key and counts against quota (not free monitoring). Prefer response headers for day-to-day checks. Optional IANA zone via X-Client-Timezone or ?tz= adds reset_local.
  7. Need higher limits? — upgrade to Builder $29/mo or Pro $79/mo via Pricing → API Access.

Minimal request (swap domain + key)

curl -sS "https://catalitium.com/v1/jobs?per_page=3" \
  -H "X-API-Key: cat_your_confirmed_key"

Common errors

  • 401 invalid_key — missing header, typo, or revoked key.
  • 401 key_inactive — key registered but not confirmed; open the confirmation email link, or re-register in Studio if the link expired.
  • 429 quota_exceeded — wait for UTC reset or upgrade.
  • 404 — unknown job id or salary snapshot unavailable for that title/country pair.

What you get

  • Job search API, GET /v1/jobs with filters.
  • Job detail API, GET /v1/jobs/<id> with apply URL.
  • Conditional GET — list + detail responses include a weak ETag; send it back as If-None-Match for 304 Not Modified when the payload is unchanged.
  • Salary lookup API, GET /v1/salary — location-median snapshot (country preferred; else title as a location string). Response includes matched_on — not a role×city band matrix.
  • Free tier (after email confirmation): 50 requests/day and 500/month, with rate-limit headers on every response.
  • Paid API (Builder $29/mo · Pro $79/mo): see Pricing → API Access — paid tiers set both daily and monthly limits to the same call budget (not “monthly only”).
  • Not sold: browser UI routes under /api/jobs* are site-only (IP-limited). The public contract is /v1/* + key management under /api/keys/*.

Getting an API key

  1. While signed in, POST to /api/keys/register (or use Register free API key in Studio).
  2. Click the confirmation link in the email (key activates once).
  3. Send the key in X-API-Key for all /v1/* calls.

We never show your key again after the email. If you lose it, revoke it with DELETE /api/keys/me and register a new one.

Quick examples

1. Job search API

Fetch senior remote roles in the EU:

curl -s "https://catalitium.com/v1/jobs?title=senior+engineer&country=EU" \
  -H "X-API-Key: cat_XXXXXXXXXXXXXXXXXXXXXXXX"

2. Job detail API

Get a single job with an apply URL:

curl -s "https://catalitium.com/v1/jobs/123" \
  -H "X-API-Key: cat_XXXXXXXXXXXXXXXXXXXXXXXX"

3. Salary lookup API

Location-median snapshot (not role×city). Prefer country; when only title is set it is treated as a location string. Response includes matched_on (country | title_as_location):

curl -s "https://catalitium.com/v1/salary?country=CH" \
  -H "X-API-Key: cat_XXXXXXXXXXXXXXXXXXXXXXXX"

Python snippet

Minimal example using requests:

import os
import requests

BASE = "https://catalitium.com"
API_KEY = os.environ.get("CATALITIUM_API_KEY", "cat_XXXXXXXXXXXXXXXXXXXXXXXX")

resp = requests.get(
    f"{BASE}/v1/jobs",
    params={"title": "ai engineer", "country": "US"},
    headers={"X-API-Key": API_KEY},
    timeout=10,
)
resp.raise_for_status()
data = resp.json()
print("Found", data["meta"]["total"], "jobs")

Limits & headers

Quotas combine daily and calendar-month limits (see API reference). Each response includes:

  • X-RateLimit-Limit / Remaining for the daily window.
  • X-RateLimit-Reset, next daily reset (UTC).
  • X-RateLimit-Window is daily; monthly totals are in GET /api/keys/usage (that call increments quota).

FAQ

Is the API a live ATS mirror?
No. Endpoints read the Catalitium catalog index — a searchable snapshot, not continuous ingest.
Need custom enterprise access?
— we will not invent a fresher feed promise on this page.
Where are quotas documented?
See daily/monthly limits above and the API reference.
Catalitium logo

Resumen semanal

Recibe un email semanal con highlights del catálogo y señales salariales según tus filtros — no es un match perfecto garantizado. Sin spam; cancela cuando quieras.

Respetuoso con la privacidad. Cancela con un clic.

Highlights semanales del catálogo. Cancela cuando quieras.

Catalitium logo Contacto

¿Preguntas, alianzas o feedback? Escríbenos — revisamos los mensajes en días laborables.

Revisamos mensajes en días laborables. El tiempo varía con la cola — menciona urgencia de contratación si aplica (no es un SLA de mismo día).