Verified AI crawlers
Coming soon: planned verified server crawler observations, separate from human visits.
Verified crawlers · Coming soon
Coming soon. Stripe is the live revenue integration. Existing saved records remain readable; this catalog does not establish a provider connection. New connections, authorization and sync are unavailable for this provider in this release.
Planned setup
The following describes the planned connection, once released.
Step 1
Configure a trusted server or proxy to send signed crawler request observations.
Step 2
Verify supported official IP ranges or reverse-and-forward DNS. A bot-like user agent alone is insufficient.
Step 3
Inspect verified provider, page and time reports. Unknown agents are not relabelled as verified crawlers.
Official Verified crawlers documentation
Set up StripeInstall server observation
Browser tracking cannot see crawlers that never run JavaScript. Download the Node.js 20+ helper into your server code, alongside its TypeScript declaration. It captures only supported crawler hints on GET and HEAD requests; Zijra independently verifies every request against official IP ranges or forward-confirmed reverse DNS.
Download server helper TypeScript declaration
Create the signed feed
Open your website’s Integrations and create the verified crawler feed. Copy its exact public HTTPS endpoint and signing secret into server-only environment variables named
Open crawler settingsZIJRA_CRAWLER_ENDPOINTandZIJRA_CRAWLER_SECRET. Use a deployment that accepts external requests; a protected preview cannot receive crawler reports. Feed ready means configuration is saved; the report remains empty until a verified request arrives.Keep the original source address
On a real Vercel deployment, the helper reads the platform’s overwritten
x-vercel-forwarded-forheader. It refuses local, private and malformed addresses. On another host, pass the client address from the trusted server socket or documented platform metadata. Arbitrary client headers cannot establish a crawler’s identity. An extra CDN may hide the original crawler address; unknown requests remain unverified.Connect your durable queue
Implement the helper’s
CrawlerOutboxcontract using your existing server database and scheduler. Append the sealed job once, lease due jobs atomically, and schedule retry work in the same transaction. Each claim increments its persisted attempt count. Completion and deletion must match the lease token. Enforce a bounded queue, erase expired jobs and never store plaintext source IPs or user agents.The helper seals observations with AES-256-GCM before the queue sees them. Five delivery attempts and a 23-hour expiry bound retention. It sends the same event ID on replay, respects Retry-After, blocks redirects and never waits inside the incoming request. Flush outstanding jobs before rotating the signing secret, because a changed secret cannot decrypt older queued observations.
Attach the Next.js proxy
For Next.js 16, place the code in
src/proxy.tsor the project-rootproxy.ts, beside your app directory. Merge it with existing routing and authentication. The example uses UmmahSignal; replace its exact allowed hosts for another website. Register background work withevent.waitUntil; without that support the helper refuses to start.Code exampleTypeScriptKeep your existing runtime and matcher compatible with your installed Next.js version. Older applications may use
middleware.ts. The Node helper needs a Node runtime; use a server action or backend integration when the existing middleware uses Edge.Run the worker and verify an actual receipt
Code exampleJavaScriptThe durable scheduler must invoke the worker after enqueue and at each saved retry time, including when no new website requests arrive. Inspect delivery failures in your server’s safe diagnostics. A user-agent-only test is ignored; it cannot prove a crawler visit. In Zijra, verify provider, purpose, requested page and actual time after a real crawler is received. Requests and response status are separate: this proxy observes the requested path and does not claim that the page returned a particular status.
Supported identities
OpenAI, Perplexity and Anthropic use their published IP lists. Googlebot and Bingbot require matching reverse DNS and a forward lookup back to the same address. Unsupported or unverified agents stay out of the verified report. No visitor identity, consent cookie, query string or account data enters the feed.
Sources: Next.js background proxy work, Vercel source-address header, Anthropic crawler identities, OpenAI crawlers, Perplexity crawlers.