Catalitium Developers
Jobs & Salary API
Simple JSON endpoints for high-signal tech jobs and salary lookup. Built for engineers, analysts, and recruiters who want to use Catalitium data in their own tools without ceremony.
Trust: Privacy · DPA · Security · Legal overview
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.
- Sign in — use Sign in / Sign up so we can attach usage to your workspace.
- Open Studio → Developer API — Studio (#api-access) has Register free API key.
- Confirm the email — keys stay inactive until you click the confirmation link once.
- Call the API — send
X-API-Key: cat_…on every/v1/*request (query-string keys are rejected). - Inspect JSON — successful search responses expose
items(job rows) alongsidemeta.total,meta.page, and pagination hints; single-job GET returns one flattened job object withtitle,company, andlink. - Quota headers — every response includes
X-RateLimit-*; pollGET /api/keys/usagefrom the browser while logged in for the reset calendar. For the same wall-clock moment in the user’s zone, pass an IANA name viaX-Client-Timezoneor?tz=— the JSON then includesreset_local(ISO time + abbrev). - Need higher limits? — upgrade 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 unconfirmed key.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/jobswith filters. - Job detail API,
GET /v1/jobs/<id>with apply URL. - Conditional GET — list + detail responses include a weak
ETag; send it back asIf-None-Matchfor304 Not Modifiedwhen the payload is unchanged. - Salary lookup API,
GET /v1/salaryby title / country. - Free tier (after email confirmation): 50 requests/day and 500/month, with rate-limit headers on every response.
- API Access (paid): 10,000 calls/month — manage in Pricing.
Getting an API key
- While signed in, POST to
/api/keys/register(or use Register free API key in Studio). - Click the confirmation link in the email (key activates once).
- Send the key in
X-API-Keyfor 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://YOUR_DOMAIN/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://YOUR_DOMAIN/v1/jobs/123" \
-H "X-API-Key: cat_XXXXXXXXXXXXXXXXXXXXXXXX"
3. Salary lookup API
Look up a median salary for a role / region:
curl -s "https://YOUR_DOMAIN/v1/salary?title=Senior+Engineer&country=CH" \
-H "X-API-Key: cat_XXXXXXXXXXXXXXXXXXXXXXXX"
Python snippet
Minimal example using requests:
import os
import requests
BASE = "https://YOUR_DOMAIN"
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/Remainingfor the daily window.X-RateLimit-Reset, next daily reset (UTC).X-RateLimit-Windowisdaily; monthly totals are inGET /api/keys/usage.