AI Visibility Setup
Send request metadata to Hardal for AI agent, AI search bot, LLM crawler, and classic crawler analysis
AI Visibility analyzes bot, crawler, and AI agent traffic from request metadata sent to Hardal.
Hardal detects whether the request comes from a bot. If the request is not from a bot, Hardal discards it and does not process it. This keeps AI Visibility fully KVKK and GDPR compliant.
How to collect data
AI Visibility events must be created on the server side, from the layer that receives the original website request. Use a layer that can read every incoming request before the page is rendered in the visitor's browser, such as:
-
Your CDN layer
-
Your application server
Browser-side scripts are useful for human visitor analytics, but they are not reliable for bot and crawler visibility because many bots do not run client-side scripts.
Endpoint
Send events to:
POST https://analytics.usehardal.com/agent-events
Required headers:
| Header | Value |
|---|---|
Content-Type | application/json |
Tenant-Id | Find your Tenant-Id on your dashboard |
Payload fields
Send the following JSON fields with each request:
| Field | Type | Required | Description |
|---|---|---|---|
path | string | Yes | Requested path on the website. |
ip | string | Yes | Visitor IP address. |
userAgent | string | Yes | Raw User-Agent header from the request. |
eventTime | string | Yes | Request time in ISO 8601 format. |
sourceId | string | Yes | Source identifier. Use hardal unless the Hardal team gives you a different value. |
Example payload
{
"path": "/local-test",
"ip": "87.250.224.230",
"userAgent": "Mozilla/5.0 (compatible; YandexNews/4.0; +http://yandex.com/bots)",
"eventTime": "2026-04-29T15:12:17.836Z",
"sourceId": "hardal"
}
High-traffic websites
For high-volume websites, send AI Visibility events asynchronously from your CDN or application server. Do not block the visitor request while waiting for Hardal's response. You can use a fire-and-forget pattern: create the event from the incoming request, send it to Hardal in the background, and let the original website request continue normally.