For developers & automation builders

Free Upwork Jobs API.

Upwork doesn't have a public API. We do. Query recent job listings with filters — and get AI-scored quality signals on every result that no other data source provides.

Free accounts: 100 job results/day. Unlimited on any paid plan.

Every job comes pre-scored.

We run each job through an LLM the moment it's posted. The scores object is available on every result — no extra calls, no post-processing.

quickWin

Quick Win

Fixed price + clear scope + completable in one session. Higher = faster money.

scopeClarity

Scope Clarity

How precisely the deliverable is defined. Low scores = scope creep risk.

redFlags

Red Flags (inverted)

Absence of bad signals. 10 = clean client. Low scores = proceed with caution.

effortHours

Effort Estimate

Realistic hours to complete the job.

{
  "data": [
    {
      "id": "vw_b797267068b246bfa8da8722",
      "title": "Build a Next.js dashboard with Supabase backend",
      "category": "Web Development",
      "jobType": "fixed",
      "budget": 800,
      "budgetMax": null,
      "experienceLevel": "Intermediate",
      "duration": "Less than 1 month",
      "connects": 11,
      "hoursPerWeek": null,
      "skills": [
        "Next.js",
        "TypeScript",
        "Supabase",
        "Tailwind CSS"
      ],
      "clientLocation": "United States",
      "clientPaymentVerified": true,
      "clientTotalSpent": 42000,
      "clientHireRate": 78,
      "clientRating": 4.9,
      "clientAvgRate": null,
      "description": "Build a clean admin dashboard...",
      "upworkUrl": "https://www.upwork.com/jobs/~01abc...",
      "scores": {
        "quickWin": 8,
        "scopeClarity": 9,
        "redFlags": 10,
        "effortHours": 14
      },
      "postedAt": "2026-06-08T09:31:00+00:00",
      "receivedAt": "2026-06-08T09:32:14.000+00:00"
    }
  ],
  "count": 1,
  "quotaRemaining": 95
}

API Reference

Endpoint

GET https://kttkatrmvlzsepgprqqd.supabase.co/functions/v1/public-jobs

Authentication

Pass your API key as a Bearer token. Find your key in Settings → API.

Authorization: Bearer vw_your_api_key

Query parameters

ParameterTypeDescription
keywordsstringFilter by job title keyword
categorystringFilter by category (e.g. "Web Development")
jobTypehourly | fixedFilter by contract type
minBudgetnumberMinimum budget in USD
sortnewest | quick_win | budgetSort order (default: newest)
limitnumberResults per call, max 100 (default: 50)

Example request

curl https://kttkatrmvlzsepgprqqd.supabase.co/functions/v1/public-jobs \
  -H "Authorization: Bearer vw_your_key" \
  -G \
  -d keywords=react \
  -d jobType=fixed \
  -d sort=quick_win \
  -d limit=20

Limits & access

Free accounts100 job results/day
Paid plansUnlimited calls
Data coverageRecent Upwork job postings, continuously updated
Rate limit resetDaily (midnight UTC)
Max per call100 results

Apify exclusive

10% off annual plans.

Sign up through this page and use the code below at checkout for 10% off any annual Vibeworker plan — unlimited API access, webhooks, and real-time job alerts included.

APIFY
Get your API key