> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trusset.org/llms.txt
> Use this file to discover all available pages before exploring further.

# List Listings

> A page of a market's listings with their loans, read from the chain

> [!NOTE]
>
> Seller Financing is in beta and runs on Ethereum Sepolia instances only for now (`DEVELOPMENT` instances on Ethereum). A `PRODUCTION` instance, or one on another network, answers `503 SELLER_FINANCING_UNAVAILABLE`. See [Seller Financing](/endpoints/seller-financing/introduction.md).

Returns a page of the market's listings in ID order, each with its loan once a buyer has purchased it. Everything is read from the market contract. Listing IDs count up from 1, so a page starting at `offset` begins with listing `offset + 1`.

Each item is a listing as [Get Listing](/endpoints/seller-financing/get-listing.md) returns it, without the live loan status. Read [Get Loan Status](/endpoints/seller-financing/get-loan-status.md) for what an active loan owes.

> [!WARNING]
>
> `status` filters the page after it is read. A page can therefore hold fewer items than `limit`, or none, while more listings follow. Keep paging with `nextOffset` until it is `null`.

## Path Parameters

**marketId** `string` *required*

The market's record ID, as `id` on [List Markets](/endpoints/seller-financing/list-markets.md).

## Query Parameters

**offset** `integer` (default: 0)

Number of listings to skip. The page starts at listing `offset + 1`.

**limit** `integer` (default: 50)

Listings to read, 1 to 50.

**status** `string`

Keep only listings in this status: `OPEN`, `CANCELLED`, `ACTIVE`, `REPAID`, `COMPLETED` or `LIQUIDATED`, or `EXPIRED`. `OPEN` leaves out listings past their `expiresAt`, which can no longer be bought. `EXPIRED` returns exactly those: their status is still `OPEN` on chain, with `expired: true`, until the seller or the operator cancels them.

## Response Fields

**data** `object`

**items** `array`

The listings of the page that match `status`. For the fields see [Get Listing](/endpoints/seller-financing/get-listing.md#response-fields), without `assetLeg` and `collateralEscrow`. Each item carries `expired`. `loan` is `null` before a purchase, and also when the loan could not be read.

**total** `integer`

Listings on the market. Also the highest listing ID.

**offset** `integer`

The `offset` of this page.

**limit** `integer`

The `limit` of this page.

**nextOffset** `integer`

The `offset` of the next page, counted before the `status` filter. `null` on the last page.

**statusFilter** `string`

The `status` you sent, or `null`.

```bash cURL theme={null}
curl "https://api.trusset.org/seller-financing/api/markets/cmsg4x7k20003sf9q1d8v6b2e/listings?limit=2" \
  -H "X-API-Key: trusset_your_key_here"
```

```typescript TypeScript theme={null}
const base = `https://api.trusset.org/seller-financing/api/markets/${marketId}/listings`;
const open = [];
let offset: number | null = 0;
while (offset !== null) {
  const res = await fetch(`${base}?status=OPEN&offset=${offset}`, {
    headers: { 'X-API-Key': 'trusset_your_key_here' }
  });
  const { data } = await res.json();
  open.push(...data.items);
  offset = data.nextOffset;
}
```

```json Response theme={null}
{
  "success": true,
  "data": {
    "items": [
      {
        "id": "1",
        "status": "COMPLETED",
        "expired": false,
        "seller": "0x3E22FdfA28e880239541d9c5B66B3b161F9ED77b",
        "rateMode": "DERIVED",
        "assetAmount": "100",
        "assetAmountFormatted": "100",
        "price": "10000000000",
        "priceFormatted": "10000.0",
        "downpayment": "2000000000",
        "downpaymentFormatted": "2000.0",
        "principal": "8000000000",
        "principalFormatted": "8000.0",
        "downpaymentBps": 2000,
        "duration": 2592000,
        "interestPeriod": 604800,
        "gracePeriod": 172800,
        "rate": "40000000000000000",
        "rateBps": 400,
        "premiumA": "781805364",
        "premiumB": "71784000",
        "designatedBuyer": null,
        "expiresAt": null,
        "createdAt": 1792359852,
        "ref": "0xc402b1c3c3447d9e1d7931c4125961691256625f7a0bea0f9c20ee3c7a3dd151",
        "loan": {
          "buyer": "0x09BD3f5c18488e492a7bC3C7CCfc6cc837f511e8",
          "start": 1792359876,
          "maturity": 1794951876,
          "checkpointAt": 1792359936,
          "principal": "0",
          "principalFormatted": "0.0",
          "escrowedPrincipal": "0",
          "escrowedPrincipalFormatted": "0.0",
          "baseAccrued": "609",
          "interestPaid": "1079124",
          "interestPaidFormatted": "1.079124"
        }
      },
      {
        "id": "2",
        "status": "COMPLETED",
        "expired": false,
        "seller": "0xF170fb41584B96ae8b2c46B9d8FE2A144AFA5F34",
        "rateMode": "DERIVED",
        "assetAmount": "20",
        "assetAmountFormatted": "20",
        "price": "2000000000",
        "priceFormatted": "2000.0",
        "downpayment": "500000000",
        "downpaymentFormatted": "500.0",
        "principal": "1500000000",
        "principalFormatted": "1500.0",
        "downpaymentBps": 2500,
        "duration": 2592000,
        "interestPeriod": 604800,
        "gracePeriod": 172800,
        "rate": "40000000000000000",
        "rateBps": 400,
        "premiumA": "156243449",
        "premiumB": "14346000",
        "designatedBuyer": null,
        "expiresAt": null,
        "createdAt": 1792360428,
        "ref": "0x864a73e70f7fcd6351280b18992a73673aac9d9ea27e1a5e8f43ddc5b3b4bf7b",
        "loan": {
          "buyer": "0xC62Cd59cE1e92135d9302Bc3367c6f58dc830734",
          "start": 1792360464,
          "maturity": 1794952464,
          "checkpointAt": 1792360524,
          "principal": "0",
          "principalFormatted": "0.0",
          "escrowedPrincipal": "0",
          "escrowedPrincipalFormatted": "0.0",
          "baseAccrued": "115",
          "interestPaid": "215657",
          "interestPaidFormatted": "0.215657"
        }
      }
    ],
    "total": 3,
    "offset": 0,
    "limit": 2,
    "nextOffset": 2,
    "statusFilter": null
  },
  "error": null,
  "metadata": {
    "timestamp": "2026-10-19T09:12:04.318Z",
    "requestId": "3f7c2a91-6d84-4b0e-9a15-c2e8f4d7b603",
    "instanceId": "inst_abc123"
  }
}
```

## Error Codes

| Code | HTTP | Cause |
| - | - | - |
| `VALIDATION_ERROR` | `400` | `offset` is negative, `limit` is outside 1 to 50, or `status` is neither a listing status nor `EXPIRED`. `error.details` names the parameter |
| `MARKET_NOT_FOUND` | `404` | No market with this ID that your instance reaches on its network |
| `CHAIN_UNAVAILABLE` | `503` | The market could not be read. Retry shortly |
| `SELLER_FINANCING_UNAVAILABLE` | `503` | The instance is a `PRODUCTION` instance or not on Ethereum |
| `LISTINGS_READ_FAILED` | `500` | Unexpected failure. Retry, or contact support with the request ID |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.