GrowthBook has SDK-based webhooks that trigger a script on your server whenever something changes within GrowthBook which will affect that SDK.Documentation Index
Fetch the complete documentation index at: https://growthbook-preview.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Adding a Webhook
When logged into GrowthBook as an admin, navigate to SDK Connections and select an existing SDK Connection. Under the SDK Webhooks section you can add a webhook. There are built-in webhook types for syncing to Cloudflare KV, Fastly KV, and Vercel Edge Config. For everything else, you can configure a generic HTTP Endpoint to be hit. Once a SDK webhook is created you will be able to view the status and fire a test event.VPCs and Firewalls
If your webhook endpoint is behind a firewall and you are using GrowthBook Cloud, make sure to whitelist the ip address52.70.79.40.
Verify Signatures
SDK Webhook payloads are signed with a shared secret so you can verify they actually came from GrowthBook.Standard Webhooks
We follow the Standard Webhooks specification, so you can use any of their SDKs to verify our webhook signatures.Custom Verification
Webhook requests sent to your endpoint include 3 headers:webhook-id- The unique id for this eventwebhook-timestamp- The unix integer timestamp of the eventwebhook-signature- The signature (format described below)
webhook-id, the webhook-timestamp, and the body contents, all separated by dots (.). Then, we create an HMAC SHA-256 hash of this using the shared secret.
What we set in the webhook-signature header is the hashing algorithm identifier for HMAC SHA-256 (v1), followed by a comma (,), followed by the base64-encoded hash from above. For example:
Errors and Retries
If your endpoint returns any HTTP status besides200, the webhook will be considered failed.
Webhooks are retried up to 2 additional times with an exponential back-off between attempts.
You can view the status of your webhooks in the GrowthBook app under SDK Connections.
Supported HTTP Methods
- GET
- POST
- PUT
- DELETE
- PURGE
- PATCH
Payload Format
For all methods other thanGET, you may send a payload body. By default, webhooks will send in the “Standard” format.
Standard
Follows the Standard Webhooks specification. Inludes a JSON-encoded SDK Payload in thedata.payload field.
Example payload:
data.payload object contains the exact JSON format that our SDKs are expecting. For example, you can pass this directly into the JavaScript SDK:
Standard (no SDK Payload)
Same as above, but without thedata.payload field.
Example payload:
SDK Payload
Sends the raw SDK Payload using the same format as our SDK features endpoint. This is usually the correct format if you are using the webhook to set a cache value or assigning key/value storage. Example payload:Vercel Edge Config
Formats the body to work directly with Vercel’s Edge Config API. Example payload:your_* placeholders with actual values.
- Endpoint URL =
https://api.vercel.com/v1/edge-config/your_edge_config_id_here/items - HTTP Method =
PATCH - Headers =
{ "Authorization": "Bearer your_vercel_api_token_here" } - Payload Key =
your_value_key_here(defaults togb_payloadif left blank)

