Discover/Upwork API
live

Upwork APIupwork.com

Search Upwork freelancers and job postings via API. Get skills, hourly rates, job success scores, budgets, experience levels, and more in structured JSON.

This API takes change requests — .
Endpoint health
verified 1d ago
search_freelancers
search_jobs
2/2 passing latest checkself-healing
Endpoints
2
Updated
8d ago

What is the Upwork API?

The Upwork API provides two endpoints — search_freelancers and search_jobs — covering Upwork's full talent marketplace and job board. A single search_freelancers call returns up to 50 freelancer profiles per page, each with hourly rate, currency, job success score, country, city, and earnings data. search_jobs returns structured job postings with budget type, experience level, duration, and required skills.

This call costs5 credits / call— charged only on success
Try it
Page number (1-based)
Search keyword(s) to find freelancers by title, description, or skills
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.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/59193041-dabe-405d-8d1b-570a0b3a553e/search_freelancers?page=1&query=python+developer&per_page=5' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 2 totalmissing one? ·

Full-text search over Upwork's freelancer talent pool. Returns paginated results with detailed profile information including skills, hourly rate, job success score, location, and earnings. Pagination via integer page counter; each page returns up to per_page results. The query matches freelancer titles, descriptions, and skills.

Input
ParamTypeDescription
pageintegerPage number (1-based)
querystringSearch keyword(s) to find freelancers by title, description, or skills
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, portrait_url, hourly_rate, currency, country, city, state, timezone, skills, job_success_score, top_rated, top_rated_plus, total_hours, total_earnings, total_completed_jobs, vetted, id_verified, hide_earnings, hide_jss, ciphertext",
    "total_pages": "integer - total number of pages available",
    "results_count": "integer - number of freelancer results returned on this page",
    "total_results": "integer - total matching freelancers"
  }
}

About the Upwork API

Freelancer Search

The search_freelancers endpoint accepts a free-text query parameter and returns paginated freelancer profiles from Upwork's talent pool. Each result object includes name, title, description, profile_url, portrait_url, hourly_rate, currency, country, city, state, and a job success score. Pagination is controlled by page (1-based integer) and per_page (1–50). The response envelope also carries total_results and total_pages so you can walk the full result set programmatically.

Job Posting Search

The search_jobs endpoint takes the same query, page, and per_page parameters and returns an array of job objects. Each job carries a uid, ciphertext, title, url, posted_date, budget_type, budget, experience_level, duration, and a description snippet. The response envelope mirrors the freelancer search, including total_results, total_pages, and results_count for the current page.

Pagination and Coverage

Both endpoints share the same pagination model: integer page counter starting at 1, with a maximum of 50 results per page via per_page. total_results reflects Upwork's count of matching records for the query, allowing clients to compute how many additional requests are needed to retrieve the full result set. Queries can target job titles, skill keywords, or descriptive phrases on both endpoints.

Reliability & maintenanceVerified

The Upwork API is a managed, monitored endpoint for upwork.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when upwork.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official upwork.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
1d ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Aggregate freelancer hourly rates by skill keyword to benchmark contractor pricing
  • Monitor new Upwork job postings by keyword to surface leads for freelancers or agencies
  • Compare job success scores and earnings across freelancers in a given specialty
  • Build a talent-sourcing tool that filters Upwork freelancers by location and rate
  • Track budget distributions (hourly vs. fixed-price) across a category of job postings
  • Pull freelancer profile URLs and portraits for a curated directory or comparison tool
  • Analyze experience level and duration trends across Upwork job postings in a niche
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. 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 publishes an official API at https://developers.upwork.com. It requires OAuth 2.0 and approval from Upwork. The Parse API provides structured access to freelancer and job search data without requiring an approved Upwork developer account.
What does the search_freelancers endpoint return beyond basic profile info?+
Each freelancer object includes hourly_rate, currency, country, city, state, a job success score, and an earnings figure alongside name, title, description, profile_url, and portrait_url. The response envelope provides total_results and total_pages for pagination.
Can I retrieve individual freelancer or job details by ID rather than keyword search?+
Not currently. The API covers keyword-based search across both freelancers and jobs; it does not expose a lookup endpoint that takes a specific freelancer ID or job UID and returns a full detail page. You can fork it on Parse and revise to add the missing endpoint.
Does the API return client profiles or client history attached to job postings?+
Not currently. Job objects include title, budget, experience level, duration, description, and posting date, but client profile data such as hire rate, total spend, or review history is not part of the current response shape. You can fork it on Parse and revise to add the missing endpoint.
How does pagination work across large result sets?+
Both endpoints use a 1-based integer page parameter and a per_page parameter capped at 50. The response always includes total_results and total_pages, so you can iterate through the full result set by incrementing page until you reach total_pages.
Page content last updated . Spec covers 2 endpoints from upwork.com.
Related APIs in JobsSee all →
Workday Jobs API
Search and retrieve job postings and detailed descriptions from any company's Workday career site. Find open positions across all organizations using Workday's hiring platform and access complete job details in one place.
freelancer.de API
Search and discover freelancers on freelancer.de by their skills and expertise, then view detailed profiles with ratings, experience metrics, and portfolio information. Find the perfect freelancer for your project by browsing skill sets and comparing professional backgrounds all in one place.
indeed.com API
Search and discover job opportunities on Indeed while accessing detailed job descriptions, company profiles, and salary insights all in one place. Get comprehensive career information including specific compensation data to help you find and evaluate the right job opportunity for you.
totaljobs.com API
Search and browse job listings from across the UK on TotalJobs, then access detailed information about specific positions including requirements, salary, and application details. Quickly compare opportunities and find roles that match your criteria.
monster.com API
Search and retrieve job listings from Monster.com. Supports keyword and location-based search with structured results including job descriptions, salary ranges, company info, and employment details. Also provides access to popular job categories.
workingnomads.com API
Search and filter remote job listings from Working Nomads to find digital nomad-friendly positions tailored to your location, job category, and experience level. Discover opportunities across various remote roles and companies that actively hire location-independent workers.
nofluffjobs.com API
Search and filter job openings from No Fluff Jobs by category, seniority level, location, and keywords to find IT, marketing, sales, and HR positions tailored to your needs. Retrieve detailed information about specific job postings including requirements, company details, and employment terms to help you make informed application decisions.
wayup.com API
Search and filter college-focused job and internship listings from WayUp by category, job type, and location. Access detailed information about specific listings, including job descriptions, qualifications, company info, and posting dates.