Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Upwork API page →
docs / upwork

Upwork

Live freelance job postings with the full brief, fixed or hourly budget, required skills and experience level.

base /upwork/v13 endpoints
post/upwork/v1/job1 credit

Everything Upwork publishes about one job: the full brief, budget (fixed amount or hourly range), category and occupation, skills with mandatory/nice-to-have weighting, experience level, project length in weeks, freelancer requirements (countries, languages, minimum job-success score and hours), how many people have applied, been interviewed and been hired, and the client's history — country, city, timezone, total spend, jobs posted, hires, hours billed, review count, rating and member-since date. Plus Upwork's own list of similar jobs. Note that Upwork withholds a minority of listed jobs from anyone who is not signed in; those return NOT_FOUND. `search` already carries the full brief, budget, skills and posting time for every job, so this endpoint is for the ones you shortlist.

ParameterAllowed / rangeDescription
idrequired—The job: its cipher id ('~02…' as `search` returns in `cipher_id`), a full Upwork job URL, or the bare numeric id.
Try in playground →
post/upwork/v1/filtersfree

The exact filter vocabulary Upwork's own job search ships — every accepted client location (263 countries, regions and sub-regions), timezone (72), contract type, experience level, project length, workload and client-hire band. Read straight off the live search page, so it cannot drift from what `search` accepts.

Try in playground →