Bots

Get AI Summary

Returns crawls and referrals per AI operator, side by side.

GET /api/sites/:site/bots/ai-summary

Returns one row per AI operator: how much of your site it read, and how many visits it sent back.

The two numbers come from different places. Reads are bot events whose user agent names the operator; visits back are sessions in your normal analytics that arrived from that company's product (the AI acquisition channel). Neither is very interesting alone — "OpenAI read 4,120 pages and sent 12 visits" is the sentence this endpoint exists to produce.

Operators that only read, and operators that only referred, both appear; the missing side reads 0.

Path Parameters

Prop

Type

Query Parameters

Accepts all Common Parameters (time and filters).

Filters apply to both halves, using the bot filter subset described in Get Bots by Dimension.

Response

Prop

Type

AiSummaryRow Object

Prop

Type

Only bots that execute JavaScript reach Rybbit. Crawlers that fetch HTML and run nothing — which includes most training crawlers — are absent unless your server reports them. See Bot detection.

Request
curl -X GET "https://app.rybbit.io/api/sites/123/bots/ai-summary?start_date=2024-01-01&end_date=2024-01-31&time_zone=America/New_York" \
  -H "Authorization: Bearer your_api_key_here"
Request
const response = await fetch(
  'https://app.rybbit.io/api/sites/123/bots/ai-summary?start_date=2024-01-01&end_date=2024-01-31&time_zone=America/New_York',
  {
    headers: {
      'Authorization': 'Bearer your_api_key_here'
    }
  }
);

const data = await response.json();
Request
import requests

response = requests.get(
    'https://app.rybbit.io/api/sites/123/bots/ai-summary',
    params={
        'start_date': '2024-01-01',
        'end_date': '2024-01-31',
        'time_zone': 'America/New_York',
    },
    headers={'Authorization': 'Bearer your_api_key_here'},
)

data = response.json()
Response
{
  "data": [
    {
      "operator": "OpenAI",
      "crawls": 6120,
      "training_crawls": 4400,
      "search_crawls": 900,
      "agent_requests": 820,
      "referrals": 214,
      "crawls_per_referral": 28.6
    },
    {
      "operator": "Perplexity",
      "crawls": 1904,
      "training_crawls": 0,
      "search_crawls": 1300,
      "agent_requests": 604,
      "referrals": 341,
      "crawls_per_referral": 5.6
    }
  ]
}