Upwork Jobs & Freelancer Scraper - API & Data Export
Pricing
from $2.40 / 1,000 job listings
Upwork Jobs & Freelancer Scraper - API & Data Export
Scrape Upwork jobs and freelancers into structured datasets. Pull job listings, full job detail with client spend and hire-rate intelligence, freelancer profiles, JSS and badges. Bulk export to JSON, CSV and Excel for lead generation, recruiting, bid research and market analysis.
Pricing
from $2.40 / 1,000 job listings
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Upwork Jobs & Freelancer Scraper โ API & Data Export ๐ผ
๐ Store-SIรN Agency
๐ Store-Jobs Search API
๐ Store-Zillow Agent Scraper
๐ Store-Property Skip Tracing
๐ Jobs and freelancers in one actor โ plus client spend & hire-rate intelligence no jobs-only scraper gives you
Built for lead-gen teams, recruiters, agencies, and market researchers working the Upwork marketplace
๐ Overview
Scrape the entire Upwork marketplace โ both sides of it โ into clean structured datasets. Where most Upwork tools only pull job listings, this actor adds freelancer search & profiles and client intelligence (total spend, hire rate, payment-verified status, applicant counts) so you can find who's hiring and who's available, and qualify both before you reach out.
Why teams choose this actor:
- โ Both market sides in one tool: jobs (who's hiring) and freelancers (who's available) โ most scrapers do only one
- โก Client intelligence built in: job detail returns client total spend, hire rate, payment-verified status, and applicant counts โ first-class, not a hidden paid add-on
- ๐ฏ Freelancer trust signals: Job Success Score (JSS), badge (Top Rated / Plus / Rising Talent), hourly rate, total hours and jobs
- ๐ฐ Pay only for rows you keep: transparent pay-per-result pricing, with a job-listing rate matched to the market
- ๐ Real pagination: search multiple pages per keyword for deep, deduplicated coverage
- โจ Clean export: JSON, CSV, and Excel straight from the Apify dataset โ no account or API key needed
โจ Features
- ๐ Search Jobs: find open jobs by keyword โ title, budget, type, skills, posted date, and link
- ๐ Job Detail: full record for any job URL with client intelligence โ spend, hire rate, payment-verified, applicants, invites, interviews
- ๐ฅ Search Freelancers: find freelancers by keyword โ title, location, hourly rate, JSS, badge, and skills
- ๐ค Freelancer Profile: full profile for any freelancer URL โ stats, portfolios, and skills
- ๐ Paginated search: pull multiple pages per keyword for broad coverage
- ๐ท๏ธ Structured skills: skill tags split into clean arrays for filtering
- ๐งพ Unified dataset: jobs and freelancers in one schema, split by
recordType/_operation - ๐ HTML run report: success/error counts and run details, written even on a fatal error
๐ฌ Quick Start
Pick an operation, give it search terms or URLs, and press Start. Results stream into the dataset.
curl-X POST 'https://api.apify.com/v2/acts/sian.agency~upwork-jobs-scraper/runs?token=YOUR_TOKEN'\-H'Content-Type: application/json'\-d'{"operation": "searchJobs", "queries": ["python developer"], "maxPages": 3}'
๐ Getting Started (3 Simple Steps)
Step 1: Choose an operation
Pick Search Jobs, Job Detail, Search Freelancers, or Freelancer Profile.
Step 2: Provide input
Search operations take a list of search terms. Detail operations take a list of URLs (the ones the search ops return are ready to paste).
Step 3: Run and export
Press Start, then download the dataset as JSON, CSV, or Excel.
That's it! In under a minute, you'll have:
- A clean dataset of Upwork jobs or freelancers
- Client spend & hire-rate intelligence on every job detail row
- Freelancer JSS, badges, and rates for sourcing
๐ฅ Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| operation | string | Yes | searchJobs, jobDetail, searchFreelancers, or freelancerProfile |
| queries | array | For search ops | Keywords to search (e.g. python developer, shopify expert) |
| urls | array | For detail ops | Job or freelancer URLs to enrich |
| maxPages | integer | No | Pages per search term (default 3, max 50) |
Search example:
{"operation":"searchJobs","queries":["react native","seo specialist"],"maxPages":3}
Detail example:
{"operation":"jobDetail","urls":["https://www.upwork.com/jobs/~021234567890123456789"]}
๐ค Output
Results are saved to the Apify dataset with 50+ fields including:
| Field | Type | Description |
|---|---|---|
| recordType | string | job or freelancer |
| recordTitle | string | Job title or freelancer headline |
| recordUrl | string | Upwork job or freelancer URL |
| budgetInfo | string | Raw budget/rate string from the listing |
| skills | array | Skill tags |
| clientSpending | string | Client lifetime spend (job detail) |
| clientPaymentVerified | boolean | Client payment-verified status (job detail) |
| applications | number | Number of applicants (job detail) |
| hourlyRate | number | Freelancer hourly rate (freelancers) |
| jss | number | Freelancer Job Success Score (freelancers) |
| badge | string | Freelancer badge (Top Rated / Plus / Rising Talent) |
Example (job detail):
{"recordType":"job","recordTitle":"Python Developer","jobType":"hourly","minHourlyRate":25,"maxHourlyRate":47,"skills":["Python","PostgreSQL"],"clientSpending":"$6.8K","clientPaymentVerified":true,"applications":242,"clientHires":34,"_operation":"jobDetail"}
๐ผ Use Cases & Examples
1. Lead Generation & Client Prospecting
Agencies and freelancers building outreach lists of buyers actively hiring.
Input: Search Jobs for your niche, then Job Detail on the results Output: Jobs with client spend, hire rate, payment-verified status, and applicant counts Use: Qualify and prioritize the highest-value clients before you pitch.
2. Agency Bid Research
Teams that want the freshest, best-fit projects.
Input: Search Jobs for your skills with multiple pages Output: Budgets, project types, required skills, posted times Use: Bid early on jobs that match your rate and expertise.
3. Freelancer & Talent Sourcing
Recruiters and agencies sourcing vetted talent.
Input: Search Freelancers by skill Output: JSS, badges, hourly rates, total hours, and profiles Use: Build shortlists of Top Rated freelancers for roles or subcontracting.
4. Rate & Market Benchmarking
Analysts setting pricing or studying the market.
Input: Search Jobs and Search Freelancers across roles Output: Hourly and fixed budgets, rates by region Use: Benchmark rates and track how the gig economy shifts.
5. Gig-Economy Trend Analysis
Researchers and investors mapping demand.
Input: Scheduled searches across skills and categories Output: Job and freelancer datasets over time Use: Analyze demand by skill, category, and geography.
๐ Integration Examples
JavaScript/Node.js
import{ ApifyClient }from'apify-client';const client =newApifyClient({token:'YOUR_TOKEN'});const run =await client.actor('sian.agency/upwork-jobs-scraper').call({operation:'searchJobs',queries:['python developer'],maxPages:3,});const{ items }=await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/upwork-jobs-scraper').call(run_input={'operation':'searchFreelancers','queries':['shopify expert'],'maxPages':2})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
curl-X POST 'https://api.apify.com/v2/acts/sian.agency~upwork-jobs-scraper/runs?token=YOUR_TOKEN'\-H'Content-Type: application/json'\-d'{"operation": "jobDetail", "urls": ["https://www.upwork.com/jobs/~021234567890123456789"]}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: Schedule or webhook
- HTTP Request: Call the actor API
- Process: Handle the JSON results
- Action: Save to a CRM, notify your team, or enrich a sheet
๐ Performance & Pricing
FREE Tier (Try It Now)
- Full feature access โ every operation, same data quality
- No credit card required
- Perfect for testing and small projects
PAID Tier (Production Ready)
- Unlimited rows per run
- Pay-per-result: charged only for the rows you keep
- Job-listing rate matched to the market
๐ฐ Cheap-per-row job search, premium client-intelligence enrichment.
๐ View current pricing
โ Frequently Asked Questions
Q: Can I scrape both jobs and freelancers? A: Yes โ that's the whole point. Use Search Jobs / Job Detail for the demand side and Search Freelancers / Freelancer Profile for the supply side.
Q: What is the client intelligence in Job Detail? A: For each job URL, you get the client's total spend, average spend per hire, hire count, payment-verified status, rating, reviews, and the job's applicant/invite/interview counts.
Q: Do I need an Upwork account or API key? A: No. Just provide your search terms or URLs.
Q: What output formats are available? A: JSON, CSV, and Excel โ export directly from the Apify dataset.
Q: How many pages can I fetch per search term? A: Up to 50 pages per term (default 3). Each page returns about 10 rows.
Q: How do I tell jobs from freelancers in the dataset?
A: Filter on recordType (job / freelancer) or _operation.
Q: Is this legal? A: We only extract publicly available data. See the legal section below.
๐ Troubleshooting
No results returned
- Check the operation matches the input: search ops need
queries, detail ops needurls - Broaden the search term, or confirm the URL is a valid Upwork job/freelancer link
A detail row came back as an error
- The URL may be expired or removed on Upwork; verify it opens in a browser
Want more rows per term
- Increase
maxPages(up to 50)
โ ๏ธ Trademark Disclaimer
This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Upwork Global Inc. "Upwork" and all related names, marks, and logos are trademarks of their respective owners and are used here for descriptive purposes only. This tool accesses only publicly available information.
โ๏ธ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
๐ค Support
Join our active support community
- For issues or questions, open an issue in the actor's Issues tab
- Check the SIรN Agency Store for more automation tools
- ๐ง apify@sian-agency.online
Built by SIรN Agency | More Tools
