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

# Store data

> Read your own listings, prices, orders, refunds and pricing rules.

Your listings, prices, orders, refunds and pricing rules. No market prices, other sellers' data or buyer details. For a no-code walkthrough, see [API keys](https://docs.tryhoard.com/features/api-keys.md).

Use an [API key](https://docs.tryhoard.com/api-reference/authentication.md#api-keys-for-your-own-code) or an OAuth token with `mcp:read`. The desktop agent's key gets `403 legacy_key_not_allowed`.

## List inventory

```
GET /api/v1/store/inventory?limit=100
```

```json theme={null}
{
  "data": [
    {
      "sku_id": 4471902,
      "custom_listing_id": null,
      "product_id": 21342,
      "product_line": "Magic",
      "product_name": "Sol Ring",
      "set_name": "Commander Masters",
      "card_number": "410",
      "condition": "Near Mint",
      "printing": "Normal",
      "language": "English",
      "quantity": 3,
      "listed_price": 1.49,
      "target_price": 1.55,
      "price_locked": false,
      "updated_at": "2026-10-21T14:02:11Z"
    }
  ],
  "next_cursor": "opaque-token"
}
```

| Field | Meaning |
| - | - |
| `sku_id` | TCGplayer SKU. `null` for custom listings. |
| `product_id` | TCGplayer product. Several SKUs share one product. |
| `listed_price` | Your current TCGplayer price. |
| `target_price` | The price your Hoard rules set. |

Only live listings with quantity above 0 are returned. Quick Add cards appear once they are listed on TCGplayer. `limit` is 1 to 500 (default 100).

## List orders

```
GET /api/v1/store/orders?placed_since=2026-10-01T00:00:00Z
```

```json theme={null}
{
  "data": [
    {
      "order_number": "4E7A1C2B-3D5F60-A1B2C",
      "status": "Shipped",
      "ordered_at": "2026-10-20T15:02:11Z",
      "shipping_method": "Standard",
      "marked_shipped_at": "2026-10-21T09:14:00Z",
      "item_count": 1,
      "product_amount": 10.0,
      "shipping_amount": 1.31,
      "fee_amount": 1.45,
      "net_amount": 9.86,
      "total_amount": 11.31,
      "refund_amount": null,
      "refund_type": null,
      "refund_reason": null,
      "items": [
        { "sku_id": 4471902, "product_id": 21342, "product_line": "Magic", "product_name": "Sol Ring",
          "set_name": "Commander Masters", "card_number": "410", "condition": "Near Mint",
          "quantity": 1, "unit_price": 10.0, "extended_price": 10.0, "refunded_amount": null }
      ]
    }
  ],
  "next_cursor": null
}
```

Orders come newest first. Refunds and late line items show up the next time you read that order, so re-read the last few weeks when you sync.

## List pricing rules

```
GET /api/v1/store/pricing_rules
```

```json theme={null}
{
  "data": [
    {
      "id": "r_3f9a1c2e",
      "label": "Pokemon rares",
      "query": "game:pokemon r:rare",
      "priority": 1,
      "status": "active",
      "expires_at": null,
      "price_source": "market",
      "multiplier": 1.1,
      "mode": null,
      "never_go_down": false,
      "one_cent_below": null,
      "hard_floor": 0.25,
      "direct_fee_gap_bump": false,
      "pricecharting_floor": false,
      "velocity_boost": null,
      "velocity_decay": null,
      "velocity_decay_after_days": null,
      "velocity_decay_pct_per_week": null
    }
  ],
  "next_cursor": null
}
```

Rules come in priority order, lowest number first. `status` is `active`, `disabled` or `expired`.

## Limits

Each API key has a per-minute request limit set by your plan. Rejected API requests count toward this limit. Over it, you get `429 rate_limited` with a `Retry-After` header in seconds. Wait that long, then retry.

## Pages

Pass `next_cursor` back as `cursor`. Stop when it is `null`. A cursor works only for the store that received it; anything else returns `400 invalid_cursor`.


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