Upwork Auth vs the Upwork API
Two different connections that people mix up: one signs you in, the other reads job data. What each does, which features need which, and how to connect both.
Last updated:
Prefer to read? Every step in the video is written out below.
These two get confused constantly, and the confusion produces a specific symptom: you connect something, half the product works, and it looks like a bug.
They are two different connections doing two different jobs. The video above walks through both; the written version is below.
The one sentence version
Auth proves who you are. The API reads job data.
Everything else follows from that.
Upwork Auth
Auth is identity. It establishes that a particular Upwork account belongs to you and links it to your ProposalLift account.
What it gives you:
- A verified link between your ProposalLift account and your Upwork profile
- The basis for importing your own profile, or your agency's roster, as personas
- Identification of the connected account across the product
What it does not give you: job postings. Auth alone will not populate a feed, because reading marketplace data is a separate permission.
The Upwork API
The API is data access. It is what reads job postings out of Upwork so the product can do anything with them.
What depends on it:
- The live job feed
- Saved filters, and the alerts built on them
- AI qualification, which grades each job against your criteria
- Client details on a job, such as spend and hire history
Access is metered. Upwork enforces a daily request budget, and every feed refresh and filter run spends from it.
Which features need which
| Feature | Needs Auth | Needs API |
|---|---|---|
| Sign in and link your account | Yes | No |
| Import personas from your Upwork profile | Yes | Yes |
| Live job feed | Yes | Yes |
| Saved filters and alerts | Yes | Yes |
| AI qualification of jobs | Yes | Yes |
| Draft from job text you paste | No | No |
| Chrome extension on the apply page | No | No |
That last pair is worth noticing. The Chrome extension reads the job from the page you already have open, so drafting works without any API connection. Discovery is the part that needs one.
The two ways to connect the API
Your own developer app
You register an application on Upwork and paste its key and secret into ProposalLift. Setup takes a few minutes, and the step by step walkthrough is here.
The advantage is capacity: the daily request budget is yours alone, which matters if you run several filters with frequent refreshes.
The shared platform app
Paid accounts can connect through an application ProposalLift owns, with no registration at all.
The trade is capacity. There is a per-user cooldown and a platform-wide daily budget shared across everyone using it, so a busy day can run it out. If you see quota messages on the shared app, registering your own is the fix.
The symptom that brings people here
"I connected Upwork but my job feed is empty."
Almost always this means Auth succeeded and the API side is either not connected, not approved yet, missing job search permission, or out of quota. Check those four in that order.
Related
Frequently asked questions
Ready to win more Upwork jobs?
Start generating context-aware proposals in minutes, free for 14 days.
Start free trialPrefer to run it yourself? Get the free, open-source edition.
