Browse developer documentation
AI search
attriboo reports ai-search
Keep crawler activity, referred human visitors and revenue credit separate for each AI engine.
Access: OAuth analytics:read or workspace key
Options
| 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 | JSON array string 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 | Maximum rows where supported. Default: |
--json | boolean | Compact JSON instead of formatted JSON. |
--csv | boolean | CSV for the main row collection; nested values remain JSON cells. Cannot be combined with --json. |
Read ai search
Replace example websites, dates and cursor values with your own. Running these commands makes real requests or changes the local session.
attriboo reports ai-search --site shop.example.com --from 2026-10-01 --to 2026-10-07 --compare none --jsonExample output
{"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"}]}Output fields
| 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. |
The data follows the ai search API contract. CLI JSON omits the REST envelope.
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.
CLI JSON output is the API data object directly, without the REST status/data envelope. Default output is formatted JSON; --json is compact JSON.
CSV contains only the returned page's main row collection. Continue using returned next_cursor values rather than assuming a single CSV is a complete export.