Upwork Job Scraper
Pricing
from $1.00 / 1,000 jobs
Pricing
from $1.00 / 1,000 jobs
Rating
4.1
(3)
Developer
delta spider
Maintained by CommunityActor stats
16
Bookmarked
322
Total users
13
Monthly active users
2 days ago
Last modified
Categories
Share
Upwork Job Scraper - Get the latest jobs and stay ahead of the competition
🚀 Scrape Upwork job listings instantly - The most reliable Upwork scraper with extremely fast, accurate, real-time data extraction.
Why Choose This Upwork Scraper?
✅ Fresh Jobs Only - Access the latest Upwork job postings as they appear
✅ Advanced Filtering - Use Upwork's own search URLs or customize with 15+ filter options
✅ Detailed Job Data - Extract comprehensive job details including client history, budgets, and requirements
✅ Multiple Export Formats - Get structured data in JSON, CSV, Excel, or XML
✅ No Coding Required - Simply paste Upwork search URLs and start scraping
🎯 Perfect For
- Freelancers: Automate your Upwork job search and never miss opportunities
- Agencies: Track multiple job categories and match team skills efficiently
- Market Researchers: Analyze freelance trends, rates, and skill demand
- Business Intelligence: Monitor client hiring patterns and project types
🚀 Quick Start
Method 1: Copy & Paste Upwork URLs (Recommended)
The easiest is to use search_urls - simply copy any Upwork search URL from your browser and paste it directly. This future-proof approach automatically adapts to Upwork's URL changes and captures all filter combinations. Just make sure the urls start with www.upwork.com/nx/search/jobs
{"search_urls": ["https://www.upwork.com/nx/search/jobs/?q=react%20developer&contractor_tier=2,3&hourly_rate=30-80","https://www.upwork.com/nx/search/jobs/?q=python&t=1&amount=1000-4999,5000-&client_hires=10-"],"limit": 100,"includeDetails": true}
Configuration Options
These options apply to both methods:
| Parameter | Description | Default |
|---|---|---|
| search_urls | Array of Upwork search URLs to scrape | empty |
| limit | Maximum jobs to extract per search | 100 |
| includeDetails | Get comprehensive job details (client info, similar jobs, etc.) | false |
Proxies and anti-blocking are handled for you. There is no proxy setting.
Method 2: Custom filters
Prefer not to build a URL? Leave search_urls empty and describe the search with keywords and filters. The Apify input UI offers dropdowns with every valid option, and the same filters work over the API:
{"userQuery": "react developer","contractorTier": ["IntermediateLevel", "ExpertLevel"],"hourlyRateMin": 30,"hourlyRateMax": 80,"workload": ["full_time"],"location": ["United States", "Germany"],"limit": 100}
| Filter | Description | Accepted values |
|---|---|---|
| userQuery | Search keywords | Any text |
| sort | Result order | recency (default), relevance+desc |
| category | Category or subcategory | Pick from the dropdown in the input UI (76 options) |
| contractorTier | Experience level | EntryLevel, IntermediateLevel, ExpertLevel |
| durationV3 | Project length | week (under 1 month), month (1 to 3 months), semester (3 to 6 months), ongoing (over 6 months) |
| jobType | Job type | hourly, fixed |
| hourlyRateMin, hourlyRateMax | Hourly rate range in USD | Numbers, either side optional |
| budget | Fixed-price budget | 0-99, 100-499, 500-999, 1000-4999, 5000- |
| fixedPriceMin, fixedPriceMax | Custom fixed-price range in USD | Numbers, either side optional. Ignored when budget is set |
| clientHires | Client history | 0 (no hires), 1-9, 10- (10 or more) |
| workload | Hours per week | as_needed (less than 30 hrs/week), full_time (more than 30 hrs/week) |
| contractToHire | Only contract-to-hire roles | true |
| location | Client location | Pick from the dropdown: Upwork's own regions, subregions and countries, for example United States, Western Europe |
| timezone | Client time zone | Pick from the dropdown: Upwork's own list. Values are time zone names such as America/New_York, Europe/Berlin |
Two things to know:
- URLs win. If
search_urlscontains at least one URL, the search comes from the URL and the custom filters are ignored. - Ranges pick the job type. A fixed-price budget on its own returns fixed-price jobs, and an hourly rate on its own returns hourly jobs. Set both, or choose
jobTypeyourself, to get both kinds.
💰 Pricing
Pay only for the jobs you get. No monthly fee, no start fee, and platform usage is included.
| What you get | Price | Per 1,000 jobs |
|---|---|---|
| A job | $0.001 | $1.00 |
| A job with full details | $0.001 + $0.001 | $2.00 |
- The details add-on is charged only for jobs that come back with details. Upwork hides the details of private listings, and those cost the plain $0.001.
- A run that returns nothing costs nothing.
- Set Maximum charge per run in the Apify Console for a hard ceiling. The scraper stops cleanly when it is reached.
📊 Output Data
Extract structured Upwork job data in your preferred format (JSON, CSV, Excel, XML).
Basic Job Fields
{"_input": "contract_to_hire = true | hourly_rate = 50- | search = blockchain developer | t = 0 | timezone = America/New_York","_position": 1,"title": "Senior Blockchain Cryptography Developer","description": "Project: I/O Coin DIONS Code Review & Upgrade Proposal","url": "https://www.upwork.com/freelance-jobs/apply/~021943382953261501032/","skills": ["Blockchain Architecture", "Blockchain", "Cryptocurrency", "Distributed Ledger Technology", "Java"],"id": "1943382953261501032","ciphertext": "~021943382953261501032","jobType": "HOURLY","weeklyRetainerBudget": null,"hourlyBudgetMax": "85.0","hourlyBudgetMin": "40.0","hourlyEngagementType": "PART_TIME","contractorTier": "ExpertLevel","sourcingTimestamp": null,"createTime": "2025-07-10T18:52:57.256Z","publishTime": "2025-07-10T18:52:57.892Z","fixedPriceAmount": null,"duration": "3 to 6 months","durationWeeks": 18,"durationDays": null,"relevancePosition": 1}
Enhanced Job Details (includeDetails: true)
Enable includeDetails to extract comprehensive information including:
- Client Information: Location, hiring history, total spent, feedback score
- Project Requirements: Preferred qualifications, languages, timezone preferences
- Similar Jobs: Related opportunities from the same client
- Engagement Details: Work arrangements, contract terms, team size
🔧 Use Cases
For Freelancers
- Automated Job Discovery: Set up scheduled runs to find new opportunities matching your skills
- Early Bird Advantage: Be among the first to apply to fresh job postings
- Market Rate Analysis: Track hourly rates and budgets in your niche
- Client Research: Analyze client hiring patterns before applying
For Agencies & Teams
- Multi-Category Tracking: Monitor jobs across different skill sets for your team
- Opportunity Matching: Automatically match team members with suitable projects
- Competitive Intelligence: Understand market demand and pricing trends
- Lead Generation: Identify high-value clients with consistent hiring needs
For Market Research
- Freelance Economy Insights: Track trends in remote work and gig economy
- Skills Demand Analysis: Identify emerging technologies and in-demand skills
- Geographic Trends: Analyze hiring patterns by location and timezone
- Budget Distribution: Understand project value ranges across categories
📚 API Usage Examples
JavaScript/Node.js
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "YOUR_API_TOKEN" });const input = {search_urls: ["https://www.upwork.com/nx/search/jobs/?q=react%20developer"],limit: 100,includeDetails: true,};const run = await client.actor("YOUR_ACTOR_ID").call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')input_data = {'search_urls': ['https://www.upwork.com/nx/search/jobs/?q=python%20developer'],'limit': 100,'includeDetails': True}run = client.actor('YOUR_ACTOR_ID').call(run_input=input_data)items = client.dataset(run['defaultDatasetId']).list_items().items
💡 Pro Tips
- Optimize Your Searches: Use Upwork's advanced filters in the browser, then copy the URL
- Nothing to Configure: Proxies and anti-blocking are built in, so large searches need no extra setup
- Fresh Data: Sort by "recency" to get the newest job postings first
- Detailed Insights: Enable
includeDetailsfor comprehensive market analysis - Efficient Filtering: Use search URLs to leverage Upwork's native filtering logic
📈 Start Scraping Upwork Jobs Today
Ready to automate your Upwork job search or conduct market research? This Upwork scraper provides the most reliable and comprehensive data extraction available.
👉 Try the best upwork.com scraper now for free on Apify
Keywords: Upwork scraper, Upwork job scraper, scrape Upwork jobs, Upwork data extraction, freelance job automation, Upwork API alternative, extract Upwork listings, Upwork job search automation, Upwork market analysis, freelance opportunity tracker