---
title: Create Tracking Snapshot
api: POST /track/brands/{brand_id}/snapshot
description: "Capture a point-in-time snapshot of rankings and LLM citations for later diff computation."
---

> **For AI agents:** the complete documentation index is at [llms.txt](https://docs.boringmarketing.com/llms.txt). Append `.md` to any page URL for its markdown version.

Captures a stateful snapshot of the brand's current Google rankings (up to 200 keywords) and per-platform LLM citation counts. Snapshots are the input to `GET /track/brands/{brand_id}/changes?since=` for computing deltas over time.

## Path parameters

<ParamField path="brand_id" type="string" required>
  The brand UUID.
</ParamField>

## Request body

None.

## Response

```json
{
  "brand_id": "ea502f67-338b-47e4-a245-5c4eea8bd8d2",
  "snapshot_id": "snap-uuid",
  "created_at": "2026-04-07T10:00:00Z",
  "rankings_count": 127,
  "citations": {
    "chat_gpt": 24,
    "google": 10
  }
}
```

## Field notes

| Field | Description |
|-------|-------------|
| `snapshot_id` | UUID of the stored snapshot |
| `rankings_count` | Number of ranked keywords captured (up to 200) |
| `citations` | Per-platform citation counts at capture time. Keys match DataForSEO's `sources_platform.key`. |

## Example

```bash
curl -X POST \
  -H "X-API-Key: $BM_API_KEY" \
  https://api.boringmarketing.com/track/brands/$BRAND_ID/snapshot
```

<Tip>
Snapshot before and after publishing any new content — the difference tells the learning loop what the content actually moved. A good rhythm is: snapshot on publish, snapshot at 7 days, snapshot at 30 days. Use `GET /track/brands/{id}/changes?since=<publish_timestamp>` to compute deltas between them.
</Tip>
