Discover/upwork.com API
live

upwork.com APIupwork.com

Search Upwork freelancers by keyword. Returns profiles with hourly rates, job success scores, skills, location, and earnings data via a single endpoint.

Endpoints
1
Updated
2mo ago
Try it
Page number (1-based)
Search keyword(s) to find freelancers
Number of results per page (1-50)
api.parse.bot/scraper/59193041-dabe-405d-8d1b-570a0b3a553e/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Use it in your codegrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/59193041-dabe-405d-8d1b-570a0b3a553e/search_freelancers?page=1&query=react+developer&per_page=3' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 1 totalclick to expand

Search for freelancers on Upwork by keyword query. Returns paginated results with detailed profile information including skills, hourly rate, job success score, location, and earnings.

Input
ParamTypeDescription
pageintegerPage number (1-based)
querystringSearch keyword(s) to find freelancers
per_pageintegerNumber of results per page (1-50)
Response
{
  "type": "object",
  "fields": {
    "page": "integer - current page number",
    "query": "string - the search query used",
    "per_page": "integer - results per page",
    "freelancers": "array of freelancer objects with name, title, description, profile_url, hourly_rate, currency, country, city, skills, job_success_score, total_earnings, and more",
    "total_pages": "integer - total number of pages",
    "results_count": "integer - number of results returned on this page",
    "total_results": "integer - total matching freelancers"
  },
  "sample": {
    "data": {
      "page": 1,
      "query": "react developer",
      "per_page": 3,
      "freelancers": [
        {
          "city": "Lviv",
          "name": "Yurij M.",
          "state": "Lviv",
          "title": "React Developer Frontend React Full Stack Developer React Node SaaS",
          "skills": [
            "React",
            "Node.js",
            "JavaScript"
          ],
          "vetted": false,
          "country": "Ukraine",
          "currency": "USD",
          "hide_jss": false,
          "timezone": "UTC+02:00 Israel",
          "top_rated": "top_rated",
          "ciphertext": "~01dc05c3dd4817bee4",
          "description": "Senior Full Stack Developer...",
          "hourly_rate": "35.0",
          "id_verified": false,
          "profile_url": "https://upwork.com/freelancers/~01dc05c3dd4817bee4",
          "total_hours": 5320.17,
          "portrait_url": "https://www.upwork.com/profile-portraits/c1GyxylmbwyRDMzLnTieLbYbtAhDZRD3HTLPFtGFsI0jm3I4sQrbMr8LV3iqXfkiq1",
          "hide_earnings": false,
          "top_rated_plus": "top_rated_plus",
          "total_earnings": 0,
          "job_success_score": 1,
          "total_completed_jobs": 7
        }
      ],
      "total_pages": 3334,
      "results_count": 3,
      "total_results": 138359
    },
    "status": "success"
  }
}

About the upwork.com API

The Upwork API exposes one endpoint — search_freelancers — that returns up to 50 freelancer profiles per page across 17 structured fields including hourly rate, currency, job success score, skills array, city, country, and total results count. Pass any keyword or skill term to retrieve paginated, ranked freelancer listings directly from Upwork's marketplace.

What the API Returns

The search_freelancers endpoint accepts a query string (skill name, job title, or any keyword) and returns an array of freelancer objects. Each object includes name, title, a short description, a direct profile_url, hourly_rate with currency, country and city for location, a skills array listing the freelancer's tagged competencies, and a job_success_score reflecting their historical client rating on the platform.

Pagination

Results are paginated using page (1-based integer) and per_page (1–50). The response also returns total_results (total matching freelancers for the query), total_pages, and results_count (records returned in the current page). This lets you walk through large result sets or build an interface that shows ranked candidates across multiple pages.

Data Coverage and Freshness

The API reflects Upwork's public freelancer marketplace. Profiles with private or restricted visibility on Upwork may not appear in results. Fields like hourly_rate and job_success_score correspond to what the freelancer has publicly set or earned on the platform at the time of the request. Availability status and recent activity are not included in the current response shape.

Common use cases
  • Build a vendor sourcing tool that queries freelancers by skill and compares hourly rates across locations
  • Aggregate job success scores to rank candidates programmatically before manual review
  • Enrich a recruiter CRM with Upwork profile URLs, titles, and skills arrays pulled by keyword
  • Generate a market-rate report by querying multiple skill keywords and averaging returned hourly_rate values
  • Monitor how many freelancers list a given emerging skill using the total_results count across queries
  • Power an internal talent finder that lets non-technical staff search Upwork without accessing the site directly
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000250 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Upwork have an official developer API?+
Yes. Upwork offers an official API at https://developers.upwork.com. It requires OAuth 2.0 and application approval, which can take time. This Parse API provides immediate access to freelancer search data without an approval process.
What does the job_success_score field represent?+
It reflects the freelancer's publicly displayed Job Success Score on Upwork — a percentage calculated from client feedback, contract outcomes, and repeat engagements. Not every profile displays a score; for newer freelancers with limited history the field may be absent or null.
Can I filter results by hourly rate range, location, or specific skills?+
The current endpoint accepts only a free-text query string for filtering. Results reflect Upwork's default relevance ranking for that query. Filtering by hourly_rate range, specific country, or skills subset is not available in the current API. You can fork the API on Parse and revise it to add filter parameters targeting those fields.
Are freelancer earnings or total contract history included?+
The response includes profile-level data such as hourly_rate, job_success_score, and skills. Detailed earnings history, total contract value, or individual client review text are not currently returned. You can fork the API on Parse and revise it to add a profile-detail endpoint that exposes deeper earnings and review data.
How many results can I retrieve per request and is there a cap on total pages?+
per_page accepts values from 1 to 50. The total_pages and total_results fields in each response tell you the full scope of available results for a given query. Deep pagination into very large result sets may return fewer unique profiles as Upwork's public-facing search typically surfaces the most relevant candidates in earlier pages.
Page content last updated . Spec covers 1 endpoint from upwork.com.
Related APIs in MarketplaceSee all →
lowes.com API
Search and browse products from Lowe's, including product listings by category, detailed product information, and pricing. Retrieve comprehensive details on specific items to compare options and make informed purchasing decisions.
bigbasket.com API
Browse and search BigBasket's online grocery catalog. Retrieve product details, pricing, stock availability, category trees, search suggestions, homepage promotions, and delivery coverage — all in one API.
jula.fi API
Search and browse products from Jula.fi to find hardware items with detailed information including prices (with and without VAT), stock availability, brand details, and product SKUs. Explore products by category or search for specific items to compare pricing and check real-time stock status.
carsforsale.com API
Search vehicle listings and browse detailed car inventory by make, model, and trim to find the perfect vehicle on CarsForSale.com. Access comprehensive listing details including pricing, specifications, and availability all in one place.
zapimoveis.com.br API
Search and filter real estate listings across Brazil on ZAP Imóveis — the country's largest property portal. Retrieve listings for sale or rent with detailed attributes including price, location, size, bedrooms, bathrooms, parking, and amenities. Supports location autocomplete, property type discovery, and full listing detail retrieval.
leroymerlin.fr API
Search and browse Leroy Merlin France's complete product catalog to find items by category, view pricing, product details, and compare offerings from Leroy Merlin and their online partners. Access real-time product information including names, IDs, URLs, and seller details to help you discover and evaluate home improvement and DIY products.
industrynet.com API
Find industrial suppliers and browse product categories across a comprehensive marketplace directory. Connect directly with suppliers by viewing detailed listings and submitting contact inquiries programmatically.
bilbasen.dk API
Search Denmark's largest car marketplace to find vehicles by make and model, then access detailed pricing and technical specifications including emissions, weight, MSRP, battery size, and equipment details. Get comprehensive car listings and full specs to compare vehicles on Bilbasen.dk.
Upwork Freelancer Search API · Parse