API para Upwork

API para Upwork: Vagas

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

US$ 7,00/mil req., pague por requisição, sem assinatura.

"react developer" Jobs - Upwork
upwork.com/nx/search/jobs/?q=react%20developer
Find WorkMy JobsMessages

Filter results

3+ jobs found for “react developer”

React developer for analytics dashboard

$45-$75/hr·Hourly·Expert·1 to 3 months

Build three new views for an internal analytics dashboard using React, TanStack Query and Tailwind.

ReactTypeScriptTailwind CSSData Visualization

✓ Payment verified

Posted Sep 25, 2025

Frontend engineer to migrate legacy jQuery app to React

$35-$55/hr·Hourly·Intermediate·3 to 6 months

Looking for a frontend engineer to lead a phased migration of a jQuery order-management tool to React. Should be able to work independently, write tests, and document decisions for our small internal team.

ReactJavaScriptjQueryTesting

✓ Payment verified$26,400 spentUnited Kingdom21 proposals

Posted Sep 24, 2025

React developer for weekend bug-fix sprint

$25-$40/hr·Hourly·Entry·Less than 1 month

Small ecommerce storefront built in React and Next.js has a handful of checkout bugs to fix over a weekend. Need someone who can start immediately and communicate progress every few hours.

ReactNext.jsBug Fixes

$1,150 spentCanada34 proposals

O que a API retornouitems[0]
{
"jobId": "~021847532910e4c1a2",
"title": "React developer for analytics dashboard",
"url": "https://www.upwork.com/jobs/~021847532910e4c1a2",
"description": "Build three new views for an internal analytics dashboard using React, TanStack Query and Tailwind.",
"hourlyRateMin": 45,
"hourlyRateMax": 75,
"jobType": "Hourly",
"experienceLevel": "Expert",
... 13 campos a mais
}
Disponibilidade
99,98%
30d · 6.412 chamadas
Requisições
6.553
30d · semanal, últimas 12 sem.
Resposta
10,2s
mediana · 30d

Teste

Obtenha Vagas do Upwork em uma só 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.

Este exemplo mostra 23 de 25 campos. Ver todos os campos

{
  "found": true,
  "data": {
    "items": [
      {
        "jobId": "~021847532910e4c1a2",
        "title": "React developer for analytics dashboard",
        "url": "https://www.upwork.com/jobs/~021847532910e4c1a2",
        "description": "Build three new views for an internal analytics dashboard using React, TanStack Query and Tailwind.",
        "hourlyRateMin": 45,
        "hourlyRateMax": 75,
        "jobType": "Hourly",
        "experienceLevel": "Expert",
        "paymentVerified": true,
        "tags": [
          "React",
          "TypeScript",
          "Tailwind CSS",
          "Data Visualization"
        ],
        "duration": "1 to 3 months"
      },
      {
        "jobId": "~018452901e3a1c6d47",
        "title": "Frontend engineer to migrate legacy jQuery app to React",
        "url": "https://www.upwork.com/jobs/~018452901e3a1c6d47",
        "description": "Looking for a frontend engineer to lead a phased migration of a jQuery order-management tool to React. Should be able to work independently, write tests, and document decisions for our small internal team.",
        "hourlyRateMin": 35,
        "hourlyRateMax": 55,
        "jobType": "Hourly",
        "experienceLevel": "Intermediate",
        "createdUtc": 1758794400,
        "paymentVerified": true,
        "tags": [
          "React",
          "JavaScript",
          "jQuery",
          "Testing"
        ],
        "clientLocation": "United Kingdom",
        "clientTotalSpent": 26400,
        "clientRating": 4.7,
        "proposals": 21,
        "currency": "USD",
        "duration": "3 to 6 months",
        "premium": true,
        "clientReviewCount": 9,
        "reposted": true
      },
      {
        "jobId": "~014739281a0c5b8e92",
        "title": "React developer for weekend bug-fix sprint",
        "url": "https://www.upwork.com/jobs/~014739281a0c5b8e92",
        "description": "Small ecommerce storefront built in React and Next.js has a handful of checkout bugs to fix over a weekend. Need someone who can start immediately and communicate progress every few hours.",
        "hourlyRateMin": 25,
        "hourlyRateMax": 40,
        "jobType": "Hourly",
        "experienceLevel": "Entry",
        "createdUtc": 1758708000,
        "paymentVerified": false,
        "tags": [
          "React",
          "Next.js",
          "Bug Fixes"
        ],
        "clientLocation": "Canada",
        "clientTotalSpent": 1150,
        "clientRating": 5,
        "proposals": 34,
        "currency": "USD",
        "duration": "Less than 1 month",
        "premium": false,
        "clientReviewCount": 2,
        "reposted": false
      }
    ]
  }
}

Referência completa de parâmetros e resposta - todos os campos, tipos e exemplos deste endpoint.

Referência

Uma requisição, um formato de resposta.

Cada campo que você envia e cada campo que você recebe, cada um com um exemplo real.

Última verificação em 2026-11-14 · disponibilidade e latência medidas em 30d

Corpo da requisição

JSON, enviado via POST para este endpoint.

  • querystring

    react developer

    Palavras-chave para buscar vagas no Upwork (ex.: react developer).

  • experienceLevelenum

    Filtra pelo nível de experiência exigido.

  • jobTypeenum

    hourly

    Filtra por tipo de pagamento: vagas de preço fixo ou por hora.

  • limitinteger

    10

    Número máximo de resultados a retornar (10-25, padrão 25).

  • locationstring

    Filtra pela localização do cliente: uma região, sub-região ou país (ex.: United States, Europe).

  • paymentVerifiedboolean

    Quando true, retorna apenas vagas de clientes com método de pagamento verificado.

  • 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.

  • sortenum

    Ordem das vagas: newest ou relevance (ex.: newest).

Você envia. Um corpo JSON pequeno. Os valores mostrados são exemplos para você trocar pelos seus.

Resposta

JSON, um valor de exemplo por campo.

each itemdata.items[]

Job records: title, description, budget or hourly rate, required skills, posted date, and client details. Populated whenever the provider has data for the entity.

  • budgetstring

    Fixed-price budget in USD (e.g. $4000). Absent on hourly jobs, which carry hourlyRateMin and hourlyRateMax.

  • clientLocationstring

    Client country or location.

  • clientRatingnumber

    Client average rating.

  • clientReviewCountinteger

    Number of reviews the client has received from past contracts.

  • clientTotalSpentnumber

    Client lifetime spend (USD).

  • createdUtcnumber

    UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.

  • currencystring

    ISO currency code the budget is quoted in (e.g. USD).

  • descriptionstring

    Build three new views for an internal analytics dashboard using React, TanStack Query and Tailwind.

    Full job posting description text. Populated whenever the provider has data for the entity.

  • durationstring

    1 to 3 months

    Expected engagement length as Upwork words it (e.g. "1 to 3 months").

  • experienceLevelstring

    Expert

    Required experience level (e.g. Entry, Intermediate, Expert).

  • hourlyRateMaxnumber

    75

    Upper bound of the client's hourly rate range in USD. Absent on fixed-price jobs.

  • hourlyRateMinnumber

    45

    Lower bound of the client's hourly rate range in USD. Absent on fixed-price jobs.

  • jobIdstring

    ~021847532910e4c1a2

    Upwork job identifier. Populated whenever the provider has data for the entity.

  • jobTypestring

    Hourly

    Fixed or Hourly.

  • paymentVerifiedboolean

    true

    Whether the client's payment method is verified; null when Upwork reports it as unknown.

  • premiumbooleanpode ser exigido

    Whether Upwork flags the posting as premium.

  • proposalsinteger

    Number of proposals submitted.

  • repostedbooleanpode ser exigido

    Whether the posting is a repost of an earlier job.

  • tagsstring[]

    Skill tags.

  • titlestring

    React developer for analytics dashboard

    Job posting title. Populated whenever the provider has data for the entity.

  • urlstring

    https://www.upwork.com/jobs/~021847532910e4c1a2

    Upwork job posting URL. Populated whenever the provider has data for the entity.

top level
  • foundboolean

    true

    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.

Você recebe. Campos nomeados e tipados, no mesmo formato, seja qual for a fonte que responder.

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 3 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 10,2 segundos, em 6.412 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 10,2 segundos, em 6.412 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.

Sim. Uma conta nova da AnyAPI começa com US$ 0,10 de saldo grátis, sem cartão, o que cobre 14 chamadas de Vagas do Upwork a US$ 0,007 cada.

A AnyAPI consulta a próxima das suas 3 fontes na mesma requisição, começando pela mais barata, então a queda de uma fonte não derruba sua chamada.

Envie uma requisição POST para https://api.getanyapi.com/v1/run/upwork.jobs com sua chave da AnyAPI em um cabeçalho "Authorization: Bearer" e a entrada como corpo JSON. A mesma chave e a mesma carteira funcionam em todos os endpoints da AnyAPI.

Não. Você adiciona dólares a um único saldo pré-pago da AnyAPI e cada requisição desconta dele. Não há plano mensal nem mínimo, e o mesmo saldo paga todos os endpoints da AnyAPI.

Sim. Instale @getanyapi/sdk pelo npm para TypeScript ou getanyapi pelo pip para Python. Os dois chamam todos os endpoints da AnyAPI com a mesma chave, e qualquer cliente HTTP também funciona.

Sim. Um agente pode se conectar ao servidor MCP da AnyAPI em https://api.getanyapi.com/mcp, ou criar a própria chave de teste grátis com um único POST sem autenticação para https://api.getanyapi.com/agent/signup e chamar este endpoint por HTTP.