Upwork URL Parser — Resolve a Job or Search Link
Documentation menu
FetchLayer FetchLayer API

Parse an Upwork address

Parse any Upwork address into structured input for the other routes, without fetching anything. Tells you whether an address is a results page or a posting, and pulls the search terms off a results page so you can hand them straight to /search-jobs. The right first step for a list of pasted addresses — it sorts them before a single page fetch is spent. **Free.** It makes no upstream request at all, answers in about a tenth of a second, and reports `pagesFetched: 0`.

POST /resolve-url Utilities
https://api.fetchlayer.dev/upwork/resolve-url
OpenAPI JSON

Headers

Authorization string required

Bearer token — your FetchLayer API key.

Parameters

url string required

Any Upwork address — a job posting or a job-search results page.

format string optional

Envelope format: json or markdown. (default: json)

Response Fields

resolve-url

Parse an Upwork address

transport string

The source. "upwork-jobs".

notes string[]

Caveats you can act on. The one that matters here says per-posting detail was not available and the postings carry listing-level fields only.

pagesFetched number

Pages read, and what the request is billed at: 1 credit per page. A search of one results page is 1 whether it returns 3 postings or 50.

kind string

"search" for a results page, or the posting kind for a single job.

jobId string

The posting's id when the address names one; null on a results page.

searchUrl string

The results page address, ready to pass to /search-jobs as `searchUrl`.

query string

The search terms read off a results page, ready to pass to /search-jobs as `query`.

Request

curl -X POST "https://api.fetchlayer.dev/upwork/resolve-url" \
  -H "Authorization: Bearer ss-your-key" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://www.upwork.com/nx/search/jobs/?q=python"}'

Response

{
  "kind": "search",
  "jobId": null,
  "searchUrl": "https://www.upwork.com/nx/search/jobs/?q=python",
  "query": "python",
  "notes": [
    "Use the job search capability with this searchUrl."
  ],
  "transport": "upwork-jobs",
  "pagesFetched": 0
}