Just Join IT job offer

GET https://api.api.sh/justjoin/v1/job
1 credit / call jobs & b2b try it in the playground →

One job offer on Just Join IT: title, company with size and website, category, experience level, work mode, working time, address with coordinates and other locations, salaries per contract type, required and nice-to-have skills with levels, languages, dates, apply method and link, and the full description. Give slug or url, or category/q (plus any search filter) to open the first matching current offer.

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
slug string Offer slug (the part after /job-offer/).
url string Offer URL on justjoin.it.
location string City slug (warszawa, krakow, wroclaw, gdansk, poznan, katowice, lodz), remote, or all-locations (default).
category string Category slug: python, javascript, java, net, php, go, data, ai, devops, mobile, testing, admin, security, ux, pm, support, game, erp, architecture, analytics, html, ruby, scala, c, other. Example: python
q string Keyword (skill, title or company).
experience string Experience levels, comma separated: intern, junior, mid, senior, expert, manager, c_level.
mode string Work modes, comma separated: remote, hybrid, office, mobile.
working_time string Working time, comma separated: full_time, part_time, internship, freelance, b2b_contract.
contract string Contract types, comma separated: b2b, permanent, mandate, specific_task, internship, any.
language string Offer language, comma separated: pl, en, de, fr, es, uk, ru, it.
posted 1 | 7 | 14 | 30 Only offers published in the last N days.
with_salary 1 | 0 1 = only offers that show a salary.
salary_min string Minimum monthly salary in PLN.
radius string Distance around the city in km.
sort default | newest | salary Sort order.

Every endpoint also takes fresh, raw, fields (see lean responses and caching).

Example

curl "https://api.api.sh/justjoin/v1/job" \
  -H "x-api-key: $APISH_KEY"

Response

A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).

The fastest way to see the full response is the playground: it runs this endpoint with your account and shows the exact JSON.