A streaming jobs API for your own tools
The feed behind our alerts, as JSON and as a live stream. Free gives you a delayed portion. Pro gives you everything, in real time.
Get API accessComing soon
What each plan includes
| What each plan includes | Free | Pro |
|---|---|---|
| Freshness | 30 minutes behind | Real time |
| Platforms | Mostaql and Freelancer | Mostaql, Freelancer and Upwork |
| Results | 20 per page, 5 pages | 100 per page, no page limit |
| Requests | 30 per minute | 120 per minute |
| Live stream | 1 connection, checks every 20 seconds | 5 connections, checks every 3 seconds |
| Replay on connect | Last 5 jobs | Last 100 jobs |
Try it
Send your key in the X-RapidAPI-Key header. Free responses include a hidden_from_you count, so you can see what an upgrade adds.
Endpoints
- GET /api/jobs
- Search and filter, paginated
- GET /api/jobs/{id}
- One job
- GET /api/stream
- Live feed of new jobs (Server-Sent Events)
- GET /api/facets
- Platforms and top skills
- GET /api/stats
- Jobs per platform
- GET /api/plans
- What each plan includes, no key needed
Search jobs
# Free sees a delayed portion, Pro sees everything curl -H "X-RapidAPI-Key: $KEY" \ "$HOST/api/jobs?q=react&min_budget=100&sort=recent"
Stream new jobs
curl -N -H "X-RapidAPI-Key: $KEY" \ "$HOST/api/stream?replay=5&skill=Python" event: ready data: {"tier":"free","delay_minutes":30,"poll_seconds":20} id: 412 event: job data: {"source":"mostaql","title":"…","budget_max":500}
Stream from a browser or Node
const res = await fetch(`$${HOST}/api/stream`, { headers: { "X-RapidAPI-Key": KEY }, }); const reader = res.body .pipeThrough(new TextDecoderStream()).getReader(); for (;;) { const { value, done } = await reader.read(); if (done) break; console.log(value); // event: job / data: {…} }