Browse developer documentation
Reports
AI search
Keep crawler activity, referred human visitors and revenue credit separate for each AI engine.
/api/v1/stats/ai-searchAccess: Workspace key or OAuth analytics:read · Permission details
Query parameters
| Field | Type | Description |
|---|---|---|
site | string | Website ID or domain. Required when the workspace has more than one website. |
period | string | UTC date selection. from and to override period. Values: realtime, today, yesterday, 7d, 30d, 90d, 12m, wtd, mtd, qtd, ytd, all. Default: |
from | string | Inclusive start date. Supply to as well. |
to | string | Inclusive end date. Supply from as well. |
compare | string | Comparison range. Values: previous_period, mom, qoq, yoy, none. Default: |
model | string | How recorded sources share revenue credit. Values: first_touch, last_touch, linear, time_decay. Default: |
filters | string | URL-encoded JSON array of up to twenty visitor filters, for example [{"dim":"country","op":"is","value":"US"}]. Dimensions: source, channel, campaign, entry_page, page, hostname, country, device, browser, os, goal. Operators: is, is_not. Values are exact strings up to 500 characters. All filters must match the visitor across available history; report dates then select activity for that cohort. Unmatched payments are excluded. Crawler counts remain website-wide; spend requires every filter to be source/channel/campaign. Preserve filters when paging. |
limit | integer | Row limit for reports that support it. Default: |
Request examples
Examples run from your server or terminal. Configure ATTRIBOO_TOKEN privately for authenticated requests. Replace example website IDs and values with your own. The examples make real requests when you run them.
curl "https://www.attriboo.com/api/v1/stats/ai-search?site=site_example&from=2026-10-01&to=2026-10-07&compare=none" \
-H "Authorization: Bearer $ATTRIBOO_TOKEN"Response
Illustrative response. Fields below are inside the data object. Optional coverage, notes and continuation fields vary by report.
| Field | Type | Description |
|---|---|---|
site | object | Website ID, domain and currency. |
period | object | Resolved UTC boundaries; to is the exclusive timestamp after the selected end date. |
engines | array | Report records. See the fields below. |
coverage | object | When provided, describes completeness, snapshot time and row coverage. Row limits apply to this page, not to headline totals. |
site fields
| Field | Type | Description |
|---|---|---|
id | string | Website ID. |
domain | string | Website domain. |
currency | string | Three-letter currency. |
period fields
| Field | Type | Description |
|---|---|---|
from | string | Inclusive UTC start. |
to | string | Exclusive UTC end. |
label | string | Human-readable date selection. |
compare | string | Comparison selection. |
attribution_model | string | Revenue-credit model. |
engines[] fields
| Field | Type | Description |
|---|---|---|
engine | string | ChatGPT, Perplexity, Claude, Gemini or Copilot. |
bot_crawls | integer | Crawler requests. |
visitors | integer | Referred human visitors. |
attributed_buyers | number | Attributed conversion credit; can be fractional. |
attributed_revenue | integer | Attributed revenue in cents. |
conversion_rate | number | Attributed buyers divided by visitors, percent. |
revenue_per_visitor | integer | Cents per referred visitor. |
top_page | string | null | Leading page or null. |
{
"status": "success",
"data": {
"site": {
"id": "site_example",
"domain": "shop.example.com",
"currency": "USD"
},
"period": {
"from": "2026-10-01T00:00:00.000Z",
"to": "2026-10-08T00:00:00.000Z",
"label": "Custom",
"compare": "none",
"attribution_model": "first_touch"
},
"engines": [
{
"engine": "ChatGPT",
"bot_crawls": 20,
"visitors": 10,
"attributed_buyers": 1,
"attributed_revenue": 5000,
"conversion_rate": 10,
"revenue_per_visitor": 500,
"top_page": "/pricing"
}
]
}
}Behavior and limits
Money is integer cents in site.currency. Percentages use a 0–100 scale.
Examples show one engine for brevity. Actual reports include the supported engines.
Crawls do not prove citations or visits. Never call crawls divided by visitors a conversion rate.