# Upwork Jobs Scraper API

> Search Upwork job postings by keyword, then fetch one posting’s full detail including client stats — over Upwork’s public visitor surface.

Search Upwork Jobs and Get Upwork Job Details cover Upwork job search end to end. Search Upwork Jobs takes a keyword and returns matching postings with their title, description, contract type, budget, publish time and a job reference to pass into the detail call. Get Upwork Job Details takes that reference — the job ciphertext, or the job URL — and returns the complete posting: the full description, required skills, budget range, how many freelancers have applied and been interviewed, and the client’s own country, feedback score, hire count and total historical spend. Both read Upwork’s public visitor GraphQL surface — no Upwork account or session cookie is required. They run over residential proxy exits specifically because Upwork’s visitor surface was measured to return zero successful reads over datacenter IPs during evaluation, where the residential pool worked; that is a documented, measured choice rather than a default. The exact price is on this page’s FAQ, generated from the catalog. Filter values (contract type, budget bands and similar enums) are independently measured against Upwork’s own API, since Upwork disables introspection on this surface — an unverified guess at an enum value fails the call loudly rather than silently returning nothing.

## Operations

- [Search Upwork Jobs](https://upapi.io/apis/social-media/upwork-jobs-search) (10 units): Search Upwork job postings by keyword. Returns title, description, contract type, budget, publish time and the job reference you pass to upwork-jobs-detail. Reads Upwork's public visitor surface — no Upwork account or cookie is required.
- [Get Upwork Job Details](https://upapi.io/apis/social-media/upwork-jobs-detail) (10 units): Read one Upwork job posting in full: the complete description, required skills, budget, how many freelancers have applied and been interviewed, and the client's country, rating, hire count and total spend. Accepts the job ciphertext or the job URL. Reads Upwork's public visitor surface — no Upwork account is required.

## Frequently asked questions

### Do I need an Upwork account to search jobs?

No. Both operations read Upwork’s public visitor surface — the same job board a signed-out visitor can browse — and authenticate only with your upAPI key. Authenticated Upwork (posting proposals, messaging clients) is out of scope for this catalog.

### What does the job detail call return about the client?

The client’s country, feedback score, total jobs with hires, and total historical spend, alongside the posting’s own budget, required skills, and applicant and interview counts.

### How much does this cost?

Every operation in this cluster costs 10 weighted units per call, drawn from your plan’s pooled monthly quota — see upapi.io/pricing for what a unit costs on each tier.

### What do I pass into Get Upwork Job Details?

The job’s ciphertext reference from a Search Upwork Jobs result, or the job’s own URL — either is accepted.

### How fresh is the data — is it cached?

Search Upwork Jobs is cached for 3 minutes; Get Upwork Job Details is cached for 10 minutes. A repeat call inside a cached window returns the cached response and is billed nothing.

Last updated 2026-10-20.
