OrbTop

Upwork Freelancers Scraper

JOBSLEAD GENERATION

Upwork Freelancer Profile Scraper

Scrapes freelancer profiles from Upwork by keyword. Returns hourly rate, Job Success Score, lifetime earnings band, skills, location, Top Rated status, availability and completed job counts as structured JSON.


Upwork Scraper Features

  • Search freelancers by any keyword — role, stack, or specialism
  • Filter to Top Rated / Top Rated Plus profiles only
  • Filter to US-based freelancers only
  • Returns 13 fields per profile, including Job Success Score and total hours worked
  • Paginates the result set, so large searches complete in one run
  • Caps output with maxItems

What can you do with Upwork freelancer data?

  • Recruiters — Build a shortlist for a stack, filtered to Top Rated, without paging through search by hand.
  • Rate benchmarking — Compare hourly rates across regions for the same skill before setting a budget.
  • Agencies — Map the competition in a specialism: how many, at what rate, with what success scores.
  • Market researchers — Track the supply side of a skill over time by re-running the same query.
  • Sales teams — Find independent professionals in a category as a prospect list.

How Upwork Scraper Works

  1. You supply a search keyword and, optionally, the Top Rated and US-only filters.
  2. The scraper runs the search and pages through the results.
  3. Each profile card is parsed into the field set below.
  4. Records stream to the dataset as they are parsed, stopping at maxItems.

Input

{
  "searchQuery": "python developer",
  "topRatedOnly": true,
  "usOnlyFilter": false,
  "maxItems": 100
}
Field Type Default Description
searchQuery string python developer Keyword — e.g. graphic designer, rust engineer
maxItems integer 20 Maximum freelancer profiles to scrape
topRatedOnly boolean false Restrict to Top Rated or Top Rated Plus freelancers
usOnlyFilter boolean false Restrict to US-based freelancers

Combine both filters for the narrowest, highest-signal set.


Upwork Scraper Output Fields

{
  "name": "Jane D.",
  "title": "Senior Python Developer | Django & FastAPI",
  "hourly_rate": "$85/hr",
  "job_success_score": "100%",
  "total_earnings": "$300K+",
  "location": "Austin, United States",
  "skills": "Python,Django,FastAPI,PostgreSQL,AWS",
  "availability": "Available Now",
  "top_rated_status": "Top Rated Plus",
  "profile_url": "https://www.upwork.com/freelancers/~01abcdef",
  "total_jobs": "142",
  "total_hours": "6800",
  "scraped_at": "2026-07-25T09:14:22Z"
}
Field Type Description
name string Public display name
title string Professional title or tagline
hourly_rate string Hourly rate — e.g. $85/hr
job_success_score string Job Success Score percentage
total_earnings string Lifetime earnings band — e.g. $10K+
location string City and country
skills string Comma-separated skills listed on the profile
availability string Availability badge — Available Now or empty
top_rated_status string Top Rated, Top Rated Plus, or empty
profile_url string Full URL to the Upwork profile
total_jobs string Jobs completed
total_hours string Hours worked
scraped_at string ISO timestamp of extraction

FAQ

Does the Upwork Scraper need an Upwork account?

No. It reads public freelancer search results.

Why is name abbreviated, like "Jane D."?

That is how Upwork displays freelancer names in public search. Full surnames are not shown to logged-out visitors, and nothing is invented to fill the gap.

Why is total_earnings a band rather than an exact figure?

Upwork publishes it as a band — $10K+, $300K+. The field carries what the platform shows.

Can I get a freelancer's full work history or client reviews?

Not with this actor. You get the profile-level summary, including job and hour totals.

Does topRatedOnly include Top Rated Plus?

Yes — both tiers. The top_rated_status field tells you which one each profile holds.


Need More Features?

Need per-review extraction or category browsing instead of keyword search? Open an issue on the actor.

Why Use Upwork Scraper?

  • Job Success Score and hours on every record — The two fields that separate a real track record from a new profile.
  • Filters that match how you actually hire — Top Rated and US-only are applied at search, not left for you to post-process.
  • Pay per profile — No subscription. A single shortlist run costs what those profiles cost and then stops.