Upwork Scraping

Upwork Job Search API

POST /v1/upwork/search-jobs

Use this endpoint to search Upwork job listings with structured filters instead of manually scraping result pages.

#Request Example

curl -X POST /v1/upwork/search-jobs \
  -H "Authorization: Bearer your-token" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "laravel",
    "type": "hourly,fixed",
    "difficulty": "intermediate,expert",
    "min_hourly_rate": 25,
    "max_hourly_rate": 100
  }'

#Request Body

{
  "query": "laravel",
  "type": "hourly,fixed",
  "difficulty": "intermediate,expert",
  "min_hourly_rate": 25,
  "max_hourly_rate": 100
}

#Pricing

  • 4 credits

Credits are only deducted for successful requests.

#Common Filters

  • query or q
  • page
  • sort
  • type
  • difficulty
  • duration
  • hours_per_week
  • client_hires
  • min_hourly_rate and max_hourly_rate
  • min_fixed_budget and max_fixed_budget

#Example Response

{
  "response": [
    {
      "title": "Laravel Developer Needed",
      "time": "3 hours ago",
      "info": "Fixed-price - 1 to 3 months - USD 750",
      "description": "Build a REST API using Laravel",
      "skills": ["PHP", "Laravel"],
      "url": "https://www.upwork.com/jobs/~abc123"
    }
  ]
}

#Notes

  • validation errors do not deduct credits
  • empty result sets can return a success response with a no-results message
  • search requests are charged only when the request succeeds