Upwork Freelancers Scraper avatar

Upwork Freelancers Scraper

Pricing

Pay per event

Go to Apify Store
Upwork Freelancers Scraper

Upwork Freelancers Scraper

Search and scrape Upwork freelancer profiles by keyword. Extracts hourly rates, job success scores, total earnings, skills, location, Top Rated status, availability, and more. Filter by Top Rated, Top Rated Plus, or US-only freelancers. Supports pagination to retrieve large result sets.

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

8 days ago

Last modified

Share

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
}
FieldTypeDefaultDescription
searchQuerystringpython developerKeyword — e.g. graphic designer, rust engineer
maxItemsinteger20Maximum freelancer profiles to scrape
topRatedOnlybooleanfalseRestrict to Top Rated or Top Rated Plus freelancers
usOnlyFilterbooleanfalseRestrict 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"
}
FieldTypeDescription
namestringPublic display name
titlestringProfessional title or tagline
hourly_ratestringHourly rate — e.g. $85/hr
job_success_scorestringJob Success Score percentage
total_earningsstringLifetime earnings band — e.g. $10K+
locationstringCity and country
skillsstringComma-separated skills listed on the profile
availabilitystringAvailability badge — Available Now or empty
top_rated_statusstringTop Rated, Top Rated Plus, or empty
profile_urlstringFull URL to the Upwork profile
total_jobsstringJobs completed
total_hoursstringHours worked
scraped_atstringISO 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.