# Share-of-Voice snapshot completed

**Event:** `rankings.sov_snapshot_completed`

**Event name:** `rankings.sov_snapshot_completed`

A Share-of-Voice snapshot was stored for a keyword (one event per keyword). Scope: location-scoped. Delivered as a signed HTTP POST to your Webhooks URL.

Source: https://developer.synup.com/webhooks/rankings-sov-snapshot-completed

## Header parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `X-Synup-Signature` | string | required | sha256=base64(HMAC-SHA256(signing_secret, raw_request_body)). Verify with your signing secret before processing; reject on mismatch. |

## Request body

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `event` | string | optional | Dotted event name. |
| `timestamp` | string | optional | ISO-8601 UTC time the event was emitted. |
| `account_id` | integer | optional | Synup account the event belongs to. |
| `location_id` | string | optional | Numeric string for location-scoped events; null for brand-scoped events. |
| `data` | object | optional |  |
| `data.keyword_id` | string | optional | SoV keyword identifier. |
| `data.engine` | string | optional | Search engine (defaults to "google"). |
| `data.snapshot_date` | string | optional | Capture date, YYYY-MM-DD. |
| `data.sov` | number | optional | Share-of-voice value. |
| `data.rank` | integer | optional | Computed rank position. |

## Responses

| Status | Description |
| --- | --- |
| `200` | Your endpoint acknowledges receipt with any 2xx. A non-2xx response or a timeout (>10s) is treated as a failed delivery. |
