Skip to main content
GET
/
analytics
/
crawlers
/
events
Crawler activity events
curl --request GET \
  --url https://server.promptwatch.com/api/v2/analytics/crawlers/events \
  --header 'X-API-Key: <api-key>'
{
  "data": [
    {
      "timestamp": "2023-11-07T05:31:56Z",
      "statusCode": 123,
      "requestMethod": "<string>",
      "requestPath": "<string>",
      "hostname": "<string>",
      "userAgent": "<string>",
      "crawler": "<string>",
      "referrer": "<string>",
      "contentType": "<string>",
      "queryString": "<string>"
    }
  ],
  "total": 123,
  "page": 123,
  "size": 123,
  "totalPages": 123
}

Authorizations

X-API-Key
string
header
required

API key for authentication. Get yours from the Promptwatch dashboard under Settings > API Keys.

Query Parameters

startDate
string<date>

Start date for analytics data (YYYY-MM-DD)

endDate
string<date>

End date for analytics data (YYYY-MM-DD)

crawlers

Filter by crawler(s). Repeat for multiple: crawlers=openai-gptbot&crawlers=perplexity-bot. Allowed: openai-gptbot, openai-searchbot, openai-chatgpt-user, anthropic-claudebot, anthropic-claude-user, anthropic-claude-search-bot, anthropic-claude-web, anthropic-ai, perplexity-bot, perplexity-user, cohere-ai, mistral-ai-user, deepseek-bot, x-ai-grok-bot, x-ai-grok-search, x-ai-grok-deep-search, google-extended, google-mobile-agent, google-desktop-agent

Available options:
openai-gptbot,
openai-searchbot,
openai-chatgpt-user,
anthropic-claudebot,
anthropic-claude-user,
anthropic-claude-search-bot,
anthropic-claude-web,
anthropic-ai,
perplexity-bot,
perplexity-user,
cohere-ai,
mistral-ai-user,
deepseek-bot,
x-ai-grok-bot,
x-ai-grok-search,
x-ai-grok-deep-search,
google-extended,
google-mobile-agent,
google-desktop-agent
timezone
string

IANA timezone for consistency with other crawler analytics endpoints; does not alter raw event timestamps in this response.

path
string

Filter by specific page path

pathMatch
enum<string>

Path matching mode: 'exact' for exact match, 'partial' for prefix match (default: 'partial')

Available options:
exact,
partial
page
integer
default:1

Page number (1-based)

Required range: x >= 1
size
integer
default:50

Page size (max 200)

Required range: 1 <= x <= 200
statusCodes

Filter by HTTP status code(s). Repeat the param for multiple values.

Response

Default Response

data
object[]
required

Paginated crawler request events, newest first

total
integer
required

Total events matching filters (all pages)

page
integer
required

Current page (1-based)

size
integer
required

Page size

totalPages
integer
required

Total number of pages