# Upwork Jobs API

> Search Upwork job postings by keyword, with up to 25 fresh listings per request.

Source: https://www.sandbase.ai/apis/upwork/jobs
API reference: https://www.sandbase.ai/apis/upwork/jobs#api

## Facts

- Provider: Upwork
- Type: Data API
- Endpoint: `POST https://api.sandbase.ai/v1/api/upwork/jobs`
- Price: From $0.007 per call
- Capabilities: api, upwork, jobs, freelance
- Billing: pay per use from one SandBase balance; no provider account or subscription needed

## Call it

`POST https://api.sandbase.ai/v1/api/upwork/jobs` with `Authorization: Bearer $SANDBASE_API_KEY` and the parameters as a JSON body.

| Parameter | Type | Required | Allowed values |
| --- | --- | --- | --- |
| `query` | string | yes |  |
| `sort` | string | no | newest, relevance |
| `limit` | integer | no |  |
| `jobType` | string | no | fixed, hourly |
| `location` | string | no |  |
| `requireFields` | array | no |  |
| `experienceLevel` | string | no | entry, intermediate, expert |
| `paymentVerified` | boolean | no |  |

## FAQ

### How do I use the Upwork Jobs API?

Send a POST request to https://api.sandbase.ai/v1/api/upwork/jobs with your SandBase API key in the Authorization header (Bearer) and the parameters as a JSON body. You can also try it in the Playground on this page without writing code.

### How much does the Upwork Jobs API cost?

From $0.007 per call, billed from your SandBase balance. You are only charged for calls you make; there is no subscription.

### What parameters does the Upwork Jobs API accept?

Required: query (string). Optional: sort (one of newest, relevance), limit (integer), jobType (one of fixed, hourly), location (string), requireFields (array) and experienceLevel (one of entry, intermediate, expert) and 1 more. The Parameters table and the Playground on this page list every field.

### What does the Upwork Jobs API return?

A JSON response returned in the same HTTP request (synchronous).

### Do I need a Upwork developer account or API key?

No. Upwork Jobs runs through SandBase, so one SandBase API key covers this endpoint and every other API and model in the catalog. You do not need to apply for Upwork API access separately.

## README

### Upwork Jobs API

Search Upwork job postings by keyword, with up to 25 fresh listings per request.

#### Request

```bash
curl -X POST "https://api.sandbase.ai/v1/run" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "upwork/jobs", "limit": 10, "query": "web developer", "jobType": "fixed"}'
```

The result is returned in `outputs[0].data`. Lookups that find nothing fail with a not-found error.

#### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `query` | string | Yes | Keywords to search Upwork jobs for (e.g. react developer). |
| `experienceLevel` | string | No | Filter by required experience level. One of: `entry`, `intermediate`, `expert`. |
| `jobType` | string | No | Filter by payment type: fixed-price or hourly jobs. One of: `fixed`, `hourly`. |
| `limit` | integer | No | Maximum number of results to return (10-25, default 25). |
| `location` | string | No | Filter by client location - a region, subregion, or country (e.g. United States, Europe). |
| `paymentVerified` | boolean | No | When true, only return jobs from clients with a verified payment method. |
| `requireFields` | array | No | Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `premium` or `reposted`, and it is served only by a source that return |
| `sort` | string | No | Sort order for listings: newest or relevance (e.g. newest). One of: `newest`, `relevance`. Default `"newest"`. |

#### Pricing

Billed at the actual cost of each call, about $0.007 per request. A call can cost more when the first data source fails and another one answers. Failed calls and lookups that find nothing are not charged.
