# A day file

> One finished session: <day>.json.gz, the full payload, or <day>.lite.json.gz, the smaller summary twin.

Source: https://firmtape.com/docs/developers/dataset/files

One finished session: `<day>.json.gz`, the full payload, or `<day>.lite.json.gz`, the smaller summary twin.

`GET /snapshots/{file}`

Plan DATASET · Key scope dataset · Limit No breadth limit for a licence holder · Version 1.0.0

**This endpoint serves:** [DATASET: The day files and the dictionary](https://firmtape.com/docs/dataset#archive-files), [DATASET: A new session every evening](https://firmtape.com/docs/dataset#evening-delivery). **Plan:** [DATASET](https://firmtape.com/features/dataset). The DATASET licence, monthly or yearly. Reading single sessions on the site stays free.

## Parameters

| Name | What it does | Default | Error |
| --- | --- | --- | --- |
| `file` (required) path, string | `YYYY-MM-DD.json.gz` or `YYYY-MM-DD.lite.json.gz`. |  |  |

## Response

Gzipped JSON.

## Errors

| Status | Code | What to do |
| --- | --- | --- |
| 404 |  | No such session. |

## Request

```sh
curl \
  -H "Authorization: Bearer $FIRMTAPE_LAB_KEY" \
  "https://firmtape.com/snapshots/2026-10-09.json.gz"
```

```python
import os, requests

H = {"Authorization": f"Bearer {os.environ['FIRMTAPE_LAB_KEY']}"}
r = requests.get("https://firmtape.com/snapshots/2026-10-09.json.gz", headers=H)
print(r.status_code, r.text[:500])
```

```js
const r = await fetch("https://firmtape.com/snapshots/2026-10-09.json.gz", {
  method: "GET",
  headers: { Authorization: `Bearer ${process.env.FIRMTAPE_LAB_KEY}` },
});
console.log(r.status, await r.text());
```
