Upwork URL Parser — Resolve a Job or Search Link

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

json or markdown, lowercase; any other value is a 400. Over MCP, markdown returns the result rendered as text; the REST API accepts it and returns JSON. (default: json)

Response Fields

resolve-url

Parse an Upwork address

transport string

The data source: always the platform id, "upwork".

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",
  "pagesFetched": 0
}
Product overviewUpwork API: what it returns, pricing and use cases