API para Upwork

API para Upwork: Vagas

Busque vagas no Upwork por palavra-chave, com até 25 vagas recentes por requisição.

POST/v1/run/upwork.jobs
Disponibilidade
100,00%
30d · 731 chamadas
Requisições
731
30d · semanal, últimas 12 sem.
Resposta
5,9s
mediana · 30d

Teste

Faça sua primeira requisição

requireFieldsarray
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.
Abrir em
Obter chave grátis
Resposta de exemplo
Execuções grátis retornam só os primeiros 3 resultados. Recarregue uma chave para receber a resposta completa.
{
  "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 da resposta
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 30d
POST /v1/run/upwork.jobs
curl -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"}'
CampoTipoValor de exemplo
Corpo da requisição
querystring"web developer"Palavras-chave para buscar vagas no Upwork (ex.: react developer).
experienceLevelenumFiltra pelo nível de experiência exigido.
jobTypeenum"fixed"Filtra por tipo de pagamento: vagas de preço fixo ou por hora.
limitinteger10Número máximo de resultados a retornar (10-25, padrão 25).
locationstringFiltra pela localização do cliente: uma região, sub-região ou país (ex.: United States, Europe).
paymentVerifiedbooleanQuando true, retorna apenas vagas de clientes com método de pagamento verificado.
requireFieldsarrayOpcional; 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.
sortenumOrdem das vagas: newest ou relevance (ex.: newest).
Resposta
dataobjectResult payload, or null when nothing was found.
data.itemsobject[]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[].budgetstringFixed-price budget in USD (e.g. $4000). Absent on hourly jobs, which carry hourlyRateMin and hourlyRateMax.
data.items[].clientLocationstringClient country or location.
data.items[].clientRatingnumberClient average rating.
data.items[].clientReviewCountintegerNumber of reviews the client has received from past contracts.
data.items[].clientTotalSpentnumberClient lifetime spend (USD).
data.items[].createdUtcnumberUTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.
data.items[].currencystringISO currency code the budget is quoted in (e.g. USD).
data.items[].descriptionstringFull job posting description text. Populated whenever the provider has data for the entity.
data.items[].durationstringExpected engagement length as Upwork words it (e.g. "1 to 3 months").
data.items[].experienceLevelstringRequired experience level (e.g. Entry, Intermediate, Expert).
data.items[].hourlyRateMaxnumberUpper bound of the client's hourly rate range in USD. Absent on fixed-price jobs.
data.items[].hourlyRateMinnumberLower bound of the client's hourly rate range in USD. Absent on fixed-price jobs.
data.items[].jobIdstringUpwork job identifier. Populated whenever the provider has data for the entity.
data.items[].jobTypestringFixed or Hourly.
data.items[].paymentVerifiedbooleanWhether the client's payment method is verified; null when Upwork reports it as unknown.
data.items[].premiumpode ser exigidobooleanWhether Upwork flags the posting as premium.
data.items[].proposalsintegerNumber of proposals submitted.
data.items[].repostedpode ser exigidobooleanWhether the posting is a repost of an earlier job.
data.items[].tagsstring[]Skill tags.
data.items[].titlestringJob posting title. Populated whenever the provider has data for the entity.
data.items[].urlstringUpwork job posting URL. Populated whenever the provider has data for the entity.
foundbooleanWhether 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çãoUSDUS$ 0,007
Preço /mil req.USDUS$ 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.

Custa a partir de US$ 7 por mil requisições, em dólares, sem assinatura e sem mínimo mensal. Você recarrega uma carteira em dólares e cada chamada desconta dela. Algumas requisições pagas pela carteira que falham geram cobranças de processamento, que repassamos pelo custo, sem margem; a resposta de erro mostra o valor cobrado.

Busque vagas no Upwork por palavra-chave, com até 25 vagas recentes por requisição. A resposta é JSON normalizado, com o mesmo envelope que todo endpoint da AnyAPI retorna, então processar um segundo endpoint é só trocar a URL, e nada mais.

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. Estas são medições da própria AnyAPI sobre o tráfego que passa pelo gateway, recalculadas continuamente, e não uma meta de nível de serviço publicada.