# Every day with a ledger

> Every day an order ledger exists for, oldest first.

Source: https://firmtape.com/docs/developers/orders/sessions

Every day an order ledger exists for, oldest first.

`GET /orders/api/sessions`

Plan ORDERS · Key scope orders · Limit 20,000 calls a day on Orders API, 100,000 on Orders Team, per account · Version 1.0.0 · Since 2026-09-24

**This endpoint serves:** [ORDERS: Orders API and MCP](https://firmtape.com/docs/orders#orders-api). **Plan:** [ORDERS](https://firmtape.com/features/orders). Free on every finished session. Today's ledger, live, and the live POSITIONS check are the ORDERS plan.

## Response

Oldest first.

| Field | Meaning | Unit |
| --- | --- | --- |
| `sessions` (array) | The days, `YYYY-MM-DD`. |  |
| `first` (string \| null) | The oldest. |  |
| `last` (string \| null) | The newest. |  |

## Errors

| Status | Code | What to do |
| --- | --- | --- |
| 401 | `no_key` | No key, or a revoked one. Send `Authorization: Bearer <key>` with a key of the product's scope. |
| 403 | `plan` | The account is not on the Orders API or Team plan. Move to the Orders API or Team plan. |
| 429 | `rate` | The day's calls are spent. Wait for midnight ET, when the count resets. |

## Request

```sh
curl \
  -H "Authorization: Bearer $FIRMTAPE_ORDERS_KEY" \
  "https://firmtape.com/orders/api/sessions"
```

```python
import os, requests

H = {"Authorization": f"Bearer {os.environ['FIRMTAPE_ORDERS_KEY']}"}
r = requests.get("https://firmtape.com/orders/api/sessions", headers=H)
print(r.status_code, r.text[:500])
```

```js
const r = await fetch("https://firmtape.com/orders/api/sessions", {
  method: "GET",
  headers: { Authorization: `Bearer ${process.env.FIRMTAPE_ORDERS_KEY}` },
});
console.log(r.status, await r.text());
```

## Example response

```json
{
  "sessions": [
    "2026-08-14",
    "2026-08-17"
  ],
  "first": "2026-08-14",
  "last": "2026-08-17"
}
```

## Changes

- 2026-09-24: Added.
