Get Bot traffic summary
GET https://datafa.st/api/v1/analytics/bot-trafficReturn accepted Bot traffic totals, companies, exact crawler agents, verification counts, and a timeseries for one website. Use
category=answer_fetch to answer whether assistants such as ChatGPT fetched pages to answer users.MCP equivalent:
datafast_bot_traffic_summary. If no dates are supplied, the endpoint returns the last 30 calendar days in the website timezone.Related: Bot traffic API · MCP tools
Request
Query parameters
websiteIdstring
Website ObjectId used by account tokens to choose which website to query or manage. Website ObjectId. Omit with a
df_ website key; required with a dft_ account token.startAtstring
Start of the reporting window. Use it with
endAt to query a specific date range instead of the endpoint default. Inclusive start as YYYY-MM-DD or ISO 8601 with Z or a UTC offset. Provide with endAt; both default to the last 30 calendar days when omitted.endAtstring
End of the reporting window. Must be paired with
startAt so DataFast can build the date range. Inclusive end as YYYY-MM-DD or ISO 8601 with Z or a UTC offset. Provide with startAt.timezonestring
Timezone used to interpret dates and group analytics buckets. Defaults to the website timezone. IANA timezone such as
America/New_York, Europe/Paris, or UTC. Defaults to the website timezone.intervalstring
Controls how time-series rows are grouped. For example,
day returns one row per day and hour returns one row per hour. hour, day, week, or month. Inferred from the requested range when omitted.categorystring
all, answer_fetch, search_index, training, or ai_crawler. Defaults to all.verificationstring
all, ip_verified, or user_agent_only. Defaults to all accepted requests.companystring
Exact company name returned by the API, such as
OpenAI. Defaults to all.crawlerIdstring
Exact ID returned in
crawlers[].id, such as OpenAI::ChatGPT-User::answer_fetch.Response
Returns a JSON object with
status: "success" and endpoint-specific fields in data (and pagination when the endpoint is paginated).Response fields
data[].websiteIdstring
Website ObjectId used by account tokens to choose which website to query or manage.
data[].domainstring
Tracked domain.
data[].rangeobject
Resolved
startAt, endAt, timezone, and interval.data[].filtersobject
Resolved category, verification, company, and crawler ID filters.
data[].totalRequestsnumber
Accepted requests matching the filters.
data[].aiAnswerRequestsnumber
Requests made by an AI assistant to answer a user.
data[].indexingRequestsnumber
Search or retrieval indexing requests.
data[].trainingRequestsnumber
Model-training crawler requests.
data[].otherCrawlerRequestsnumber
Other recognized AI crawler requests.
data[].ipVerifiedRequestsnumber
Requests whose crawler IP was verified.
data[].userAgentOnlyRequestsnumber
Accepted requests matched only by user agent.
data[].companies[]array
Per-company request, category, verification, and percentage totals.
data[].crawlers[]array
Exact crawler IDs, companies, user agents, categories, counts, and percentages.
data[].timeseries[]array
Time buckets with request, category, and verification totals.
Authentication
Use a
df_ website API key for one website, or a dft_ account token with analytics:read.With
df_, the website is inferred from the key. With dft_, add websiteId to the query and make sure the token can access that website.The account must have active DataFast API access. Read authentication and scopes for token creation and permissions.
Errors
400 — Invalid or incomplete date range, timezone, interval, category, verification, company, or crawler ID.
404 — Website not found or the caller is not its owner.
500 — Bot traffic analytics could not be queried.
See API errors for the standard error envelope, auth failures, validation errors, permission errors, and rate limits.