Upwork Job Scraper avatar

Upwork Job Scraper

Pricing

from $1.00 / 1,000 jobs

Go to Apify Store
Upwork Job Scraper

Upwork Job Scraper

Automatically and efficiently scrape Upwork.com job listings.

Pricing

from $1.00 / 1,000 jobs

Rating

4.1

(3)

Developer

delta spider

delta spider

Maintained by Community

Actor 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

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:

ParameterDescriptionDefault
search_urlsArray of Upwork search URLs to scrapeempty
limitMaximum jobs to extract per search100
includeDetailsGet 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
}
FilterDescriptionAccepted values
userQuerySearch keywordsAny text
sortResult orderrecency (default), relevance+desc
categoryCategory or subcategoryPick from the dropdown in the input UI (76 options)
contractorTierExperience levelEntryLevel, IntermediateLevel, ExpertLevel
durationV3Project lengthweek (under 1 month), month (1 to 3 months), semester (3 to 6 months), ongoing (over 6 months)
jobTypeJob typehourly, fixed
hourlyRateMin, hourlyRateMaxHourly rate range in USDNumbers, either side optional
budgetFixed-price budget0-99, 100-499, 500-999, 1000-4999, 5000-
fixedPriceMin, fixedPriceMaxCustom fixed-price range in USDNumbers, either side optional. Ignored when budget is set
clientHiresClient history0 (no hires), 1-9, 10- (10 or more)
workloadHours per weekas_needed (less than 30 hrs/week), full_time (more than 30 hrs/week)
contractToHireOnly contract-to-hire rolestrue
locationClient locationPick from the dropdown: Upwork's own regions, subregions and countries, for example United States, Western Europe
timezoneClient time zonePick 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_urls contains 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 jobType yourself, 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 getPricePer 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 ApifyClient
client = 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

  1. Optimize Your Searches: Use Upwork's advanced filters in the browser, then copy the URL
  2. Nothing to Configure: Proxies and anti-blocking are built in, so large searches need no extra setup
  3. Fresh Data: Sort by "recency" to get the newest job postings first
  4. Detailed Insights: Enable includeDetails for comprehensive market analysis
  5. 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