Skip to content
Docs

Upwork

Freelance job posts with budget, skills and client history.Upwork's public job search, 10 jobs a page with payment type, budget or hourly range, contractor tier, skills and the client block, and one job in full with its category, workload and how many people have applied, been interviewed or hired.
Look up by
Keywords, or an Upwork search URL; a ciphertext or job link for one job
Coverage
Worldwide, budgets in USD
Cost
2 credits a call; failed and empty calls are free
Endpoints
2 endpoints
  • Search
  • Details

Endpoints

Example

Upwork jobs search, with POST /v1/upwork/jobs. Set SCRAPERCOMPANY_API_KEY to your key and run it; the full parameter list is in the API reference.

curl -X POST "https://api.scrapercompany.com/v1/upwork/jobs" \
  -H "x-api-key: $SCRAPERCOMPANY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "job_types": [
      "fixed"
    ],
    "min_fixed_budget": 200,
    "query": "web scraping"
  }'
200 response
{
  "search_parameters": {
    "engine": "upwork_jobs",
    "query": "python",
    "page": 1,
    "sort": "recency",
    "source_url": "https://www.upwork.com/nx/search/jobs/?q=python&sort=recency"
  },
  "jobs_results": [
    {
      "job_id": "2118540488998101506",
      "ciphertext": "~022118540488998101506",
      "title": "Python Pipeline Data Engineer: Build Sports Analytics Database & API (Punting Form Data)",
      "description": "I am looking for an expert Backend Data Engineer to design and build a private, cloud-hosted data harvesting pipeline and relational database model for a custom sports analytics platform.",
      "url": "https://www.upwork.com/freelance-jobs/apply/~022118540488998101506/",
      "type": "hourly",
      "hourly_min": 50,
      "hourly_max": 90,
      "tier": "expert",
      "duration_label": "1 to 3 months",
      "engagement": "part_time",
      "skills": [
        "Python"
      ],
      "published_at": "2026-11-06T06:55:17.989Z",
      "created_at": "2026-11-06T03:06:28.280Z",
      "client_payment_verified": false
    }
  ],
  "total": 1732,
  "total_on_page": 1,
  "next_page": 2,
  "meta": {
    "source": "upwork",
    "elapsed_s": 1.32
  }
}
Arrays are shortened to their first item.

Try it on your key

Good to know

  • Give a query or a search URL, not both. One job-type or experience level is applied by Upwork; several values, a minimum fixed budget and a maximum age filter the page that was fetched, so it can return fewer than 10 jobs.
  • Search rows carry the skills. The job page leaves skills empty.
  • An empty page and an unknown or closed job are free.

Guides

Job postings from job boards and from companies’ own careers pages.

Or browse every data source.

Industry pages built on this source: Job scraping API.

Questions about this page?

Send the page link and your question, and the team will answer.

Email support