> ## Documentation Index
> Fetch the complete documentation index at: https://promptwatch.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Crawler Activity Trends

> Get crawler activity trends over time. If the `crawlers` query parameter is omitted, the response includes all known AI crawler types that have data in the selected range (the server queries the full set of allowed crawler keys). Projects with no recorded crawler logs return empty dates and series.



## OpenAPI

````yaml /v2/openapi.json get /analytics/crawlers/trend
openapi: 3.0.0
info:
  title: Promptwatch API v2
  description: >-
    API v2 for customer integrations with Promptwatch monitoring platform. This
    version provides improved structure, additional endpoints, and enhanced
    functionality.
  version: 2.0.0
  contact:
    name: Promptwatch Support
    email: team@promptwatch.com
    url: https://promptwatch.com
  license:
    name: Commercial
    url: https://promptwatch.com/terms-and-conditions
servers:
  - url: https://server.promptwatch.com/api/v2
    description: Promptwatch API v2
security: []
tags:
  - name: Authentication
    description: API key validation and authentication
  - name: Content
    description: >-
      AI content generation and optimization. Create content asynchronously and
      poll for results.
  - name: Content Gap
    description: Content gap analysis and recommendations
  - name: Models
    description: Available LLM models
  - name: Monitors
    description: Monitor management and CRUD operations
  - name: Page Tracker
    description: Track URLs and inspect citation stats, responses, and prompts
  - name: Prompts
    description: Prompt management and operations
  - name: Query Fanouts
    description: ChatGPT query fanout keywords
  - name: Responses
    description: LLM response data and analytics
  - name: Tags
    description: Tag management for prompts
  - name: Topics
    description: Topic management for prompts
  - name: Actions
    description: Action items (GEO suggestions and tasks)
  - name: Personas
    description: Persona configuration for monitors
  - name: Brands
    description: Brand management for competitive analysis
  - name: Visibility
    description: Brand visibility time series and competitor heatmaps
  - name: Citations
    description: Citation analytics from AI responses
  - name: Analytics
    description: Visitor analytics, AI crawler logs, sentiment, and brand visibility trends
  - name: Projects
    description: Project management (organization-level keys only)
  - name: Sitemap
    description: Sitemap crawl progress and discovered URLs
  - name: Site Health
    description: >-
      Crawled pages with SEO issues (titles, meta descriptions, H1, thin
      content)
  - name: Socials
    description: >-
      Social media citations (Reddit posts and YouTube videos) found in LLM
      responses
paths:
  /analytics/crawlers/trend:
    get:
      tags:
        - Analytics
      summary: Crawler Activity Trends
      description: >-
        Get crawler activity trends over time. If the `crawlers` query parameter
        is omitted, the response includes all known AI crawler types that have
        data in the selected range (the server queries the full set of allowed
        crawler keys). Projects with no recorded crawler logs return empty dates
        and series.
      operationId: getCrawlerActivityTrends
      parameters:
        - schema:
            type: string
            format: date
          in: query
          name: startDate
          required: false
          description: Start date for analytics data (YYYY-MM-DD). Max range 90 days.
        - schema:
            type: string
            format: date
          in: query
          name: endDate
          required: false
          description: End date for analytics data (YYYY-MM-DD). Max range 90 days.
        - schema:
            anyOf:
              - type: string
                enum:
                  - openai-gptbot
                  - openai-searchbot
                  - openai-chatgpt-user
                  - openai-adsbot
                  - anthropic-claudebot
                  - anthropic-claude-user
                  - anthropic-claude-search-bot
                  - anthropic-claude-web
                  - anthropic-ai
                  - perplexity-bot
                  - perplexity-user
                  - cohere-ai
                  - mistral-ai-user
                  - mistral-ai-index
                  - deepseek-bot
                  - x-ai-grok-bot
                  - x-ai-grok-search
                  - x-ai-grok-deep-search
                  - google-extended
                  - google-mobile-agent
                  - google-desktop-agent
                  - meta-web-indexer
                  - meta-external-agent
                  - meta-external-fetcher
                  - meta-facebook-bot
              - type: array
                items:
                  type: string
                  enum:
                    - openai-gptbot
                    - openai-searchbot
                    - openai-chatgpt-user
                    - openai-adsbot
                    - anthropic-claudebot
                    - anthropic-claude-user
                    - anthropic-claude-search-bot
                    - anthropic-claude-web
                    - anthropic-ai
                    - perplexity-bot
                    - perplexity-user
                    - cohere-ai
                    - mistral-ai-user
                    - mistral-ai-index
                    - deepseek-bot
                    - x-ai-grok-bot
                    - x-ai-grok-search
                    - x-ai-grok-deep-search
                    - google-extended
                    - google-mobile-agent
                    - google-desktop-agent
                    - meta-web-indexer
                    - meta-external-agent
                    - meta-external-fetcher
                    - meta-facebook-bot
          in: query
          name: crawlers
          required: false
          description: >-
            Filter by crawler(s). Repeat for multiple:
            crawlers=openai-gptbot&crawlers=perplexity-bot. Allowed:
            openai-gptbot, openai-searchbot, openai-chatgpt-user, openai-adsbot,
            anthropic-claudebot, anthropic-claude-user,
            anthropic-claude-search-bot, anthropic-claude-web, anthropic-ai,
            perplexity-bot, perplexity-user, cohere-ai, mistral-ai-user,
            mistral-ai-index, deepseek-bot, x-ai-grok-bot, x-ai-grok-search,
            x-ai-grok-deep-search, google-extended, google-mobile-agent,
            google-desktop-agent, meta-web-indexer, meta-external-agent,
            meta-external-fetcher, meta-facebook-bot. If omitted, **crawler
            activity trend** uses every known key above; other operations that
            support this field may apply no per-crawler filter in the data
            store.
        - schema:
            type: string
          in: query
          name: timezone
          required: false
          description: IANA timezone for date bucketing (e.g., 'America/Los_Angeles')
        - schema:
            type: string
          in: query
          name: path
          required: false
          description: Filter by specific page path
        - schema:
            type: string
            enum:
              - exact
              - partial
          in: query
          name: pathMatch
          required: false
          description: >-
            Path matching mode: 'exact' for exact match, 'partial' for prefix
            match (default: 'partial')
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  dates:
                    - '2026-03-14'
                    - '2026-03-15'
                  series:
                    - name: OpenAI GPTBot
                      data:
                        - 2100
                        - 2240
                    - name: Perplexity Bot
                      data:
                        - 980
                        - 1012
                properties:
                  dates:
                    type: array
                    items:
                      type: string
                      description: Date values
                    description: Array of dates for the time series
                  series:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: Crawler display name
                        data:
                          type: array
                          items:
                            type: number
                          description: Hit counts for each date
                      required:
                        - name
                        - data
                      additionalProperties: false
                    description: Time series data for each crawler
                required:
                  - dates
                  - series
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  error: Bad Request
                  code: DATE_RANGE_TOO_LARGE
                  message: Date range cannot exceed 90 days
                properties:
                  error:
                    type: string
                    description: Error label
                  code:
                    type: string
                    description: Optional machine-readable code (e.g. DATE_RANGE_TOO_LARGE)
                  message:
                    type: string
                    description: Reason the request was rejected
                required:
                  - error
                  - message
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  error: Unauthorized
                  message: Missing or invalid X-API-Key header.
                properties:
                  error:
                    type: string
                    description: Error category (often aligned with HTTP semantics)
                  code:
                    type: string
                    description: Optional machine-readable code
                  message:
                    type: string
                    description: Human-readable explanation
                  details:
                    type: object
                    description: Optional structured detail (e.g. validation)
                    additionalProperties: true
                required:
                  - error
                  - message
                additionalProperties: false
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  error: Unauthorized
                  message: Missing or invalid X-API-Key header.
                properties:
                  error:
                    type: string
                    description: Error category (often aligned with HTTP semantics)
                  code:
                    type: string
                    description: Optional machine-readable code
                  message:
                    type: string
                    description: Human-readable explanation
                  details:
                    type: object
                    description: Optional structured detail (e.g. validation)
                    additionalProperties: true
                required:
                  - error
                  - message
                additionalProperties: false
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        API key for authentication. Get yours from the Promptwatch dashboard
        under Settings > API Keys.

````