Skip to main content
TroopyDocs
Open Troopy
Troopy

API reference / Analytics

Get the AI crawler traffic

The AI crawlers that read the site in a period, as the site's server reported them with the troopy-analytics crawlers package. It gives totals, and the requests by category, by company and by crawler. The categories are answer, search, training and other. An answer crawler reads a page to answer a person in ChatGPT, Claude or Perplexity. It also gives the requests for robots.txt, llms.txt, sitemaps and .md files. verified counts the requests from the published IP ranges of the company.

get/api/v1/analytics/bots

Authorization

HeaderAuthorization: Bearer <API key>
Or the headerX-API-Key: <API key>
API keyMake one in Troopy under Settings > API keys. It acts as you, in its workspace.

Other ways to call it

CLItroopy analytics bots
MCP tooltroopy_get_analytics_bot_traffic
Rate limit120 calls in 60 seconds, for each key

Query parameters

periodenum<string>

now is the last 10 minutes. 7d and 30d end today. 3m, 6m and 12m are whole months that end with this month. week starts on Monday. custom needs from and to

nowtodayyesterday24h7d30d3m6m12mweekmonthyearallcustom

Default "30d"

fromstring

YYYY-MM-DD, in the workspace's time zone

date

tostring

YYYY-MM-DD. The period includes this day

date

categoryenum<string>

answer (a read to answer a person), search (indexing), training or other

answersearchtrainingother

verificationenum<string>

verified: from the company's published IP ranges

allverifiedunverified

Default "all"

companystring

At most 40 characters

Response

200 · application/json
data*object
8 properties
total*integer
verified*integer

Requests from the company's published IP ranges

byCategory*object
4 properties
answer*integer
search*integer
training*integer
other*integer
companies*array<object>
4 properties
company*string
requests*integer
verified*integer
answers*integer
crawlers*array<object>
6 properties
id*string
company*string
agent*string
category*enum<string>

answersearchtrainingother

requests*integer
verified*integer
files*array<object>

robots.txt, llms.txt, sitemaps and .md files

2 properties
kind*string
requests*integer
buckets*array<string>

The period's buckets, by its interval

series*array<object>

Each company's requests over time, by category

3 properties
company*string
category*enum<string>

answersearchtrainingother

counts*array<integer>

Requests in each bucket

Errors

400 invalid_inputFix the field named in detail. Each operation's schema is in /api/v1/openapi.json.
401 unauthorizedSend an API key as `Authorization: Bearer tr_live_...`. Create one in Troopy under Settings.
403 forbiddenThe key lacks a scope this operation needs, or its owner lacks the role. detail says which; create a key with the scope, or ask an organization owner or admin.
429 rate_limitedWait the number of seconds in Retry-After, then retry.