Create Tracking Snapshot

Capture a point-in-time snapshot of rankings and LLM citations for later diff computation.

POSThttps://api.boringmarketing.com/track/brands/{brand_id}/snapshot

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

brand_idstringrequired

The brand UUID.

Request body

None.

Response

{
  "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

FieldDescription
snapshot_idUUID of the stored snapshot
rankings_countNumber of ranked keywords captured (up to 200)
citationsPer-platform citation counts at capture time. Keys match DataForSEO's sources_platform.key.

Example

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

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.