Search No Fluff Jobs

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

IT job ads on No Fluff Jobs (Poland and Central Europe; every ad shows a salary range) with the site's filters: city, province, remote, category, skill, seniority, employment type, company, job language, minimum salary and region. Each result has the title, company, logo, category, main technology, seniority, salary range with contract type and period, locations with coordinates, work mode and dates. Pages follow the site; pass next_page back as page.

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
q string Keywords (title, skill or company). Example: python
city string Cities, comma separated (e.g. warszawa, krakow, wroclaw). Example: warszawa
province string Provinces, comma separated (e.g. mazovia, lesser-poland).
remote 1 1 = remote jobs.
category string Categories, comma separated (backend, frontend, fullstack, mobile, devops, testing, data, ai, security, project-manager, business-analyst, ux, support, sys-administrator, ...).
skill string Required skills, comma separated (e.g. python, java, react).
seniority string Seniority levels, comma separated: trainee, junior, mid, senior, expert.
employment string Contract types, comma separated: permanent, b2b, zlecenie, uod, intern.
company string Company names, comma separated.
job_language string Language of the ad, comma separated (e.g. en, pl).
salary_min integer Minimum salary (in currency and salary_period).
currency PLN | EUR | USD | GBP | CHF | CZK | HUF | UAH Salary currency.
salary_period month | hour | day | year Salary period for salary_min and the shown ranges.
region pl | cz | sk | hu | nl | ua Site region.
page integer Page number (from 1).

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

Example

curl "https://api.api.sh/nofluffjobs/v1/search?q=python" \
  -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.