citlyze docs

Connect log sources

Feed server and CDN logs into AI crawler tracking.

The tracking snippet reports what runs in a browser or on your server, but many AI bots fetch pages without ever executing JavaScript. Log sources close that gap: connect your CDN or server logs and every AI-relevant request is counted, with its own source label so you can tell log-sourced hits apart from snippet-sourced ones.

Only AI-relevant requests are stored. Known AI crawlers, bot-like agents, and visits referred by AI assistants are kept; all other traffic is discarded on arrival and never written anywhere. Verification tiers apply to log-sourced hits exactly as they do to snippet hits.

All log sources authenticate with a log-ingest key, which is separate from your tracking snippet keys and can only submit logs. Find everything below under AI crawlers, then Install, in the Log sources panel.

Cloudflare (one click)

The fastest path for Cloudflare-proxied sites. Create an API token with exactly three permissions: Workers Scripts Edit, Zone Read, and Workers Routes Edit. Paste the token and your domain, and Citlyze deploys a small Worker on your zone and attaches it to your domain's route.

The Worker is strictly pass-through: it never reads or modifies request or response bodies, and any internal error fails open so your site is never affected. It reports request metadata (path, status, user agent, IP, referrer, country) after the response has been served. The token is used once for setup and never stored.

Two notes:

  • The route only fires on proxied (orange-cloud) DNS records.
  • On the Workers free tier, requests share a daily quota. The pre-filter option makes the Worker report only AI user agents, which saves quota but means newly registered crawlers are missed until you redeploy the Worker.

Prefer not to paste a token? Choose the manual option and Citlyze generates the same Worker code for you to paste into the Cloudflare dashboard yourself.

For very high-traffic zones, Cloudflare Logpush is the better fit: create an HTTP destination pointing at your ingest URL with the key as a key= URL parameter, and Citlyze filters the pushed batches the same way.

Vercel (log drain)

Paste a Vercel token and Citlyze creates a log drain that streams request logs automatically. Scope it to one project or leave the project blank to cover the team. The token is kept encrypted for one purpose only: removing the drain when you disconnect. Ingestion itself authenticates with the log-ingest key embedded in the drain URL.

Generic webhook

Any system that can POST JSON can feed logs. Send batches of up to 500 entries to the ingest endpoint with your log-ingest key in the X-API-Key header. Each entry carries a timestamp, method, URL, status, and user agent, plus optional client IP, referrer, and country. The full contract is in the log ingestion API reference.

File upload

For a one-off backfill, paste a slice of your access logs directly into the Upload tab. Two formats are supported: CSV with a header row (common CDN export headers are recognized automatically) and the Apache/Nginx combined log format. Entries older than 30 days are skipped, and the summary tells you how many lines were parsed, stored, and discarded.

Other CDNs

CloudFront and Akamai users can reach the same endpoint today through the generic webhook contract: point a Lambda@Edge function, a DataStream HTTPS destination, or any log shipper at the ingest URL with your key. Native one-click flows for these providers follow based on demand.

Reading the results

Log-sourced hits appear in the same AI crawler and AI traffic views as snippet hits. The public API exposes the source on every row, so exports can separate what the snippet saw from what your logs saw.

On this page