Get Tracking Changes
Compute the delta between the latest tracking snapshot and an earlier one. Returns structured ranking and citation deltas.
Computes the difference between the most recent snapshot and the snapshot at or before a given since time. Returns structured deltas: ranking improvements, ranking declines, citation gains, citation losses.
Requires at least one prior snapshot from POST /track/brands/{brand_id}/snapshot.
Path parameters
brand_idstringrequiredThe brand UUID.
Query parameters
sincestringrequiredISO 8601 datetime. The endpoint finds the most recent snapshot at or before this time and diffs the latest snapshot against it.
Response
{
"brand_id": "ea502f67-338b-47e4-a245-5c4eea8bd8d2",
"from_snapshot": {
"snapshot_id": "snap-1",
"created_at": "2026-03-07T10:00:00Z"
},
"to_snapshot": {
"snapshot_id": "snap-2",
"created_at": "2026-04-07T10:00:00Z"
},
"rankings": {
"improvements": [
{ "keyword": "ai marketing tools", "from": 14, "to": 6, "delta": 8 }
],
"declines": [
{ "keyword": "marketing automation", "from": 4, "to": 9, "delta": -5 }
],
"new": [
{ "keyword": "ai content workflow", "to": 11 }
],
"lost": []
},
"citations": {
"chat_gpt": { "from": 18, "to": 24, "delta": 6 },
"google": { "from": 8, "to": 10, "delta": 2 }
}
}
Returns 404 if there are no snapshots, or 422 if since cannot be parsed as ISO 8601.
Example
curl -H "X-API-Key: $BM_API_KEY" \
"https://api.boringmarketing.com/track/brands/$BRAND_ID/changes?since=2026-03-07T10:00:00Z"
Use this on a schedule to drive the 7/30/90-day milestone observations. For example: on publish, call POST /track/brands/{id}/snapshot; 7 days later, capture another snapshot and call this endpoint with ?since=<publish_timestamp> to get the exact 7-day delta; then report it via POST /track/outcomes/report with event_type: "observed_7d".