Upwork Freelancers Scraper
Pricing
from $16.99 / 1,000 result items
Upwork Freelancers Scraper
Scrapes Upwork freelancer profiles by skill keyword. Returns a flat row with title, hourly rate, total earnings, job success score, and location.
Pricing
from $16.99 / 1,000 result items
Rating
5.0
(1)
Developer
ParseForge
Maintained by CommunityActor stats
2
Bookmarked
309
Total users
80
Monthly active users
5 days ago
Last modified
Categories
Share
Upwork Freelancers Scraper
Scrape Upwork freelancer profiles by skill, keyword, or location, up to a million per run. Each profile returns the title, hourly rate, total earnings, job success score, and location. No login or API key. Export to CSV, JSON, Excel, or XML.
Upwork's official API requires a developer account and restricts the depth of freelancer data you can pull. This actor reads the public search results directly, filtering by Top Rated status, Top Rated Plus, or specific countries and regions, and returns each matching profile in one consistent schema. Build a talent pipeline, analyze competitor skill sets, or populate a recruitment database without writing a single line of code.
| Who uses it | What they scrape Upwork for |
|---|---|
| Recruitment agencies | Build a searchable database of pre-vetted freelance talent for specific skill sets. |
| Market analysts | Track the supply and hourly rates of freelancers in a given niche over time. |
| Sales teams | Identify and qualify independent contractors who may need complementary tools or services. |
| Aspiring freelancers | Benchmark their own rates and skills against top earners in their category. |
What it does
This Actor collects Upwork freelancer profiles by skill keyword and returns each one as a flat row with their title, rate, earnings, and location.
- ⭐ Top Rated filters: restrict results to only Top Rated or Top Rated Plus freelancers.
- 🌍 Location targeting: filter by continent, sub-region, or a specific country to find local talent.
- 🔢 Volume control: set a precise maximum number of profiles to collect, from a single preview up to a million.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with Upwork data
🔍 Build a talent pipeline.
A recruiter runs the actor daily for 'react developer' and filters by Top Rated Plus to maintain a fresh list of elite candidates.
📊 Analyze freelance market rates.
A market analyst scrapes 'python developer' across different regions to compare average hourly rates and inform a pricing report.
🌎 Find local contractors.
A project manager sets the country filter to 'Canada' and the skill to 'technical writer' to find nearby freelancers for an on-site contract.
📈 Monitor competitor skills.
A freelancer scrapes their own niche to see which complementary skills top earners list and updates their own profile accordingly.
Why choose this scraper
| What you get | |
|---|---|
| No API registration | Access public freelancer data without a developer account or OAuth tokens. |
| Fixed flat schema | Every profile is normalized into the same columns for easy analysis. |
| Flexible location filters | Target freelancers by continent, sub-region, or a single country. |
| Quality signals | Filter by Top Rated and Top Rated Plus badges to isolate high-quality talent. |
How it compares
This actor focuses exclusively on freelancer profiles, while the competitors listed below are designed for scraping Upwork job postings.
| Feature | ParseForge | Upwork Job Scraper | Upwork Job Extractor ⚡ | Upwork Jobs |
|---|---|---|---|---|
| Scrapes freelancer profiles | Yes | Not listed | Not listed | Not listed |
| Scrapes job postings | Not listed | Yes | Yes | Yes |
| Filter by Top Rated status | Yes | Not listed | Not listed | Not listed |
| Filter by freelancer location | Yes | Not listed | Not listed | Not listed |
| Returns freelancer hourly rate | Yes | Not listed | Not listed | Not listed |
Configure the run
Drive the Actor with a skill or job title keyword, and apply Top Rated and location filters as each profile is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{"searchQuery": "python developer","maxItems": 10}
A larger pull:
{"searchQuery": "python developer","maxItems": 200}
Pricing
Pay-per-result: $0.02266 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $2.27 |
| 1,000 results | $22.66 |
| 10,000 results | $226.60 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Upwork Freelancers Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to Upwork through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/upwork-freelancers-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check that your searchQuery is spelled correctly and is a common term on Upwork. Also, try disabling the Top Rated or location filters, as they may be too restrictive for your chosen keyword.
Why is the actor running slowly?
The actor respects Upwork's pages to avoid blocks. If you are collecting a very large number of profiles, the run will naturally take longer. Try reducing the maxItems for a faster test.
Why are my location filters being ignored?
Only one location filter can be used at a time. If you set a country, the region and sub-region filters are ignored. The 'US Only' checkbox is also ignored when any other location filter is set.
Why do some profiles have missing data fields?
Not all freelancers make their full profile public. Fields like total earnings or job success score may be blank if the freelancer has chosen to hide them.
I am getting an error about the input schema.
Ensure your maxItems is a whole number between 1 and 1,000,000. Also, verify that any country or region name you entered matches the exact spelling from the dropdown list.
FAQ
| Question | Answer |
|---|---|
| Can I scrape freelancers by a specific skill? | Yes. The searchQuery input accepts any skill or job title keyword, such as 'python developer', 'web scraping', or 'react'. |
| How do I filter for only US-based freelancers? | Enable the 'US Only' checkbox. This filter is ignored if you also set a region, sub-region, or country. |
| What is the difference between Top Rated and Top Rated Plus? | Top Rated is a badge for proven freelancers. Top Rated Plus is a higher tier for top earners on large contracts. You can filter by either or both. |
| Can I combine location filters? | No. Only one location filter can be active at a time. Choose either a region, a sub-region, or a specific country. |
| Does this actor scrape job postings? | No. This actor scrapes freelancer profiles. For job postings, use a dedicated Upwork job scraper from the Apify Store. |
| How many profiles can I collect in one run? | You can set the maximum from 1 up to 1,000,000 profiles per run using the maxItems input. |
| Do I need an Upwork account to use this? | No. The actor reads publicly available search results and does not require a login or API key. |
| What data fields does the actor return? | It returns a flat row for each freelancer, including their title, hourly rate, total earnings, job success score, and location. |
| Can I export the results to Excel? | Yes. The dataset can be exported in CSV, JSON, Excel, or XML formats directly from Apify. |
| How do I avoid getting blocked? | The actor runs on the Apify platform with built-in proxy rotation to help ensure reliable data collection. |
Related actors
Browse the full ParseForge collection for more scrapers.
🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Upwork Global Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
