# Get the best offers

`GET /api/market/offers/best`

The best active offer (the highest price, the oldest first) of up to 100 outpoints, keyed by outpoint. Outpoints without one are absent. A listing carries its own as `best_offer`.

#### Query parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `outpoints` | string | yes | 1-100 outpoints (`txid:vout`), comma-separated. |

#### Example request

```bash title="cURL"
curl 'https://raresats.net/api/market/offers/best?outpoints=24b3eedfdc210f4a5baa96a6c99db5a51d3b1286ab2f58cb0b16fc607e54107f:0'
```
```js title="JavaScript"
const response = await fetch('https://raresats.net/api/market/offers/best?outpoints=24b3eedfdc210f4a5baa96a6c99db5a51d3b1286ab2f58cb0b16fc607e54107f:0');
const data = await response.json();
```
```python title="Python"
import requests

data = requests.get("https://raresats.net/api/market/offers/best", params={"outpoints": "24b3eedfdc210f4a5baa96a6c99db5a51d3b1286ab2f58cb0b16fc607e54107f:0"}).json()
```

#### Response `200`

| Field | Type | Description |
| --- | --- | --- |
| `offers` | map of [Offer](https://raresats.net/docs/offer-object.md) | The best active offer of each outpoint asked for that has one, keyed by outpoint. |

```json title="Response"
{
  "offers": {
    "24b3eedfdc210f4a5baa96a6c99db5a51d3b1286ab2f58cb0b16fc607e54107f:0": {
      "id": "dbf866a1e7e209e7",
      "kind": "item",
      "outpoint": "24b3eedfdc210f4a5baa96a6c99db5a51d3b1286ab2f58cb0b16fc607e54107f:0",
      "value": 10000,
      "seller_address": "bc1p5cyxnuxmeuwuvkwfem96lqzszd02n6xdcjrs20cac6yqjjwudpxqkedrcr",
      "price": 110000,
      "platform_fee": 2750,
      "fee_rate": 3,
      "network_fee": 963,
      "total": 113713,
      "vsize": 321,
      "unit_price": 100000,
      "row": "decasat_alpha",
      "count": 1,
      "rows": {"uncommon": 1, "alpha_uncommon": 1, "decasat_alpha": 1},
      "types": [
        {
          "types": ["uncommon", "decasat_alpha", "alpha"],
          "count": 1,
          "sats": [441000000000000]
        }
      ],
      "sats": 1,
      "ranges": [[441000000000000, 441000000000000]],
      "years": {"2010": 1},
      "bidder_payment_address": "bc1p4qhjn9zdvkux4e44uhx8tc55attvtyu358kutcqkudyccelu0was9fqzwh",
      "bidder_ordinals_address": "bc1p4qhjn9zdvkux4e44uhx8tc55attvtyu358kutcqkudyccelu0was9fqzwh",
      "status": "active",
      "created_at": 1790967012,
      "updated_at": 1790967012,
      "expires_at": 1791571812,
      "reason": null,
      "txid": null,
      "listing_id": "5e1cb930f43354c3",
      "acceptance_public": false
    }
  }
}
```

#### Errors

`{error, code}`; see [Errors](https://raresats.net/docs/errors.md) for every code.

| Status | Code | Meaning |
| --- | --- | --- |
| 400 | `bad_outpoint` | Not an outpoint (`txid:vout`). |
| 400 | `bad_outpoints` | `outpoints` lists none, or more than 100. |

```json title="Error (400)"
{"error": "outpoints must list 1-100 outpoints", "code": "bad_outpoints"}
```

The best offer is the highest `price`; between equal prices, the oldest. Every [Listing](https://raresats.net/docs/listing-object.md) carries its UTXO's own as `best_offer` (a short form), so a page of listings needs no extra call.
