Upwork Freelancers Scraper avatar

Upwork Freelancers Scraper

Pricing

from $16.99 / 1,000 result items

Go to Apify Store
Upwork Freelancers Scraper

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

ParseForge

Maintained by Community

Actor stats

2

Bookmarked

309

Total users

80

Monthly active users

5 days ago

Last modified

Share

ParseForge

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 itWhat they scrape Upwork for
Recruitment agenciesBuild a searchable database of pre-vetted freelance talent for specific skill sets.
Market analystsTrack the supply and hourly rates of freelancers in a given niche over time.
Sales teamsIdentify and qualify independent contractors who may need complementary tools or services.
Aspiring freelancersBenchmark 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 registrationAccess public freelancer data without a developer account or OAuth tokens.
Fixed flat schemaEvery profile is normalized into the same columns for easy analysis.
Flexible location filtersTarget freelancers by continent, sub-region, or a single country.
Quality signalsFilter 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.

FeatureParseForgeUpwork Job ScraperUpwork Job Extractor ⚡Upwork Jobs
Scrapes freelancer profilesYesNot listedNot listedNot listed
Scrapes job postingsNot listedYesYesYes
Filter by Top Rated statusYesNot listedNot listedNot listed
Filter by freelancer locationYesNot listedNot listedNot listed
Returns freelancer hourly rateYesNot listedNot listedNot 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 collectedApproximate 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

  1. Create a free Apify account with $5 in credit.
  2. Open the Upwork Freelancers Scraper.
  3. Set your inputs and any filters, then click Start.
  4. 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

QuestionAnswer
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.

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.