# List jobs

URL: https://docs.hanzo.ai/docs/openapi/marketplace/get-marketplace-jobs

> Lists the jobs the caller's org is a party to, newest first: as buyer, the work it hired — with the quotes it has not paid and the jobs being funded, each with the attempt that made it, so a hire whose answer was lost is found here — and as seller, the work it was hired for, which never includes another org's quote.

`GET /v1/marketplace/jobs`

> [Marketplace →](https://docs.hanzo.ai/docs/openapi/marketplace) · [All API references →](https://docs.hanzo.ai/docs/openapi) · [Get started →](https://docs.hanzo.ai/docs/guides)

|               |                                            |
| ------------- | ------------------------------------------ |
| **Address**   | `https://api.hanzo.ai/v1/marketplace/jobs` |
| **Method**    | `GET`                                      |
| **Operation** | `get_marketplace_jobs`                     |
| **Auth**      | `Authorization: Bearer $HANZO_API_KEY`     |

Lists the jobs the caller's org is a party to, newest first: as buyer, the work
it hired — with the quotes it has not paid and the jobs being funded, each with
the attempt that made it, so a hire whose answer was lost is found here — and as
seller, the work it was hired for, which never includes another org's quote.
Any member of the org.

## Request

2 fields.

| Field    | In    | Type   | Required | Description                                                                                 |
| -------- | ----- | ------ | -------- | ------------------------------------------------------------------------------------------- |
| `role`   | query | string | —        | Role is buyer — the jobs the caller's org hired for — or seller, the jobs it was hired for. |
| `status` | query | string | —        | Status keeps one state.                                                                     |

## Response

| Status    | Body                | Meaning |
| --------- | ------------------- | ------- |
| `200`     | marketplace.jobPage | ok      |
| `default` | problem-details     | refused |

`200` body — 39 fields.

| Field                      | In   | Type                 | Always | Description                                                                                                                                                                                                         |
| -------------------------- | ---- | -------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `jobs`                     | body | marketplace.Job\[]   | —      | Jobs is at most 500 jobs.                                                                                                                                                                                           |
| `jobs[].amount`            | body | any                  | —      | Amount is what the job pays, exact USD.                                                                                                                                                                             |
| `jobs[].attempt`           | body | string               | —      | Attempt is the buyer's own key for the hire that made the job, when it sent one.                                                                                                                                    |
| `jobs[].brief`             | body | string               | —      | Brief is what the buyer asked for.                                                                                                                                                                                  |
| `jobs[].buyerOrg`          | body | string               | —      | BuyerOrg is the org that pays.                                                                                                                                                                                      |
| `jobs[].category`          | body | string               | —      | Category is what the payment is for — service, goods, transfer or royalty — as the buyer declared it and the seller accepted it.                                                                                    |
| `jobs[].clearance`         | body | string               | —      | Clearance is principal's latest decision that the buyer may pay the seller this amount — asked when the job was quoted, again when it was funded, and again when it was released: GET /v1/principal/clearance/{id}. |
| `jobs[].createdAt`         | body | integer (int64)      | —      | CreatedAt is when the job was quoted, unix seconds.                                                                                                                                                                 |
| `jobs[].currency`          | body | string               | —      | Currency labels Amount: USD.                                                                                                                                                                                        |
| `jobs[].deadline`          | body | integer (int64)      | —      | Deadline is when delivery must land by, unix seconds.                                                                                                                                                               |
| `jobs[].delivery`          | body | marketplace.Delivery | —      |                                                                                                                                                                                                                     |
| `jobs[].delivery.at`       | body | integer (int64)      | —      | At is when, unix seconds.                                                                                                                                                                                           |
| `jobs[].delivery.hash`     | body | string               | —      | Hash commits to what was delivered: the seller's own 32-byte hash, or the SHA-256 of the note and URL.                                                                                                              |
| `jobs[].delivery.note`     | body | string               | —      | Note says what was delivered.                                                                                                                                                                                       |
| `jobs[].delivery.url`      | body | string               | —      | URL is where it is, https.                                                                                                                                                                                          |
| `jobs[].dispute`           | body | marketplace.Dispute  | —      |                                                                                                                                                                                                                     |
| `jobs[].dispute.at`        | body | integer (int64)      | —      | At is when, unix seconds.                                                                                                                                                                                           |
| `jobs[].dispute.by`        | body | string               | —      | By is the org that disputed.                                                                                                                                                                                        |
| `jobs[].dispute.contested` | body | boolean              | —      | Contested is the clock's own dispute: the payment stopped clearing when the review window closed.                                                                                                                   |
| `jobs[].dispute.reason`    | body | string               | —      | Reason is the disputing party's words.                                                                                                                                                                              |
| `jobs[].ending`            | body | string               | —      | Ending is the unpaid ending the job was given — declined, cancelled or refunded — while the rail returns the amount it set aside.                                                                                   |
| `jobs[].escrow`            | body | marketplace.Escrow   | —      |                                                                                                                                                                                                                     |
| `jobs[].escrow.contract`   | body | string               | —      | Contract is the contract the money moves through: the token the x402 authorization transfers, or the escrow on chain.                                                                                               |
| `jobs[].escrow.network`    | body | string               | —      | Network is the CAIP-2 network the payment is signed for.                                                                                                                                                            |
| `jobs[].escrow.payTo`      | body | string               | —      | PayTo is the seller's payout address.                                                                                                                                                                               |
| `jobs[].escrow.rail`       | body | string               | —      | Rail is x402 — the buyer's balance, settled at release — or chain, the Lux escrow contract.                                                                                                                         |
| `jobs[].escrow.txHash`     | body | string               | —      | TxHash is the transaction that paid the seller, once one did: the chain's hash, or the x402 settlement id on the ledger.                                                                                            |
| `jobs[].history`           | body | marketplace.Step\[]  | —      | History is every step the job took, oldest first.                                                                                                                                                                   |
| `jobs[].history[].at`      | body | integer (int64)      | —      | At is when, unix seconds.                                                                                                                                                                                           |
| `jobs[].history[].by`      | body | string               | —      | By is the org whose act it was, or "marketplace" for a clock that ran out.                                                                                                                                          |
| `jobs[].history[].status`  | body | string               | —      | Status is the state the job entered.                                                                                                                                                                                |
| `jobs[].id`                | body | string               | —      | ID is the job, "job\_"-prefixed.                                                                                                                                                                                    |
| `jobs[].listing`           | body | string               | —      | Listing is the listing it was hired through; empty for a direct offer.                                                                                                                                              |
| `jobs[].performed`         | body | string               | —      | Performed is where the work is performed, ISO 3166-1 alpha-2, when said.                                                                                                                                            |
| `jobs[].review`            | body | integer (int64)      | —      | Review is how many seconds after delivery the buyer has to release or dispute before the job releases itself.                                                                                                       |
| `jobs[].sellerOrg`         | body | string               | —      | SellerOrg is the org that does the work and is paid.                                                                                                                                                                |
| `jobs[].status`            | body | string               | —      | Status is where the job stands: quoted or funding, which only its buyer sees, then open, accepted, delivered, released, disputed, declined, cancelled or refunded.                                                  |
| `jobs[].title`             | body | string               | —      | Title names the work: the listing's title, or the offer's own.                                                                                                                                                      |
| `jobs[].updatedAt`         | body | integer (int64)      | —      | UpdatedAt is when it last moved, unix seconds.                                                                                                                                                                      |

Failure carries the platform error shape — see [Errors](https://docs.hanzo.ai/docs/errors).

## Examples

**CLI**

`hanzo` has no subcommand for this operation — the CLI serves only what cloud's live route table confirms. Use HTTP or an SDK.

**SDK**

**.ts**

```ts
import { Configuration, MarketplaceApi } from 'hanzoai';

const api = new MarketplaceApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getMarketplaceJobs();
```

**.py**

```python
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import MarketplaceApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = MarketplaceApi(client).get_marketplace_jobs()
```

**.go**

```go
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.MarketplaceAPI.GetMarketplaceJobs(context.Background()).Execute()
if err != nil {
	return err
}
```

**.rs**

```rust
use hanzo_client::apis::{configuration::Configuration, marketplace_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = marketplace_api::get_marketplace_jobs(&cfg, Default::default()).await?;
```

**.java**

```java
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.MarketplaceApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new MarketplaceApi(client).getMarketplaceJobs();
```

**HTTP**

```bash
curl https://api.hanzo.ai/v1/marketplace/jobs \
  -H "Authorization: Bearer $HANZO_API_KEY"
```

**MCP**

MCP reaches **marketplace** through the `marketplace` tool, which names its 23 operations with its own verbs — this one among them, under a name only MCP declares. `describe` explains any of them:

```bash
curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_marketplaces"
         }
       }
     }'
```

---

[Marketplace API](https://docs.hanzo.ai/docs/openapi/marketplace) · [All Hanzo APIs](https://docs.hanzo.ai/docs/openapi) · [Interactive reference](https://docs.hanzo.ai/docs/openapi/reference)
