DEV Community

Black Falcon Data
Black Falcon Data

Posted on Edited on

Upwork API output: the complete field reference

The Upwork API produces 55 fields per record. Below is the complete field list, what each group contains, and which values may come back empty. The sales pitch waits until the end.

These are the fields returned by our own Upwork Actor, along with its cost and limits.

Every field

Each row contains 55 fields, organized into these groups:

  • client — clientCountry, clientCountryCode, clientTotalSpent, clientSpentCurrency, clientPaymentVerified, clientRating, clientReviewCount, clientHasFinancialPrivacy
  • salary — salaryMin, salaryMax, salaryCurrency, salaryType
  • description — description, descriptionHtml, descriptionMarkdown
  • engagement — engagementType, engagementDuration, engagementDurationWeeks
  • extracted — extractedEmails, extractedPhones, extractedUrls
  • contact — contactName, contactEmail, contactPhone
  • job — jobId, jobType
  • budget — budgetAmount, budgetCurrency
  • hourly — hourlyBudgetMin, hourlyBudgetMax
  • skills — skills, skillsDetailed
  • repost — repostOfId, repostDetectedAt

Here are the leading fields from an actual run:

{
 "jobId": "2091766535816529594",
 "title": "B2B: Company Enrichment",
 "description": "Required data\n\nFor each company, provide:\n\n1. **Company Website**\n2. **LinkedIn Company...",
 "descriptionHtml": null,
 "descriptionMarkdown": "Required data\n\nFor each company, provide:\n\n1. **Company Website**\n2. **LinkedIn Company...",
 "contentHash": "7aee12807e5bf8bb0f107e537b987cc0aa9b655f611cf4117d02d1802cd6f3af",
 "jobType": "FIXED",
 "experienceLevel": "ExpertLevel",
 "budgetAmount": 100,
 "budgetCurrency": "USD",
 "hourlyBudgetMin": null,
 "hourlyBudgetMax": null,
 "weeklyRetainerBudget": null,
 "salaryMin": 100
}
Enter fullscreen mode Exit fullscreen mode

Filters that narrow a run

The input accepts 55 options, including query, searchUrl, jobType, experienceLevel, workload, sort, category, location, excludeLocations, budget, hourlyRate, duration, verifiedPaymentOnly, proposals, contractToHire, clientHires, includeKeywords, excludeKeywords, fromDate, toDate, and more.

These filters run server-side. You pay only for the records requested, instead of producing a larger set and filtering it afterwards.

What it costs

Pricing is per event, with no subscription:

  • $0.001 per actor start
  • $0.001 per result

One measured run—not an estimate—produced:

  • 25 records in 5.1 seconds
  • cost: $0.00028 — about $0.01 per 1,000 records

What people use it for

  • Benchmarking. Pricing and salary fields support comparisons across the entire set instead of a page of results.
  • Reputation monitoring. Tracking ratings and review text over time reveals movement that one page view cannot.
  • Geographic analysis. Location fields allow market-by-market comparisons without another data source.

Limits

  • An empty field means the source showed nothing. Values are never inferred or filled from another source.
  • The schema follows Upwork's markup, so a redesign can add, rename or drop fields.
  • Anything Upwork places behind a login is absent from every field below, by design.

Questions people ask

Are all fields always populated?

No. They are not guessed, either. When the source leaves a field blank, the result stays blank. An empty value means Upwork did not show one, not that extraction failed.

Which markets does it cover?

location narrows the run before records are produced. You pay for the requested market instead of filtering the results afterwards.

Which filters are applied at the source?

jobType, category, fromDate, toDate run server-side. That affects cost as well as convenience: filtered-out records are never produced and therefore never billed.

How fresh is the data?

Every run reads Upwork when it runs, with no cached copy in between. Two runs a week apart provide two snapshots, making change detection possible.

Can I fetch only what changed?

Yes. incrementalMode exists for that purpose. Without it, another run returns the full set, and you dedupe it on your side.

Is there an official Upwork export?

No. There is no public bulk export or API, so the field list above comes from parsing pages, not a documented schema.

Try it

If these are the fields you need, the Upwork API, maintained against the live site produces them. New accounts receive $5 of free platform credit each month—enough to cover a real run of this size several times over.

Disclosure: we build and maintain this Actor, and the link above is an affiliate link.

Further reading


We also publish the full Upwork API reference on blackfalcondata.com — the request, the response, and what a run costs.

Top comments (0)