Jobs — entry 015 of 18

Upwork

Verified Jul 2026

Upwork's public API is now a single GraphQL endpoint covering the freelance marketplace it once exposed as separate REST resources — job postings, proposals, contracts, time tracking, and messaging — authenticated via OAuth 2.0 (Authorization Code Grant with PKCE). A live probe confirmed the stored docs URL still redirects to the current GraphQL reference and that the gateway itself returns a genuine 401 challenge to unauthenticated calls, with no Access-Control-Allow-Origin header on either that request or a follow-up preflight. Registering an application is free, gated only by Upwork's own review and a 300-request-per-minute-per-IP rate limit.

freelancegraphqloauthjob-board
AuthenticationOAuthRequires an OAuth flow; expect app registration.
HTTPSSupportedTraffic is encrypted in transit.
CORSDisabledBrowser calls need a server-side proxy.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSON, GraphQLResponses can be requested as JSON or GraphQL.

GreatAPIs Score

Score77out of 100
Authentication8/25OAuth flow required
Pricing20/20Free to use
Docs14/20Documentation URL provided
Formats15/15Supports 2 response formats
Freshness20/20Verified within 6 months

Embed this badge

Scored 77 on greatapis.com
<a href="https://greatapis.com/api/upwork/"><img src="https://greatapis.com/badge/upwork.svg" alt="Scored 77 on greatapis.com"></a>

Auth quickstart

  1. Register an app / run the OAuth flow to obtain a bearer token.
  2. Send it as an Authorization headerAuthorization: Bearer <token>
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Developer reference

Rate limit

300 requests/minute per IP, enforced with HTTP 429