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. Get hourly rates, job success scores, earnings, skills, location, Top Rated status, and availability badges. Filter by Top Rated, Top Rated Plus, or US-only freelancers.

Pricing

Pay per event

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

2

Bookmarked

50

Total users

15

Monthly active users

9 days ago

Last modified

Share

ParseForge Banner

💼 Upwork Freelancer Scraper

🚀 Pull Upwork freelancer profiles in minutes. Hourly rates, job success scores, earnings, skills, location, Top Rated status, availability. No API key, no login.

🕒 Last updated: 2026-05-08 · 📊 13+ fields per profile · 🌍 Region, sub-region, country filters · 🚫 No auth required

Pull live freelancer profiles from Upwork by keyword search. The actor builds the matching Upwork search URL with your filters, walks the result pages, and returns one structured record per freelancer ready for talent sourcing, agency benchmarking, market-rate research, or competitive intelligence.

Every run fetches data live so you get the current state of Upwork at run time, not a stale dump. Records include hourly rate, Job Success Score, Top Rated badges, total earnings, total jobs completed, skills array, country and city where available, profile photo URL, and the canonical Upwork profile link.

👥 Built for🎯 Primary use cases
Talent sourcersBuild matched freelancer pipelines by skill
Agency ownersBenchmark competitor talent and pricing
Recruitment teamsSource candidates for outbound outreach
Market researchersTrack hourly rates by skill and region
ProcurementValidate vendor pricing across geographies
ResearchersStudy gig-economy labor market trends

📋 What the Upwork Freelancer Scraper does

  • 🔍 Keyword search. Pass any Upwork search query (e.g. python developer, react, web scraping).
  • 🏆 Quality filters. Top Rated only, Top Rated Plus only, or all freelancers.
  • 🌍 Location filters. US only, by region (Africa, Americas, Asia, Europe, Oceania), by sub-region, or by specific country.
  • 💰 Pricing. Hourly rate as advertised by the freelancer.
  • 📈 Quality signals. Job Success Score, Top Rated badge level, total jobs, total earnings.
  • 🛠️ Skills array. All skills the freelancer has tagged on their profile.

The scraper walks the Upwork search result pages with your filter combination, extracts each freelancer card, and pushes the structured record to the dataset. Records include a back-reference URL to the original Upwork profile so you can rejoin downstream data.

💡 Why it matters: Upwork has the largest pool of vetted freelancers but its UI is paginated, JS-rendered, and filter-locked. A live, structured pull beats manual sourcing for talent acquisition, agency benchmarking, and market research at scale.


🎬 Full Demo

🚧 Coming soon: a 3-minute walkthrough showing setup, a live run, and how to pipe results into Google Sheets via Apify integrations.


⚙️ Input

FieldTypeNameDescription
searchQuerystringSearch QueryRequired. Freelancer search keyword (e.g. python developer, react, web scraping).
maxItemsintegerMax ItemsFree users: limited to 10 items (preview). Paid users: optional, max 1,000,000.
topRatedOnlybooleanTop Rated OnlyWhen true, returns only Top Rated and Top Rated Plus freelancers.
topRatedPlusOnlybooleanTop Rated Plus OnlyWhen true, returns only Top Rated Plus freelancers.
usOnlybooleanUS OnlyWhen true, returns only US-based freelancers. Ignored if region/sub-region/country is set.
regionenumRegionFilter by continent: Africa, Americas, Asia, Europe, Oceania.
subRegionenumSub-regionFilter by sub-region: Eastern Europe, Western Europe, Latin America, Middle East, North America.
countryenumCountryFilter by specific country (full ISO list).

Example 1. Top Rated React developers in Latin America.

{
"searchQuery": "react developer",
"topRatedOnly": true,
"subRegion": "Latin America",
"maxItems": 50
}

Example 2. US-based Python data scientists.

{
"searchQuery": "python data scientist",
"usOnly": true,
"topRatedPlusOnly": true,
"maxItems": 100
}

⚠️ Good to Know: only one location filter can be active at a time (region, subRegion, or country). Setting any of them overrides usOnly.


📊 Output

The dataset returns one structured record per freelancer profile. Each record carries identifiers, name, title, hourly rate, Top Rated status, Job Success Score, total earnings, total jobs, country, skills array, profile photo, and a back-reference URL. Consume the dataset as JSON, CSV, Excel, XML, or RSS via the Apify console or API.

🧾 Schema

FieldTypeExample
🔗 profileUrlstring (url)https://www.upwork.com/freelancers/~012abc345def678901
🖼️ portraitUrlstring (url)https://www.upwork.com/profile-portraits/c1abc.jpg
👤 firstNamestringCarlos
👤 lastNamestringGarcia
📝 titlestring`Senior React Developer
💰 hourlyRatenumber65
🏆 topRatedStatusstringTop Rated Plus
📈 jobSuccessScorenumber100
💵 totalEarningsnumber250000
📊 totalJobsnumber127
📍 countrystringArgentina
🛠️ skillsarray["React", "TypeScript", "Next.js", "Node.js", "GraphQL"]
📅 scrapedAtISO datetime2026-05-08T12:00:00.000Z

📦 Sample records

1. Top Rated Plus freelancer (full profile)

{
"profileUrl": "https://www.upwork.com/freelancers/~012abc345def678901",
"portraitUrl": "https://www.upwork.com/profile-portraits/c1abc.jpg",
"firstName": "Carlos",
"lastName": "G.",
"title": "Senior React Developer | TypeScript | Next.js",
"hourlyRate": 65,
"topRatedStatus": "Top Rated Plus",
"jobSuccessScore": 100,
"totalEarnings": 250000,
"totalJobs": 127,
"country": "Argentina",
"skills": ["React", "TypeScript", "Next.js", "Node.js", "GraphQL"],
"scrapedAt": "2026-05-08T12:00:00.000Z"
}

2. Top Rated freelancer (mid-level)

{
"profileUrl": "https://www.upwork.com/freelancers/~023bcd456ef9012345",
"portraitUrl": "https://www.upwork.com/profile-portraits/c2bcd.jpg",
"firstName": "Anna",
"lastName": "K.",
"title": "Full-Stack JavaScript Developer",
"hourlyRate": 45,
"topRatedStatus": "Top Rated",
"jobSuccessScore": 96,
"totalEarnings": 75000,
"totalJobs": 58,
"country": "Poland",
"skills": ["JavaScript", "React", "Node.js", "MongoDB"],
"scrapedAt": "2026-05-08T12:00:00.000Z"
}

3. New freelancer (sparse fields)

{
"profileUrl": "https://www.upwork.com/freelancers/~034cde567f123456789",
"portraitUrl": "https://www.upwork.com/profile-portraits/c3cde.jpg",
"firstName": "Raj",
"lastName": "P.",
"title": "Junior Web Developer",
"hourlyRate": 18,
"topRatedStatus": null,
"jobSuccessScore": null,
"totalEarnings": 0,
"totalJobs": 0,
"country": "India",
"skills": ["HTML", "CSS"],
"scrapedAt": "2026-05-08T12:00:00.000Z"
}

✨ Why choose this Actor

Capability
🎯Built for the job. Scoped specifically to Upwork freelancer profiles so you skip the parser engineering entirely.
🔖Structured output. Clean, typed fields ready for analysis, dashboards, or downstream pipelines.
Fast. Optimized request patterns return results in seconds, not minutes.
🔁Always fresh. Every run pulls live data, so the dataset reflects Upwork as of run time.
🌐No infra to manage. Apify handles proxies, retries, scaling, scheduling, and storage.
🛡️Reliable. Battle-tested across many runs and edge cases, with graceful error handling.
🚫No code required. Configure in the UI, run from CLI, schedule via cron, or call from any language with the Apify SDK.

📊 Production-grade structured talent data without the engineering overhead of building and maintaining your own scraper.


📈 How it compares to alternatives

ApproachCostCoverageRefreshFiltersSetup
⭐ Upwork Freelancer Scraper (this Actor)$5 free credit, then pay-per-useFull Upwork search resultsLive per runTop Rated, region, sub-region, country⚡ 2 min
Build your own scraperEngineering hoursFull once builtWhenever you maintain itCustom code🐢 Days to weeks
Paid talent databases$$$ monthlyVendor-definedPeriodicVendor-defined⏳ Hours
Manual sourcingHours per profileLimitedStaleManual filter clicking🕒 Variable

Pick this Actor when you want broad coverage, source-native filtering, and no pipeline maintenance.


🚀 How to use

  1. 📝 Sign up. Create a free account with $5 credit (takes 2 minutes).
  2. 🌐 Open the Actor. Go to the Upwork Freelancer Scraper page on the Apify Store.
  3. 🎯 Set filters. Set a search query and pick quality + location filters, then set maxItems.
  4. 🚀 Run it. Click Start and let the Actor collect your data.
  5. 📥 Download. Grab your results in the Dataset tab as CSV, Excel, JSON, or XML.

⏱️ Total time from signup to downloaded dataset: 3-5 minutes. No coding required.


💼 Business use cases

📊 Talent sourcing

  • Build matched candidate pipelines by skill stack
  • Identify Top Rated specialists in your tech area
  • Filter by region or country for time-zone alignment
  • Power outbound recruiting workflows

🏢 Agency and competitive intelligence

  • Benchmark competitor freelancer rosters and rates
  • Track agency hiring patterns over time
  • Build comp sets for pricing decisions
  • Monitor talent flow into specific industries

🎯 Procurement and vendor management

  • Validate vendor freelancer rates before contract talks
  • Build approved-vendor lists by skill and region
  • Source contingent labor for spikes
  • Audit existing vendor pricing against market rates

🛠️ Engineering and product

  • Prototype talent-marketplace products without owning a crawler
  • Replace fragile in-house Upwork scrapers
  • Wire datasets into your apps via the Apify API or webhooks
  • Skip the proxy, retry, and parsing maintenance entirely

🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

🎓 Research and academia

  • Empirical datasets for papers, thesis work, and coursework
  • Longitudinal studies tracking changes across snapshots
  • Reproducible research with cited, versioned data pulls
  • Classroom exercises on data analysis and ethical scraping

🎨 Personal and creative

  • Side projects, portfolio demos, and indie app launches
  • Data visualizations, dashboards, and infographics
  • Content research for bloggers, YouTubers, and podcasters
  • Hobbyist collections and personal trackers

🤝 Non-profit and civic

  • Transparency reporting and accountability projects
  • Advocacy campaigns backed by public-interest data
  • Community-run databases for local issues
  • Investigative journalism on public records

🧪 Experimentation

  • Prototype AI and machine-learning pipelines with real data
  • Validate product-market hypotheses before engineering spend
  • Train small domain-specific models on niche corpora
  • Test dashboard concepts with live input

🔌 Automating Upwork Freelancer Scraper

This Actor exposes a REST endpoint, so you can drive it from any language or workflow tool.

Schedules. Use Apify Scheduler to run hourly, daily, or weekly snapshots. Combine with the Apify dataset diff tools to track new freelancer profiles between runs.


💰 How much does it cost?

Apify gives you $5 in free monthly credits on the Apify Free plan, enough to test Upwork Freelancer Scraper and pull a real sample dataset. For ongoing usage:

  • Starter plan ($49/month) — Recommended for individuals running Upwork Freelancer Scraper regularly. Includes higher concurrency and larger datasets.
  • Scale plan ($499/month) — Recommended for teams running Upwork Freelancer Scraper at production scale.

Pay-Per-Event pricing means you only pay for what you actually use. Failed runs are never charged. See the Pricing tab on this Actor's page for exact event prices.

💡 Tips for using Upwork Freelancer Scraper

  • Start with a small maxItems (3-10) to validate output format before running larger jobs.
  • Use Apify Schedules to run Upwork Freelancer Scraper on a recurring basis and keep your dataset fresh.
  • Export via Integrations: Apify connects to Google Sheets, Airbyte, Make, Zapier, and direct webhooks — pipe your data anywhere.
  • Monitor with webhooks: trigger downstream workflows the moment a run finishes.
  • Re-run failed items: if any individual records error out, re-run with their inputs only. Failed events are not charged.

Yes. Upwork Freelancer Scraper only collects publicly available data. Web scraping public data has been confirmed as legal by US courts (see hiQ Labs v. LinkedIn) and is widely used for research, market analysis, and business intelligence.

However, you are responsible for:

  • Respecting the source website's Terms of Service.
  • Complying with GDPR, CCPA, and other applicable data-protection laws when personal data is involved.
  • Not republishing copyrighted content without permission.

If you have specific compliance concerns, consult your legal team. See the Apify legal docs for more.

❓ Frequently Asked Questions

🔌 Integrate with any app

Upwork Freelancer Scraper connects to any cloud service via Apify integrations:

  • Make - Automate multi-step workflows
  • Zapier - Connect with 5,000+ apps
  • Slack - Get run notifications in your channels
  • Airbyte - Pipe results into your warehouse
  • GitHub - Trigger runs from commits and releases
  • Google Drive - Export datasets straight to Sheets

You can also use webhooks to trigger downstream actions when a run finishes. Push fresh data into your product backend or alert your team in Slack.


💡 Pro Tip: browse the complete ParseForge collection for more reference-data scrapers.


🆘 Need Help? Open our contact form to request a new scraper, propose a custom project, or report an issue.


⚠️ Disclaimer. This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Upwork or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. The scraper accesses only publicly available pages and is intended for legitimate research, analytics, and lead-generation use. Users are responsible for compliance with the source site's Terms of Service and applicable law.