scraper
Back to API docs

Overview

  • Overview

APIs

  • POSTJobs
  • POSTJob Detail

Upwork Jobs

1 credit

Search public Upwork jobs with typed filters or a supported search URL.

POST/api/v1/tools/upwork/jobs

Parameters

keywordstring

Simple search text with 1 to 200 characters. Do not combine it with Advanced Search text fields.

allWordsstring

Advanced Search text with 1 to 200 characters. Results must include all words.

anyWordsstring

Advanced Search text with 1 to 200 characters. Results must include at least one word.

excludedWordsstring

Advanced Search text with 1 to 200 characters. Results exclude these words.

exactPhrasestring

Advanced Search phrase with 1 to 200 characters that results must contain.

titleWordsstring

Advanced Search text with 1 to 200 characters that must be in the title.

searchUrlstring

Supported public https://www.upwork.com/nx/search/jobs URL, at most 2,048 characters. In this mode, only maxItems and fetchDetails are also accepted.

skillIdsstring[]

One to 50 public Upwork skill IDs. Each ID has 6 to 30 digits.

categoryIdsstring[]

One to 12 public Upwork category IDs. Each ID has 6 to 30 digits.

subcategoryIdsstring[]

One to 50 public Upwork subcategory IDs. Each ID has 6 to 30 digits.

jobTypesstring[]

One or both of hourly and fixed.

hourlyRateMinnumber

Minimum hourly rate from 0 to 99,999.

hourlyRateMaxnumber

Maximum hourly rate from 0 to 100,000. Must be greater than the minimum.

fixedPriceRangesstring[]

Ranges: 0-99, 100-499, 500-999, 1000-4999, or 5000-.

fixedPriceMinnumber

Minimum custom fixed price from 0 to 99,999.

fixedPriceMaxnumber

Maximum custom fixed price from 0 to 100,000. Must exceed the minimum.

experienceLevelsstring[]

One or more of entry, intermediate, and expert.

clientHistorystring[]

Client hire history: 0, 1-9, or 10-.

clientLocationsstring[]

One to 50 public Upwork client locations. Each value has at most 100 characters.

clientTimezonesstring[]

One to 50 public Upwork timezones. Each value has at most 100 characters.

projectLengthsstring[]

Hourly project length: week, month, semester, or ongoing.

hoursPerWeekstring[]

Hourly workload: as_needed or full_time.

contractToHireboolean

Return contract-to-hire jobs. Defaults to false.

pageSizenumber

Generated search page size: 10, 20, or 50. Defaults to 10.

sortstring

Generated search order: relevance or recency. Defaults to relevance.

maxItemsnumber

Maximum jobs to return. Integer from 1 to 100. When fetchDetails is true, the maximum is 10. Defaults to 10.

fetchDetailsboolean

Fetch full details for each returned job. Defaults to false.

Response Schema

dataobject

Upwork job search result

jobsobject[]

Stable Upwork job records

countnumber

Jobs returned

estimatedTotalnumber | null

Source result estimate

truncatedboolean

Whether the result limit cut the result

partialboolean

Whether detail enrichment was partial

metaobject

Request metadata

toolstring

Tool name (upwork-jobs)

creditsUsednumber

Credits consumed (1)

requestIdstring

Unique request ID

Request

curl -X POST https://scraper.run/api/v1/tools/upwork/jobs \
-H "Authorization: Bearer sc_live_..." \
-H "Content-Type: application/json" \
-d '{
"keyword": "TypeScript developer",
"jobTypes": [
"hourly"
],
"hourlyRateMin": 25,
"hourlyRateMax": 75,
"experienceLevels": [
"intermediate",
"expert"
],
"clientLocations": [
"United States"
],
"sort": "recency",
"maxItems": 10
}'

Response Example

{
"data": {
"jobs": [
{
"id": "~02000000000000000009",
"title": "TypeScript API developer",
"url": "https://www.upwork.com/jobs/TypeScript-API-developer_~02000000000000000009/",
"postedText": "Posted 2 hours ago",
"description": {
"snippet": "Build and maintain a TypeScript API.",
"text": null,
"html": null
},
"locationEligibility": "Worldwide",
"contract": {
"type": "hourly",
"hourlyRate": {
"min": 35,
"max": 60,
"currency": "USD"
},
"fixedPrice": null,
"experienceLevel": "Intermediate",
"duration": "1 to 3 months",
"weeklyHours": "Less than 30 hrs/week"
},
"skills": [
"TypeScript",
"Node.js",
"REST API"
],
"meta": {
"detailStatus": "not_requested"
}
}
],
"count": 1,
"estimatedTotal": 80,
"truncated": true,
"partial": false
},
"meta": {
"tool": "upwork-jobs",
"creditsUsed": 1,
"requestId": "req_abc123"
}
}