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

323

Total users

13

Monthly active users

12 hours 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.

Only new jobs and job age

Two options work with both search URLs and custom filters:

OptionWhat it doesDefault
onlyNewJobsSkips jobs that earlier runs of the same search already deliveredfalse
maxJobAgeHoursOnly jobs posted within this many hours, for example 24empty
{
"search_urls": ["https://www.upwork.com/nx/search/jobs/?q=javascript"],
"limit": 100,
"onlyNewJobs": true
}
  • Made for schedules. Run the search every hour with onlyNewJobs and each run delivers only jobs posted since the last one. The first run delivers up to limit jobs as usual.
  • You pay only for new jobs. A run with nothing new delivers nothing and costs nothing.
  • Newest first. Both options sort results by newest, whatever the URL or sort says, and stop as soon as they reach jobs that are too old or already delivered.
  • Same search, same memory. A search is remembered by its keywords and filters. Changing a filter starts a new search; changing limit or includeDetails does not.
  • Where it is stored. Delivered job IDs are kept in your own Apify account, in the key-value store upwork-job-scraper-state. Delete the store to start over.

๐Ÿ’ฐ 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: Schedule the search with onlyNewJobs to get new postings without repeats from earlier runs
  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