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
50
Total users
15
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, orcountry). Setting any of them overridesusOnly.
📊 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.
💰 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.
⚖️ Is it legal to use Upwork Freelancer Scraper?
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.
🔗 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.