API para Upwork: Vagas
Busque vagas no Upwork por palavra-chave, com até 25 vagas recentes por requisição.
Rede de provedores
Provedores ordenados por tráfego
com teto de US$ 0,0286 por requisição1 resultadoUS$ 0,002213 resultadosUS$ 0,015425 resultadosUS$ 0,0286 (teto)Você paga pelo que volta. Reduza o limite para pagar menos - e nenhuma requisição custa mais que o teto, não importa quanto volte.
Teste
Faça sua primeira requisição
{
"data": {
"items": [
{
"budget": "example",
"clientLocation": "example",
"clientRating": 4.6,
"clientReviewCount": 12500,
"clientTotalSpent": 12500,
"createdUtc": 12.5,
"currency": "USD",
"description": "A short example description of this item.",
"duration": "example",
"experienceLevel": "example",
"hourlyRateMax": 12.5,
"hourlyRateMin": 12.5,
"jobId": "a1b2c3d4",
"jobType": "general",
"paymentVerified": true,
"premium": true,
"proposals": 42,
"reposted": true,
"tags": [
"example"
],
"title": "Example title",
"url": "https://example.com/page"
}
]
},
"found": true,
"reason": "not_found"
}interface UpworkJobsResponse {
data: {
items: {
budget?: string;
clientLocation?: string;
clientRating?: number;
clientReviewCount?: number;
clientTotalSpent?: number;
createdUtc?: number;
currency?: string;
description?: string;
duration?: string;
experienceLevel?: string;
hourlyRateMax?: number;
hourlyRateMin?: number;
jobId: string;
jobType?: string;
paymentVerified?: boolean | null;
premium?: boolean | null;
proposals?: number;
reposted?: boolean | null;
tags?: string[] | null;
title: string;
url: string;
}[];
} | null;
found: boolean;
reason?: "not_found";
}Referência completa de parâmetros e resposta - todos os campos, tipos e exemplos deste endpoint.
Referência
Requisição, resposta e preço
Última verificação em 2026-09-29 · disponibilidade e latência medidas em 30dcurl -X POST https://api.getanyapi.com/v1/run/upwork.jobs \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"jobType":"fixed","limit":10,"query":"web developer"}'| Campo | Tipo | Valor de exemplo |
|---|---|---|
| Corpo da requisição | ||
| query | string | "web developer"Palavras-chave para buscar vagas no Upwork (ex.: react developer). |
| experienceLevel | enum | Filtra pelo nível de experiência exigido. |
| jobType | enum | "fixed"Filtra por tipo de pagamento: vagas de preço fixo ou por hora. |
| limit | integer | 10Número máximo de resultados a retornar (10-25, padrão 25). |
| location | string | Filtra pela localização do cliente: uma região, sub-região ou país (ex.: United States, Europe). |
| paymentVerified | boolean | Quando true, retorna apenas vagas de clientes com método de pagamento verificado. |
| requireFields | array | Opcional; se omitido, o roteamento não muda e a fonte mais barata atende. Informe os campos de saída que esta requisição precisa poder retornar, por exemplo `premium` ou `reposted`, e ela só será atendida por uma fonte que retorne todos eles. Os campos que você não informar continuam sendo retornados sempre que a fonte que atende os tiver. Isso pode aumentar o seu preço: quando a fonte mais barata não consegue retornar um campo informado, uma fonte mais cara atende, e você recebe a cotação e é cobrado pelo preço dela. Um campo informado ainda pode vir ausente em uma vaga que realmente não o tenha. Se você informar uma combinação de campos que nenhuma fonte retorna sozinha, a requisição é recusada como entrada inválida, sem cobrança. |
| sort | enum | Ordem das vagas: newest ou relevance (ex.: newest). |
| Resposta | ||
| data | object | Result payload, or null when nothing was found. |
| data.items | object[] | Job records: title, description, budget or hourly rate, required skills, posted date, and client details. Populated whenever the provider has data for the entity. |
| data.items[].budget | string | Fixed-price budget in USD (e.g. $4000). Absent on hourly jobs, which carry hourlyRateMin and hourlyRateMax. |
| data.items[].clientLocation | string | Client country or location. |
| data.items[].clientRating | number | Client average rating. |
| data.items[].clientReviewCount | integer | Number of reviews the client has received from past contracts. |
| data.items[].clientTotalSpent | number | Client lifetime spend (USD). |
| data.items[].createdUtc | number | UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. |
| data.items[].currency | string | ISO currency code the budget is quoted in (e.g. USD). |
| data.items[].description | string | Full job posting description text. Populated whenever the provider has data for the entity. |
| data.items[].duration | string | Expected engagement length as Upwork words it (e.g. "1 to 3 months"). |
| data.items[].experienceLevel | string | Required experience level (e.g. Entry, Intermediate, Expert). |
| data.items[].hourlyRateMax | number | Upper bound of the client's hourly rate range in USD. Absent on fixed-price jobs. |
| data.items[].hourlyRateMin | number | Lower bound of the client's hourly rate range in USD. Absent on fixed-price jobs. |
| data.items[].jobId | string | Upwork job identifier. Populated whenever the provider has data for the entity. |
| data.items[].jobType | string | Fixed or Hourly. |
| data.items[].paymentVerified | boolean | Whether the client's payment method is verified; null when Upwork reports it as unknown. |
| data.items[].premiumpode ser exigido | boolean | Whether Upwork flags the posting as premium. |
| data.items[].proposals | integer | Number of proposals submitted. |
| data.items[].repostedpode ser exigido | boolean | Whether the posting is a repost of an earlier job. |
| data.items[].tags | string[] | Skill tags. |
| data.items[].title | string | Job posting title. Populated whenever the provider has data for the entity. |
| data.items[].url | string | Upwork job posting URL. Populated whenever the provider has data for the entity. |
| found | boolean | Whether any jobs were found for the search. |
| reason | "not_found" | Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost. |
| Preço | ||
| Preço por requisição | USD | US$ 0,007 |
| Preço /mil req. | USD | US$ 7,00 |
Dúvidas frequentes
Sobre o endpoint Vagas da API para Upwork
O endpoint Vagas da AnyAPI para Upwork retorna dados de Upwork em JSON normalizado com uma chamada POST para /v1/run/upwork.jobs. Busque vagas no Upwork por palavra-chave, com até 25 vagas recentes por requisição. A AnyAPI distribui cada requisição entre 2 fontes, com failover automático quando uma falha. Custa a partir de US$ 7 por mil requisições, em dólares, sem assinatura e sem mínimo mensal. Nos últimos 30 dias, 100,0% das chamadas ao endpoint Vagas da API para Upwork feitas pela AnyAPI tiveram sucesso, com tempo de resposta mediano de 5,9 segundos, em 731 chamadas medidas.