> For the complete documentation index, see [llms.txt](https://docs.airops.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.airops.com/api-reference-1/brand-kits/agent-analytics.md).

# Agent Analytics

## List Agent Analytics

> Agent Analytics: daily bot requests to the Brand Kit's tracked web pages, one row per date, platform and crawl\_type with a request count. Rows with no requests are omitted. Every platform and crawl type is returned; sum the rows to reproduce the Agent Analytics tab. Paginate through every page first (loop while page <= meta.total\_pages): a date range commonly has more rows than fit on one page, so summing only the first page undercounts. Tracked engines are chat\_gpt, perplexity, gemini, google\_ai\_mode, claude. "Crawls" are rows with crawl\_type ai\_search or ai\_training. Total Crawls: sum crawls for tracked engines. AI Agent Visits: sum user\_browse for tracked engines. Top Crawling Engine: the tracked engine with the most crawls. Crawl Type Breakdown: for tracked engines, ai\_search (Web Search) and ai\_training (Training), each as a percentage of their combined total. Engine Breakdown: per tracked engine, ai\_training (Training), ai\_search (Web Search), their sum (Total Crawls) and user\_browse (AI Agent Visits). Crawl Activity vs. AI Agent Visits chart: per date, sum each crawl\_type across all platforms, including generic crawlers such as google and bing. AI Agent Visits over time: user\_browse per date per platform; the chart shows tracked engines. Filter by web\_page\_id to get the same numbers for one page. Pages table Total Crawls for one page: filter by web\_page\_id and sum count across all rows (every platform and crawl type). Date range: as on the Agent Analytics tab, requests stamped exactly 00:00:00 on the day after end\_date are included and returned as a row dated that next day. Drop rows dated after end\_date to match the Pages table exactly.

```json
{"openapi":"3.0.1","info":{"title":"API V1","version":"v1"},"tags":[{"name":"Agent Analytics"}],"servers":[{"url":"https://api.airops.com","variables":{"defaultHost":{"default":"api.airops.com"}}}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/public_api/brand_kits/{brand_kit_id}/agent_analytics/list":{"post":{"summary":"List Agent Analytics","description":"Agent Analytics: daily bot requests to the Brand Kit's tracked web pages, one row per date, platform and crawl_type with a request count. Rows with no requests are omitted. Every platform and crawl type is returned; sum the rows to reproduce the Agent Analytics tab. Paginate through every page first (loop while page <= meta.total_pages): a date range commonly has more rows than fit on one page, so summing only the first page undercounts. Tracked engines are chat_gpt, perplexity, gemini, google_ai_mode, claude. \"Crawls\" are rows with crawl_type ai_search or ai_training. Total Crawls: sum crawls for tracked engines. AI Agent Visits: sum user_browse for tracked engines. Top Crawling Engine: the tracked engine with the most crawls. Crawl Type Breakdown: for tracked engines, ai_search (Web Search) and ai_training (Training), each as a percentage of their combined total. Engine Breakdown: per tracked engine, ai_training (Training), ai_search (Web Search), their sum (Total Crawls) and user_browse (AI Agent Visits). Crawl Activity vs. AI Agent Visits chart: per date, sum each crawl_type across all platforms, including generic crawlers such as google and bing. AI Agent Visits over time: user_browse per date per platform; the chart shows tracked engines. Filter by web_page_id to get the same numbers for one page. Pages table Total Crawls for one page: filter by web_page_id and sum count across all rows (every platform and crawl type). Date range: as on the Agent Analytics tab, requests stamped exactly 00:00:00 on the day after end_date are included and returned as a row dated that next day. Drop rows dated after end_date to match the Pages table exactly.","tags":["Agent Analytics"],"operationId":"listBrandKitsAgentAnalytics","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"date":{"nullable":true,"type":"string","description":"Day of the requests (ISO 8601). Can be the day after end_date for requests stamped exactly 00:00:00 that day."},"platform":{"nullable":true,"type":"string","description":"Bot platform (engine) that made the requests. One of chat_gpt, claude, perplexity, google_ai_mode, gemini, meta, google, apple, bing, bytedance, commoncrawl, other_bot. Tracked engines are chat_gpt, perplexity, gemini, google_ai_mode, claude; google is Googlebot and GoogleOther, other_bot is any other bot."},"crawl_type":{"nullable":true,"type":"string","description":"ai_search: Web Search Crawls, AI search bots fetching pages for search answers (e.g. OAI-SearchBot, PerplexityBot). ai_training: Training Crawls, AI bots collecting pages as training data (e.g. GPTBot, ClaudeBot, Google-Extended). user_browse: AI Agent Visits, AI assistants fetching pages live on behalf of a person (e.g. ChatGPT-User, Claude-User). other: any other bot request (e.g. Googlebot)."},"count":{"nullable":true,"type":"integer","description":"Number of requests"}}}},"meta":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"},"start_date":{"type":"string","description":"Start date applied (ISO 8601)"},"end_date":{"type":"string","description":"End date applied (ISO 8601)"}}}},"required":["data","meta"]}}}},"400":{"description":"Bad request - invalid parameters, filters, or sort options"},"401":{"description":"Unauthorized - invalid or missing authentication token"},"404":{"description":"Not found - resource does not exist"},"412":{"description":"Precondition failed - AEO not configured for this brand kit"}},"parameters":[{"name":"brand_kit_id","in":"path","required":true,"schema":{"type":"integer"},"description":"The Brand Kit ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brand_kit_id":{"type":"integer","description":"The ID of the Brand Kit"},"start_date":{"type":"string","description":"Start date (ISO 8601), inclusive. Defaults to 1 month ago."},"end_date":{"type":"string","description":"End date (ISO 8601), inclusive. Defaults to today. As on the Agent Analytics tab, requests stamped exactly 00:00:00 the next day are also included, dated that next day."},"filters":{"type":"array","description":"Filter results. Nested fields (e.g. `writing_rules.text`) filter within an included association and require that association in `includes`.\n\n**Available fields:**\n- **platform** (EQUALS, IN): Filter by bot platform\n- **crawl_type** (EQUALS, IN): Filter by crawl type\n- **web_page_id** (EQ): Filter to one tracked web page (id from list_pages)","items":{"type":"object","properties":{"field":{"type":"string","enum":["platform","crawl_type","web_page_id"],"description":"Field to filter on. platform: Filter by bot platform (values: chat_gpt, claude, perplexity, google_ai_mode, gemini, meta, google, apple, bing, bytedance, commoncrawl, other_bot); crawl_type: Filter by crawl type (values: ai_search, ai_training, user_browse, other); web_page_id: Filter to one tracked web page (id from list_pages)"},"operator":{"type":"string","enum":["EQUALS","IN","EQ"],"description":"Filter operator.\n\n- **EQ/EQUALS**: Exact match\n- **NEQ**: Not equal\n- **GT/GEQ/LT/LEQ**: Numeric/date comparisons\n- **CONTAINS**: Partial text match\n- **STARTS_WITH**: Text prefix match\n- **IN**: Match any value in array\n- **HAS_ALL**: (tags filter) match only items having every listed value\n- **NOT_IN**: (tags filter) match only items having none of the listed values"},"value":{"description":"Filter value (type depends on field and operator)"}},"required":["field","operator","value"]}},"fields":{"type":"array","description":"Select additional fields to return.\n\n**Optional fields:**\n- **date**: Day of the requests (ISO 8601). Can be the day after end_date for requests stamped exactly 00:00:00 that day.\n- **platform**: Bot platform (engine) that made the requests. One of chat_gpt, claude, perplexity, google_ai_mode, gemini, meta, google, apple, bing, bytedance, commoncrawl, other_bot. Tracked engines are chat_gpt, perplexity, gemini, google_ai_mode, claude; google is Googlebot and GoogleOther, other_bot is any other bot.\n- **crawl_type**: ai_search: Web Search Crawls, AI search bots fetching pages for search answers (e.g. OAI-SearchBot, PerplexityBot). ai_training: Training Crawls, AI bots collecting pages as training data (e.g. GPTBot, ClaudeBot, Google-Extended). user_browse: AI Agent Visits, AI assistants fetching pages live on behalf of a person (e.g. ChatGPT-User, Claude-User). other: any other bot request (e.g. Googlebot).\n- **count**: Number of requests","items":{"type":"string","enum":["date","platform","crawl_type","count"]}},"sort":{"type":"string","enum":["date","-date","count","-count"],"description":"Sort field. Prefix with - for descending.\n\n**Available sort fields:**\n- **date/-date**: Sort by date\n- **count/-count**: Sort by request count. Use -count for the largest first.","default":"date"},"page":{"type":"integer","default":1,"description":"Page number"},"per_page":{"type":"integer","default":25,"maximum":100,"description":"Items per page"}},"required":["brand_kit_id"]}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.airops.com/api-reference-1/brand-kits/agent-analytics.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
