Upwork Freelancers Scraper
Pricing
Pay per event
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
Maintained by CommunityActor stats
2
Bookmarked
78
Total users
31
Monthly active users
9 days ago
Last modified
Categories
Share

💼 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 sourcers | Build matched freelancer pipelines by skill |
| Agency owners | Benchmark competitor talent and pricing |
| Recruitment teams | Source candidates for outbound outreach |
| Market researchers | Track hourly rates by skill and region |
| Procurement | Validate vendor pricing across geographies |
| Researchers | Study 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
| Field | Type | Name | Description |
|---|---|---|---|
| searchQuery | string | Search Query | Required. Freelancer search keyword (e.g. python developer, react, web scraping). |
| maxItems | integer | Max Items | Free users: limited to 10 items (preview). Paid users: optional, max 1,000,000. |
| topRatedOnly | boolean | Top Rated Only | When true, returns only Top Rated and Top Rated Plus freelancers. |
| topRatedPlusOnly | boolean | Top Rated Plus Only | When true, returns only Top Rated Plus freelancers. |
| usOnly | boolean | US Only | When true, returns only US-based freelancers. Ignored if region/sub-region/country is set. |
| region | enum | Region | Filter by continent: Africa, Americas, Asia, Europe, Oceania. |
| subRegion | enum | Sub-region | Filter by sub-region: Eastern Europe, Western Europe, Latin America, Middle East, North America. |
| country | enum | Country | Filter 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
| Field | Type | Example |
|---|---|---|
| 🔗 profileUrl | string (url) | https://www.upwork.com/freelancers/~012abc345def678901 |
| 🖼️ portraitUrl | string (url) | https://www.upwork.com/profile-portraits/c1abc.jpg |
| 👤 firstName | string | Carlos |
| 👤 lastName | string | Garcia |
| 📝 title | string | `Senior React Developer |
| 💰 hourlyRate | number | 65 |
| 🏆 topRatedStatus | string | Top Rated Plus |
| 📈 jobSuccessScore | number | 100 |
| 💵 totalEarnings | number | 250000 |
| 📊 totalJobs | number | 127 |
| 📍 country | string | Argentina |
| 🛠️ skills | array | ["React", "TypeScript", "Next.js", "Node.js", "GraphQL"] |
| 📅 scrapedAt | ISO datetime | 2026-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
| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| ⭐ Upwork Freelancer Scraper (this Actor) | $5 free credit, then pay-per-use | Full Upwork search results | Live per run | Top Rated, region, sub-region, country | ⚡ 2 min |
| Build your own scraper | Engineering hours | Full once built | Whenever you maintain it | Custom code | 🐢 Days to weeks |
| Paid talent databases | $$$ monthly | Vendor-defined | Periodic | Vendor-defined | ⏳ Hours |
| Manual sourcing | Hours per profile | Limited | Stale | Manual filter clicking | 🕒 Variable |
Pick this Actor when you want broad coverage, source-native filtering, and no pipeline maintenance.
🚀 How to use
- 📝 Sign up. Create a free account with $5 credit (takes 2 minutes).
- 🌐 Open the Actor. Go to the Upwork Freelancer Scraper page on the Apify Store.
- 🎯 Set filters. Set a search query and pick quality + location filters, then set maxItems.
- 🚀 Run it. Click Start and let the Actor collect your data.
- 📥 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
🌟 Beyond business use cases
Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.
🔌 Automating Upwork Freelancer Scraper
This Actor exposes a REST endpoint, so you can drive it from any language or workflow tool.
- Node.js - call it via the Apify JS SDK.
- Python - call it via the Apify Python SDK.
- REST - hit it directly through the Apify v2 API.
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.
❓ 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.
🔗 Recommended Actors
- 💼 LinkedIn Profile Scraper - LinkedIn profile and contact data
- 💼 Wellfound Jobs Scraper - Startup jobs from Wellfound (formerly AngelList)
- 💼 Indeed Scraper - Job listings with compensation and benefits
- 💼 Glassdoor Scraper - Company reviews, salaries, and ratings
- 🔍 Google Search Scraper - SERP harvesting with country and language targeting
💡 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.