Get Job
Fetch a single archived Upwork job by its ciphertext slug.
/api/v1/jobs/:ciphertextReturns the full archived RawUpworkJob document for one Upwork job, identified by its ciphertext slug (the ~02xxx... portion of an Upwork job URL).
Authentication
This endpoint uses the public Data API key system — a Bearer token, not the x-api-key header used by the auto-apply endpoints. Generate a key from your dashboard or by POSTing to /api/internal/api-keys while signed in.
Path parameters
| Parameter | Type | Description |
|---|---|---|
ciphertext | stringrequired | Upwork job ciphertext, e.g. |
Example
Response
The full RawUpworkJob document is returned: top-level fields like title, description, ontologySkills[], jobTile.job.*, plus optional nested jobDetailsResponse (public details: budget, qualifications, buyer location/stats) and authJobDetailsResponse (auth-only enrichment: screening questions, attachments, buyer work history, applicant bid stats). When the auth-enriched scrape captured screening questions, they're also surfaced at the top level as screeningQuestions so you can pass position values directly to the apply endpoint's questionAnswers.
Errors
Our archive goes back several years, but very old or never-scraped jobs may not be present.
| Status | Code | When |
|---|---|---|
| 401 | unauthorized | API key missing, invalid, or revoked |
| 404 | not_found | Ciphertext doesn't match any archived job |
| 429 | rate_limit_exceeded | Monthly quota consumed |
Related
- Get Client Jobs — lists every job from the same buyer.
- Rate Limits — 10,000 requests per billing period.