Reports
- Daily Reports (V1)
- Hourly Reports (V2)
Examples for V1 report endpoints (
/v1/reports/*): daily pre-aggregated data in EST.
For hourly granularity, use the Hourly Reports (V2) tab above.Pre-aggregated reports are faster and support full date ranges in one request; use
/v1/logs/* only when you need raw log-level data.- Capacity: Full date ranges in one request; no need to paginate through millions of rows like with
/v1/logs/*. - Granularity: Data is bucketed by day. Timestamps are normalized to the start of each day in EST.
Bot Reports
- Bot Highlights
- Citations by Day
- Page Visits by Provider
Get a count of visits by bot type:

POST /v1/reports/bots HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"metrics": ["citations", "training", "indexing"]
}
{
"info": {}, // removed for brevity
"data": [
{
"metrics": [
20640,
8450,
3646
],
"dimensions": []
}
]
}
Get a count of ChatGPT citations by day:

Note you can easily retrieve the full daily list broken down by bot by substituting:
"dimensions": ["date", "bot_name"],
"filters": [],
POST /v1/reports/bots HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"dimensions": ["date"],
"filters": [
{"field": "bot_name", "operator": "is", "value": "ChatGPT-User"}
],
"order_by": {
"date": "desc"
},
"metrics": ["citations"]
}
{
"info": {}, // removed for brevity
"data": [
{
"metrics": [
2698
],
"dimensions": [
"2025-12-18"
]
},
{
"metrics": [
2847
],
"dimensions": [
"2025-12-17"
]
},
{
"metrics": [
2986
],
"dimensions": [
"2025-12-16"
]
},
{
"metrics": [
3029
],
"dimensions": [
"2025-12-15"
]
},
{
"metrics": [
2075
],
"dimensions": [
"2025-12-14"
]
},
{
"metrics": [
1881
],
"dimensions": [
"2025-12-13"
]
},
{
"metrics": [
2717
],
"dimensions": [
"2025-12-12"
]
}
]
}
Get a count of page visits by bot type, scoped to a provider:
Note the OpenAI Platforms selection in the top right.

See metrics for all providers by removing the filter.
POST /v1/reports/bots HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"dimensions": ["path"],
"filters": [
{"field": "bot_provider", "operator": "is", "value": "openai"}
],
"order_by": {"citations": "desc"},
"metrics": ["citations", "indexing", "training"],
"pagination": {
"limit": 10,
"offset": 0
}
}
{
"info": {}, // removed for brevity
"data": [
{
"metrics": [
1255,
1614,
38
],
"dimensions": [
"/"
]
},
{
"metrics": [
643,
5,
1
],
"dimensions": [
"/guides/generative-engine-optimization-geo-guide-2025"
]
},
{
"metrics": [
603,
18,
3
],
"dimensions": [
"/blog/now-tracking-gpt-5-2-in-chatgpt"
]
},
{
"metrics": [
584,
7,
3
],
"dimensions": [
"/blog/ai-platform-citation-patterns"
]
},
{
"metrics": [
445,
1,
0
],
"dimensions": [
"/blog/best-generative-engine-optimization-tools"
]
},
{
"metrics": [
396,
14,
1
],
"dimensions": [
"/profound-index"
]
},
{
"metrics": [
385,
6,
1
],
"dimensions": [
"/guides/what-is-answer-engine-optimization"
]
},
{
"metrics": [
376,
2,
0
],
"dimensions": [
"/blog/semrush-ai-visibility-toolkit-review"
]
},
{
"metrics": [
372,
5,
2
],
"dimensions": [
"/blog/understanding-grok-a-comprehensive-guide-to-grok-websearch-grok-deepsearch"
]
},
{
"metrics": [
371,
7,
1
],
"dimensions": [
"/blog/choosing-ai-visibility-provider"
]
}
]
}
Referral Reports
- Referrals By Platform
- Bot Referrals By Day
- Page Level Referrals
- Referrals By Bot
Get a count of referrals broken down by platform:
Note:
other represents referrals from Traditional Sources, e.g. LinkedIn, Facebook, etc.internal represents referrals from within your website, e.g. a blog post linking to another blog post.
POST /v1/reports/referrals HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"dimensions": ["referral_source"],
"filters": [
{"field": "referral_source", "operator": "not_in", "value": ["none", "internal"]}
],
"metrics": ["visits"]
}
{
"info": {}, // removed for brevity
"data": [
{
"metrics": [
222022
],
"dimensions": [
"other"
]
},
{
"metrics": [
5171
],
"dimensions": [
"openai"
]
},
{
"metrics": [
102
],
"dimensions": [
"perplexity"
]
},
{
"metrics": [
39
],
"dimensions": [
"gemini"
]
},
{
"metrics": [
22
],
"dimensions": [
"anthropic"
]
},
{
"metrics": [
2
],
"dimensions": [
"deepseek"
]
}
]
}
Get a count of referrals from AI bots broken down by day:

POST /v1/reports/referrals HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"dimensions": ["date"],
"filters": [
{"field": "referral_source", "operator": "not_in", "value": ["none", "other", "internal"]}
],
"order_by": {"date": "desc"},
"metrics": ["visits"]
}
{
"info": {}, // removed for brevity
"data": [
{
"metrics": [
977
],
"dimensions": [
"2025-12-18"
]
},
{
"metrics": [
906
],
"dimensions": [
"2025-12-17"
]
},
{
"metrics": [
719
],
"dimensions": [
"2025-12-16"
]
},
{
"metrics": [
571
],
"dimensions": [
"2025-12-15"
]
},
{
"metrics": [
665
],
"dimensions": [
"2025-12-14"
]
},
{
"metrics": [
655
],
"dimensions": [
"2025-12-13"
]
},
{
"metrics": [
844
],
"dimensions": [
"2025-12-12"
]
}
]
}
Get a count of referrals broken down by a given page:
Note
/blog in the search bar.
% of Bot Referrals can be calculated by summing the total number of referrals, and dividing each bot’s referrals by the total.
POST /v1/reports/referrals HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"dimensions": ["path"],
"filters": [
{"field": "referral_source", "operator": "not_in", "value": ["none", "other", "internal"]},
{"field": "path", "operator": "contains", "value": "/blog"}
],
"metrics": ["visits"],
"order_by": {"visits": "desc"},
"pagination": {"limit": 10, "offset": 0}
}
{
"info": {}, // removed for brevity
"data": [
{
"metrics": [
915
],
"dimensions": [
"/blog/ai-platform-citation-patterns"
]
},
{
"metrics": [
350
],
"dimensions": [
"/blog/bring-profound-data-directly-into-your-ai-workflow-with-mcp"
]
},
{
"metrics": [
99
],
"dimensions": [
"/blog/citation-overlap-strategy"
]
},
{
"metrics": [
87
],
"dimensions": [
"/blog/the-data-on-reddit-and-ai-search"
]
},
{
"metrics": [
65
],
"dimensions": [
"/blog/best-generative-engine-optimization-tools"
]
},
{
"metrics": [
58
],
"dimensions": [
"/blog/chatgpt-entity-update"
]
},
{
"metrics": [
56
],
"dimensions": [
"/blog/prompt-volumes-the-new-way-to-see-what-customers-ask-answer-engines"
]
},
{
"metrics": [
50
],
"dimensions": [
"/blog/seeing-what-customers-see-direct-ai-search-engine-monitoring-vs-api-limitations"
]
},
{
"metrics": [
40
],
"dimensions": [
"/blog/choosing-ai-visibility-provider"
]
},
{
"metrics": [
33
],
"dimensions": [
"/blog/ai-search-volatility"
]
}
]
}
Get a count of referrals broken down by bot:

% of Referrals here means the proportion of referred visits from non-internal sources that came from this bot.To calculate this, sum the total number of referrals in the response:
total_referrals = 222126 + 5172 + 102 + 39 + 22 + 2 = 227481Then, for each bot, divide its referrals by the total:ChatGPT % = (5172 / 227481) * 100 = 2.27%…POST /v1/reports/referrals HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"dimensions": ["referral_source"],
"filters": [
{"field": "referral_source", "operator": "not_in", "value": ["none", "internal"]}
],
"metrics": ["visits"],
"order_by": {"visits": "desc"}
}
{
"info": {}, // removed for brevity
"data": [
{
"metrics": [
222126
],
"dimensions": [
"other"
]
},
{
"metrics": [
5172
],
"dimensions": [
"openai"
]
},
{
"metrics": [
102
],
"dimensions": [
"perplexity"
]
},
{
"metrics": [
39
],
"dimensions": [
"gemini"
]
},
{
"metrics": [
22
],
"dimensions": [
"anthropic"
]
},
{
"metrics": [
2
],
"dimensions": [
"deepseek"
]
}
]
}
V2 endpoints provide reports at hourly granularity, with data bucketed by UTC hour. They support all the same dimensions, metrics and filters as V1, plus new fields unique to the hourly tables - UTM and referral traffic distinction.V1 daily aggregates are fixed to ET, which means users in other timezones had no way to get data bucketed into their own local days. V2 solves this: because data is bucketed by UTC hour, you can convert your local day boundaries to UTC and query data that lines up with your own calendar days.
V1 vs V2: Use the V1 (daily) tab for daily pre-aggregated reports (EST-based). V2 is for hour-level granularity (UTC). For raw log access, use the
/v1/logs/* endpoints.Fractional-offset timezones: If your local timezone uses a fractional UTC offset (e.g. IST +5:30, Nepal +5:45), a single local hour spans two UTC hour buckets. When querying at hour-level granularity, request 2 consecutive hours to get complete data for that local hour. See Date Ranges & Timezones for details.
Bot Reports
Returns bot traffic data aggregated from the hourly bot breakdown table.- Bot Highlights
- Citations by Day
- Page Visits by Provider
- Hourly Bot Traffic
Get a count of visits by bot type:

POST /v2/reports/bots HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"metrics": ["citations", "training", "indexing"]
}
Get a count of ChatGPT citations by day:

POST /v2/reports/bots HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"dimensions": ["date"],
"filters": [
{ "field": "bot_name", "operator": "is", "value": "ChatGPT-User" }
],
"order_by": { "date": "desc" },
"metrics": ["citations"]
}
Get top paths by citations for a specific provider:

POST /v2/reports/bots HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"dimensions": ["path"],
"filters": [
{ "field": "bot_provider", "operator": "is", "value": "openai" }
],
"order_by": { "citations": "desc" },
"metrics": ["citations", "indexing", "training"],
"pagination": { "limit": 10, "offset": 0 }
}
Get hourly bot traffic breakdown for a UTC day. Use UTC timestamps to align the query to your local calendar day:
POST /v2/reports/bots HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-16T00:00:00Z",
"end_date": "2025-12-16T23:59:59Z",
"dimensions": ["hour"],
"metrics": ["count", "citations"],
"order_by": { "hour": "asc" }
}
Request body
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
domain | string | yes | - | Domain to query (e.g. www.tryprofound.com) |
start_date | string | yes | - | Start date in UTC. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, YYYY-MM-DD HH:MM:SS, or full ISO timestamp |
end_date | string | no | now (UTC) | End date in UTC. Same formats as start_date |
metrics | string[] | yes | - | One or more metrics to return (see below) |
dimensions | string[] | no | [] | Fields to group results by (see below) |
filters | filter[] | no | [] | Filters to narrow results (see below) |
date_interval | string | no | ”day” | Bucket size for date dimension: “hour” or “day” |
order_by | object | no | first metric desc | Map of field -> “asc” or “desc” |
pagination | object | no | limit: 10000, offset: 0 | Pagination settings |
Metrics
| Metric | Description |
|---|---|
count | Total unique bot visits (all bot types) |
citations | Unique visits from AI assistant bots (e.g. ChatGPT-User, Perplexity-User) |
indexing | Unique visits from web indexing bots (e.g. Googlebot, bingbot) |
training | Unique visits from AI training bots (e.g. GPTBot, ClaudeBot) |
last_visit | Most recent visit timestamp |
Dimensions
| Dimension | Description |
|---|---|
date | Bucketed by date_interval (day or hour). UTC-based |
hour | Raw UTC hour bucket — equivalent to date + date_interval: "hour" with no extra aggregation |
path | URL path |
bot_name | Bot name (e.g. ChatGPT-User, GPTBot) |
bot_provider | Bot provider (e.g. openai, anthropic) |
bot_type | Bot category: ai_assistant, index, ai_training, ai_agent |
Filters
| Field | Operators | Values |
|---|---|---|
path | is, not_is, contains, not_contains, in, not_in | URL path string |
bot_name | is, not_is, contains, not_contains, in, not_in | Bot name string |
bot_provider | is, not_is, contains, not_contains, in, not_in | Provider string |
bot_type | is, not_is, in, not_in | ai_assistant, index, ai_training, ai_agent |
Referral Reports
Returns referral traffic data aggregated from the hourly referral breakdown table.- Referrals By Platform
- Bot Referrals By Day
- Page Level Referrals
- Referrals By Bot
- UTM Traffic
Get a count of referrals broken down by platform (excluding internal traffic):

POST /v2/reports/referrals HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"dimensions": ["referral_source"],
"filters": [
{ "field": "referral_source", "operator": "not_in", "value": ["none", "internal"] }
],
"metrics": ["visits"]
}
Get a count of referrals from AI bots broken down by day:

POST /v2/reports/referrals HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"dimensions": ["date"],
"filters": [
{ "field": "referral_source", "operator": "not_in", "value": ["none", "other", "internal"] }
],
"order_by": { "date": "desc" },
"metrics": ["visits"]
}
Get top blog paths by external referral visits:

POST /v2/reports/referrals HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"dimensions": ["path"],
"filters": [
{ "field": "referral_source", "operator": "not_in", "value": ["none", "other", "internal"] },
{ "field": "path", "operator": "contains", "value": "/blog" }
],
"metrics": ["visits"],
"order_by": { "visits": "desc" },
"pagination": { "limit": 10, "offset": 0 }
}
Get top referral sources ranked by visits:

POST /v2/reports/referrals HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"dimensions": ["referral_source"],
"filters": [
{ "field": "referral_source", "operator": "not_in", "value": ["none", "internal"] }
],
"metrics": ["visits"],
"order_by": { "visits": "desc" }
}
Get UTM referral traffic by Hour:

POST /v2/reports/referrals HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-16",
"end_date": "2025-12-17",
"dimensions": ["hour"],
"filters": [
{ "field": "referral_type", "operator": "is", "value": "utm" }
],
"metrics": ["visits"],
"order_by": { "hour": "asc" }
}
Request body
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
domain | string | yes | - | Domain to query |
start_date | string | yes | - | Start date in UTC. Accepts YYYY-MM-DD, YYYY-MM-DD HH:MM, YYYY-MM-DD HH:MM:SS, or full ISO timestamp |
end_date | string | no | now (UTC) | End date in UTC. Same formats as start_date |
metrics | string[] | yes | - | One or more metrics to return (see below) |
dimensions | string[] | no | [] | Fields to group results by (see below) |
filters | filter[] | no | [] | Filters to narrow results (see below) |
date_interval | string | no | ”day” | Bucket size for date dimension: “hour” or “day” |
order_by | object | no | first metric desc | Map of field -> “asc” or “desc” |
pagination | object | no | limit: 10000, offset: 0 | Pagination settings |
Metrics
| Metric | Description |
|---|---|
visits | Unique page visits |
last_visit | Most recent visit timestamp |
Dimensions
| Dimension | Description |
|---|---|
date | Bucketed by date_interval (day or hour). UTC-based |
hour | Raw UTC hour bucket — equivalent to date + date_interval: "hour" with no extra aggregation |
path | URL path |
referral_source | Referral source (e.g. openai, perplexity, anthropic, other, internal, none) |
referral_type | Traffic category: internal, referer, utm, none |
Filters
| Field | Operators | Values |
|---|---|---|
path | is, not_is, contains, not_contains, in, not_in | URL path string |
referral_source | is, not_is, contains, not_contains, in, not_in | Referral source string |
referral_type | is, not_is, in, not_in | internal, referer, utm, none |
Raw Data
Raw data endpoints return unaggregated logs. Response times and payload sizes are significantly larger than the report endpoints — for high-traffic sites, querying 10,000 at a time is infeasible. Use the report endpoints for most use cases.Raw data is not cleaned. Raw data may include duplicate entries, logs to static assets (e.g. “_next/static/chunks/…”) and other non-user-facing logs.
These are deduplicated, filtered, and cleaned in the pre-aggregation process. This also includes removing non-200 requests, non-GET requests, etc.
- Get Live Bot Log Stream
- Get Live Log Stream
- Count All Logs
- Count Citations
- Training Data
Recreate the live bot log stream:
Note the filters applied in the top right. The dashboard is showing a live log stream with,
- Status Codes:
2xx - Visit Types:
Bot Visits - Bot Types:
AI Assistant - Platforms:
NOT ChatGPT

POST /v1/logs/raw HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-17T23:59:59",
"dimensions": ["timestamp", "bot_provider", "bot_name", "bot_types", "user_agent", "path", "query_params"],
"filters": [
{"field": "status_code", "operator": "is", "value": 200},
{"field": "bot_types", "operator": "contains", "value": "ai_assistant"},
{"field": "bot_name", "operator": "not_is", "value": "ChatGPT-User"}
],
"metrics": [],
"pagination": {"limit": 10, "offset": 0},
"order_by": {"timestamp": "desc"}
}
[
{
"timestamp": "2025-12-19T04:10:59",
"path": "/blog/technology",
"user_agent": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)",
"query_params": {},
"bot_name": "PerplexityBot",
"bot_provider": "perplexity",
"bot_types": [
"index",
"ai_assistant"
]
},
{
"timestamp": "2025-12-19T04:10:37",
"path": "/customers/1840-co-answer-engine-optimization-case-study",
"user_agent": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)",
"query_params": {},
"bot_name": "PerplexityBot",
"bot_provider": "perplexity",
"bot_types": [
"index",
"ai_assistant"
]
},
{
"timestamp": "2025-12-19T03:43:25",
"path": "/blog/what-is-claude-web-search-explained",
"user_agent": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)",
"query_params": {},
"bot_name": "PerplexityBot",
"bot_provider": "perplexity",
"bot_types": [
"index",
"ai_assistant"
]
},
{
"timestamp": "2025-12-19T03:36:44",
"path": "/_next/static/chunks/6d678fe91afd78f8.js",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15 (Applebot/0.1; +http://www.apple.com/go/applebot)",
"query_params": {
"dpl": "..."
},
"bot_name": "Applebot",
"bot_provider": "apple",
"bot_types": [
"index",
"ai_assistant"
]
},
{
"timestamp": "2025-12-19T03:35:13",
"path": "/blog/best-generative-engine-optimization-tools",
"user_agent": "DuckAssistBot/1.2; (+http://duckduckgo.com/duckassistbot.html)",
"query_params": {},
"bot_name": "DuckAssistBot",
"bot_provider": "duckduckgo",
"bot_types": [
"ai_assistant"
]
},
{
"timestamp": "2025-12-19T03:34:31",
"path": "/blog/9-best-answer-engine-optimization-platforms",
"user_agent": "DuckAssistBot/1.2; (+http://duckduckgo.com/duckassistbot.html)",
"query_params": {},
"bot_name": "DuckAssistBot",
"bot_provider": "duckduckgo",
"bot_types": [
"ai_assistant"
]
},
{
"timestamp": "2025-12-19T03:34:31",
"path": "/robots.txt",
"user_agent": "DuckAssistBot/1.2; (+http://duckduckgo.com/duckassistbot.html)",
"query_params": {},
"bot_name": "DuckAssistBot",
"bot_provider": "duckduckgo",
"bot_types": [
"ai_assistant"
]
},
{
"timestamp": "2025-12-19T03:30:50",
"path": "/careers/technical-operations-engineer",
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15 (Applebot/0.1; +http://www.apple.com/go/applebot)",
"query_params": {},
"bot_name": "Applebot",
"bot_provider": "apple",
"bot_types": [
"index",
"ai_assistant"
]
},
{
"timestamp": "2025-12-19T03:29:42",
"path": "/",
"user_agent": "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
"query_params": {},
"bot_name": "Google-CloudVertexBot",
"bot_provider": "google",
"bot_types": [
"ai_assistant"
]
},
{
"timestamp": "2025-12-19T03:29:19",
"path": "/",
"user_agent": "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.122 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
"query_params": {
"_rsc": "..."
},
"bot_name": "Google-CloudVertexBot",
"bot_provider": "google",
"bot_types": [
"ai_assistant"
]
}
]
Recreate the live log stream:
Note the filter applied: Visit Types:
Bot Visits
You can still use filters to apply limited sanitation of the data. E.g.:
{"field": "method", "operator": "is", "value": "GET"},
{"field": "status_code", "operator": "is", "value": 200},
{"field": "path", "operator": "not_contains", "value": "_next"}
POST /v1/logs/raw HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-17T23:59:59",
"dimensions": [
"timestamp",
"method",
"status_code",
"referer",
"user_agent",
"path",
"query_params"
],
"filters": [
{"field": "path", "operator": "not_contains", "value": "_next"}
],
"metrics": [],
"pagination": {"limit": 10, "offset": 0},
"order_by": {"timestamp": "desc"}
}
[
{
"timestamp": "2025-12-19T04:29:05",
"method": "GET",
"path": "/solutions/aeo-teams",
"status_code": 200,
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36",
"referer": "https://www.tryprofound.com/solutions/aeo-teams",
"query_params": {
"_rsc": "..."
}
},
{
"timestamp": "2025-12-19T04:29:03",
"method": "GET",
"path": "/solutions/aeo-teams",
"status_code": 504,
"user_agent": "nginx-ssl early hints",
"referer": "",
"query_params": {
"_rsc": "..."
}
},
{
"timestamp": "2025-12-19T04:28:57",
"method": "GET",
"path": "/",
"status_code": 200,
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
"referer": "https://www.tryprofound.com/blog/the-data-on-reddit-and-ai-search",
"query_params": {
"_rsc": "..."
}
},
{
"timestamp": "2025-12-19T04:28:56",
"method": "GET",
"path": "/enterprise",
"status_code": 200,
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
"referer": "https://www.tryprofound.com/blog/the-data-on-reddit-and-ai-search",
"query_params": {
"_rsc": "..."
}
},
{
"timestamp": "2025-12-19T04:28:56",
"method": "GET",
"path": "/pricing",
"status_code": 200,
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
"referer": "https://www.tryprofound.com/blog/the-data-on-reddit-and-ai-search",
"query_params": {
"_rsc": "..."
}
},
{
"timestamp": "2025-12-19T04:28:56",
"method": "GET",
"path": "/enterprise",
"status_code": 504,
"user_agent": "nginx-ssl early hints",
"referer": "",
"query_params": {
"_rsc": "..."
}
},
{
"timestamp": "2025-12-19T04:28:56",
"method": "GET",
"path": "/pricing",
"status_code": 504,
"user_agent": "nginx-ssl early hints",
"referer": "",
"query_params": {
"_rsc": "..."
}
},
{
"timestamp": "2025-12-19T04:28:55",
"method": "GET",
"path": "/blog",
"status_code": 200,
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
"referer": "https://www.tryprofound.com/blog/the-data-on-reddit-and-ai-search",
"query_params": {
"_rsc": "..."
}
},
{
"timestamp": "2025-12-19T04:28:55",
"method": "GET",
"path": "/blog",
"status_code": 200,
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
"referer": "https://www.tryprofound.com/blog/the-data-on-reddit-and-ai-search",
"query_params": {
"_rsc": "..."
}
},
{
"timestamp": "2025-12-19T04:28:55",
"method": "GET",
"path": "/careers",
"status_code": 200,
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
"referer": "https://www.tryprofound.com/blog/the-data-on-reddit-and-ai-search",
"query_params": {
"_rsc": "..."
}
}
]
Retrieve total log count:
POST /v1/logs/raw HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"dimensions": [],
"filters": [
{"field": "method", "operator": "is", "value": "GET"},
{"field": "status_code", "operator": "is", "value": 200}
],
"metrics": ["count"],
"pagination": {"limit": 100, "offset": 0}
}
Count citations for a given path by bot:
POST /v1/logs/raw/bots HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"dimensions": ["path", "bot_name"],
"filters": [
{"field": "method", "operator": "is", "value": "GET"},
{"field": "status_code", "operator": "is", "value": 200},
{"field": "path", "operator": "is", "value": "/blog"},
{"field": "bot_types", "operator": "contains", "value": "ai_assistant"}
],
"metrics": ["count"],
"pagination": {"limit": 1000, "offset": 0},
"order_by": {"count": "desc"}
}
Get top 5 pages used for training:
POST /v1/logs/raw/bots HTTP/1.1
Content-Type: application/json
X-API-Key: your_api_key
{
"domain": "www.tryprofound.com",
"start_date": "2025-12-12",
"end_date": "2025-12-18",
"dimensions": ["path"],
"filters": [
{"field": "method", "operator": "is", "value": "GET"},
{"field": "status_code", "operator": "is", "value": 200},
{"field": "bot_types", "operator": "contains", "value": "ai_training"}
],
"metrics": ["count"],
"order_by": {"count": "desc"},
"pagination": {"limit": 5, "offset": 0}
}