What Sanity Webhooks does
Sanity's GROQ-powered webhooks send an HTTP request with a JSON payload when documents in a Content Lake dataset are created, updated, or deleted; by default, draft changes do not trigger them. A GROQ filter controls which documents fire the webhook, and the payload defaults to the entire changed document but can be reshaped with a GROQ projection. Deliveries run one concurrent request per webhook with a 30-second timeout, and 500-range or 429 responses trigger retries. Requests include Sanity-specific headers such as sanity-transaction-id, sanity-document-id, sanity-operation, and an idempotency-key for deduplication.
How to identify Sanity Webhooks
Temso identifies Sanity Webhookstraffic by matching the request's User-Agent header against this pattern. User-agent strings can be spoofed, so treat a match as an indication, not proof.
Sanity\.io webhook deliverySanity Webhooks FAQ
What is Sanity Webhooks?
It is Sanity's GROQ-powered webhook service for the Content Lake: when documents matching a configured GROQ filter are created, updated, or deleted, Sanity sends a JSON payload to a URL you define.
Can I block Sanity Webhooks with robots.txt?
No. Sanity webhooks only call URLs that a Sanity project configured and are not crawlers, so robots.txt does not apply. To stop the traffic, delete the webhook in the Sanity project or block the egress IP addresses Sanity publishes at sanity.io/files/webhooks-egress-ips.txt.
About Operational Bots
Monitoring, security scanning, link previews, webhooks, and feed fetchers: the utility traffic that keeps integrations and shared links working.
Most of this traffic is service-critical or user-triggered. Webhooks and previews don't follow robots.txt, and blocking them tends to break things you rely on.