List which bot asked for which page
list_crawlsOne row per path and bot: when that bot first and last asked for the path, how many times, and the status it got the last time.
Instructions
One row per path and bot: when that bot first and last asked for the path, how many times, and the status it got the last time. Unlike list_bot_visits this covers everything since tracking began rather than a period, and is ordered by the last visit.
Coverage rather than volume. A page a bot has never fetched does not appear here at all, and cannot be quoted by that bot however well it answers the question. A lastStatusCode outside the 2xx range is worse than silence: the last thing that bot recorded about the page is that it was broken, and it carries that until it comes back.
Paths are in the same form get_sitemap reports, so an address listed there with no row here is a page nothing has ever come for.
Only the 3 000 most recently visited rows are searched, unless path names one page, which reads all of its rows.
A bot visit is a machine fetching a page, not a person reading one. It is the supply side of visibility: an assistant can only quote a page its bot was able to fetch, so this says whether the site is reachable and readable to them at all. It is a different measurement from being named in an answer (list_prompts, list_competitors), from being cited as a source (list_sources), and from somebody arriving afterwards (get_ai_traffic). kind=ai is the assistants; kind=seo is classic search engines and SEO tools.
A project whose integration is not connected answers this with zeros and empty lists, which reads exactly like a site nobody visits. Call get_integrations_status before reporting a zero or an empty list as a finding: it says whether Search Console, Google Analytics, the bot tracker and the sitemap are connected, and a sync that is failing. Not connected means the figures say nothing about the site, never that it had no traffic; say the integration is missing and that it can be connected in the PromptEye app.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | `ai` for AI assistants and their bots, `seo` for search engines and SEO tools. Omit it for both. | |
| path | No | Only this exact path, without the domain and starting with `/`, e.g. `/pricing`. | |
| botId | No | Only this one bot, by the id the other traffic tools report — `chatgpt-user`, `gptbot`, `googlebot` and so on. An unknown id is rejected by the API rather than ignored. | |
| limit | No | How many entries to return, at most 200. Defaults to 50. | |
| cursor | No | The nextCursor of the previous page. Omit it to start from the first one. | |
| vendor | No | Only bots run by this company, spelled as the API spells it: OpenAI, Anthropic, Google, Perplexity, Meta, Amazon, Apple, Microsoft, ByteDance, Yandex, DuckDuckGo, Ahrefs, Semrush, Moz, CommonCrawl, Mistral, Cohere and others. This is not the `assistant` of get_ai_traffic, which matches a referrer instead. | |
| projectId | Yes | The project to work on — its id from list_projects. Required on every call, so that parallel conversations never read or write each other's project. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| nextCursor | Yes | Pass as cursor to read the next page. null = this was the last page. |