Upwork API

Find freelance jobs and public talent profiles to compare hiring demand, rates, skills and work histories.

Search job opportunities and freelancer profiles separately; a job result is not a record of a candidate’s proposal.

Platform availability

24h health
Normal
Normal

Last 30 days

Available capabilities

Each Upwork action, what it does, its price and its health over the last 24 hours. Open an action for its parameters, response fields and code samples.

CapabilityWhat it doesPer 1,00024-hour health
SearchsearchFind Upwork job posts for a skill, with budget or hourly range, experience level, proposal count and the client's spend, rating and payment verification.$1.39 per 1,000 requestsNormal
FreelancersfreelancersSearch Upwork freelancers by skill for hourly rate, Job Success Score, earnings, jobs completed, Top Rated badges and an availability flag.$1.39 per 1,000 requestsNormal

Open a capability for its parameters, response fields, code samples and trial.

What does each Upwork action accept?

Each answer below pairs one callable action with its real inputs. Parameter meanings and allowed values are action-specific; a familiar name does not carry the same meaning across every platform.

Official sources are linked only to clarify the platform term beside them. They do not imply platform authorization or endorsement, and they do not add official-site features to the EveryInfra API contract.

ActionRequiredOptionalDeliveryLimitPer 1,000Response fields
search

Search

Find Upwork job posts for a skill, with budget or hourly range, experience level, proposal count and the client's spend, rating and payment verification. Filter by job_type, experience_level or posting dates; no proposals are submitted and no award is implied.

keywordexclude_keywords, experience_level, job_type, since, sort, untilSync deliveryCatalog values: defaultLimit=20, maxLimit=100. A limit can control pages or per-parent expansion for some actions, so it is not always a final row count.$1.39 per 1,000 requestsid · url · title · text · budget · budget_currency · hourly_rate_min · hourly_rate_max · job_type · experience_level · engagement_type · duration · proposals · persons_to_hire · posted_at · tags · client_name · client_location · client_rating · client_review_count · client_total_spent · client_hire_rate · client_avg_hourly_rate · payment_verified · email · emails · phone · platform
freelancers

Freelancers

Search Upwork freelancers by skill for hourly rate, Job Success Score, earnings, jobs completed, Top Rated badges and an availability flag. region takes a continent such as europe, not a country code, and top_rated must be a real boolean.

keywordregion, top_ratedSync deliveryCatalog values: defaultLimit=10, maxLimit=200. A limit can control pages or per-parent expansion for some actions, so it is not always a final row count.$1.39 per 1,000 requestsid · url · name · title · text · location · region · timezone · hourly_rate · currency · job_success_score · total_earnings · total_jobs · total_hours · total_hourly_jobs · total_fixed_jobs · is_top_rated · is_top_rated_plus · is_vetted · is_available · skills · image_url · platform

What do the Upwork search parameters mean?

Find Upwork job posts for a skill, with budget or hourly range, experience level, proposal count and the client's spend, rating and payment verification. Filter by job_type, experience_level or posting dates; no proposals are submitted and no award is implied.

Full API reference: parameters, code samples, response example and health →
keywordRequired
Searches for outsourcing jobs in search and talent in freelancers. The same skill term maps to client demand and freelancer profiles across the two actions.
exclude_keywordsOptional
Job keywords to exclude in search, rather than a talent blacklist or minimum skill requirement.
experience_levelOptional
Filters jobs by experience level: entry_level, intermediate_level, or expert_level.
Allowed values:entry_levelexpert_levelintermediate_level
job_typeOptional
Contract billing type for search: hourly or fixed_price, rather than full-time or part-time.
Allowed values:fixed_pricehourly
Upwork: Hourly versus fixed-price contracts — Upwork distinguishes hourly billing contracts from fixed-price contracts based on overall project scope or milestones. The job_type parameter in this action categorizes jobs; it does not provide official platform features such as time logging, escrow payments, or milestone management. · Checked
sinceOptional
Job posting date start point for search, rather than the employer registration date.
sortOptional
Job sorting order for search: newest, oldest, or relevance. oldest is not guaranteed to take effect in every case.
Allowed values:newestoldestrelevance
untilOptional
Job posting date end point for search, used in conjunction with since, rather than the contract end date.

What do the Upwork freelancers parameters mean?

Search Upwork freelancers by skill for hourly rate, Job Success Score, earnings, jobs completed, Top Rated badges and an availability flag. region takes a continent such as europe, not a country code, and top_rated must be a real boolean.

Full API reference: parameters, code samples, response example and health →
keywordRequired
Searches for outsourcing jobs in search and talent in freelancers. The same skill term maps to client demand and freelancer profiles across the two actions.
regionOptional
Filters talent by continent: africa, americas, asia, europe, or oceania. It accepts continent names, not country codes such as US.
Allowed values:africaamericasasiaeuropeoceania
top_ratedOptional
Boolean value (true or false) that defaults to no filter and controls whether the freelancers action returns only Top Rated talent. Do not pass the string "false", because non-empty strings evaluate to true.
Upwork: Job Success Score (JSS) versus talent badges — Upwork defines JSS as a performance metric combining client satisfaction, contract outcomes, and long-term relationships, using it as one condition for certain talent badges. JSS is distinct from star ratings, and the Top Rated designation or `top_rated` parameter does not guarantee project quality. · Checked

How to use the Upwork API

  1. 01Read the public catalog and choose a platform action.
  2. 02Send the platform, action, and required parameters to POST /api/v1/social.
  3. 03Handle a synchronous result, or poll the returned job ID when the action runs asynchronously.
  4. 04Store the structured response fields needed by your application.
upwork_search.sh
curl -X POST https://api.everyinfra.com/api/v1/social \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"platform":"upwork","action":"search","params":{"keyword":"<keyword>"}}'

Upwork API questions

What can I retrieve with the Upwork API?

Set platform to upwork. The current catalog lists search and freelancers. These action names identify different Upwork objects or views; they are not interchangeable search modes.

Which input starts a Upwork `search` request?

Searches for outsourcing jobs in search and talent in freelancers. The same skill term maps to client demand and freelancer profiles across the two actions. Send it as keyword inside params.

Which fields can Upwork `search` return?

Its declared schema includes title, text, budget, and budget_currency. A declared field can still be absent from an individual record, and every other action has its own field list.

Does every Upwork action return immediately?

Actions labeled asynchronous return a job ID you poll. Every other action can also run asynchronously: add "mode": "async" to the request body to receive a job ID immediately, useful for slow tasks or large limits. The current catalog contains sync delivery.