Cloudflare Logpush crawler logs

Send Cloudflare HTTP request logs to WatchLLM so crawler analytics can classify GPTBot, ClaudeBot, PerplexityBot, Google-Extended, and other AI crawler visits.

Endpoint

POST /api/events/cloudflare

Authenticate with a project-scoped API key:

curl -X POST "https://your-watchllm-host.com/api/events/cloudflare" \
  -H "Authorization: Bearer $WATCHLLM_API_KEY" \
  -H "content-type: application/x-ndjson" \
  --data '{"EdgeStartTimestamp":"2026-05-01T12:02:00Z","EdgeResponseStatus":200,"ClientRequestMethod":"GET","ClientRequestPath":"/","ClientRequestHost":"example.com","ClientRequestUserAgent":"Mozilla/5.0 GPTBot/1.3","EdgeResponseContentType":"text/html","ClientCountry":"US"}'

Logpush fields

Include timestamp, response status, request method, host, path, query string, user agent, content type, referrer, client IP, and country when available. ClientCountry is stored directly; live GeoIP fallback runs whenever the configured GeoIP provider credentials are present.

Verification

Open /workspace/settings/crawler-logs?provider=cloudflare to view the in-app setup card, then confirm accepted rows in /workspace/crawlers.