Skip to main content
Mintlify

Search documentation

Type to search this documentation.

On this pageOverview

Get unique visitors

Returns per-path and site-wide approximate distinct visitors by traffic type. The total field is deduplicated across human and AI (union of distinct visitor IDs with any qualifying content view).

Authenticate with an admin API key.

Use this endpoint to export unique visitor analytics. Results include both site-wide totals and per-page breakdowns, split by human and AI traffic. The total field is deduplicated across human and AI traffic.

Paginate through results using offset-based pagination. Increment offset by limit while hasMore is true.

Filter visitor data by date range using dateFrom and dateTo parameters.

This endpoint allows 100 requests per organization per hour. All analytics endpoints share this limit.

analytics.openapi.json
openapi: 3.1.0
info:
  title: Mintlify Analytics Export API
  version: 1.0.0
  description: API for exporting documentation analytics data
servers:
  - url: https://api.mintlify.com
    description: Production
security: []
paths:
  /v1/analytics/{projectId}/visitors:
    get:
      tags:
        - Analytics
      summary: Get unique visitors
      description: >-
        Returns per-path and site-wide approximate distinct visitors by traffic
        type. The `total` field is deduplicated across human and AI (union of
        distinct visitor IDs with any qualifying content view).


        Authenticate with an admin API key.
      parameters:
        - $ref: '#/components/parameters/projectId'
        - schema:
            type: string
            description: Date in ISO 8601 or YYYY-MM-DD format
            example: '2024-01-01'
          required: false
          name: dateFrom
          in: query
        - schema:
            type: string
            description: >-
              Date in ISO 8601 or YYYY-MM-DD format. `dateTo` is an exclusive
              upper limit. Results include dates before, but not on, the
              specified date.
            example: '2024-01-01'
          required: false
          name: dateTo
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 250
            default: 50
            description: >-
              Max results per page (1-250, default 50). Increment offset by
              limit while hasMore is true to paginate.
          required: false
          name: limit
          in: query
        - schema:
            type: integer
            minimum: 0
            default: 0
            description: >-
              Number of rows to skip. Use offset = (page - 1) * limit for
              page-based access.
          required: false
          name: offset
          in: query
      responses:
        '200':
          description: Site-wide totals and per-path visitor counts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VisitorsByPageResponse'
        '400':
          description: Invalid query parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsErrorResponse'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsErrorResponse'
      security:
        - bearerAuth: []
components:
  parameters:
    projectId:
      schema:
        $ref: '#/components/schemas/projectId'
      required: true
      name: projectId
      in: path
  schemas:
    VisitorsByPageResponse:
      type: object
      properties:
        totals:
          $ref: '#/components/schemas/VisitorsTrafficTotals'
          description: Site-wide unique visitor totals for the date range.
        visitors:
          type: array
          description: Per-page visitor counts.
          items:
            type: object
            properties:
              path:
                type: string
                description: The documentation page path.
              human:
                type: number
                description: Unique visitors from human traffic.
              ai:
                type: number
                description: Unique visitors from AI bot traffic.
              total:
                type: number
                description: >-
                  Approximate distinct visitors with any qualifying view on this
                  path (deduplicated across human and AI).
            required:
              - path
              - human
              - ai
              - total
        hasMore:
          type: boolean
          description: Whether additional results are available beyond this page.
      required:
        - totals
        - visitors
        - hasMore
    AnalyticsErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error message describing what went wrong.
        details:
          type: array
          description: Additional details about the error.
          items:
            type: object
            properties:
              message:
                type: string
                description: Description of a specific validation or processing error.
            required:
              - message
      required:
        - error
    projectId:
      type: string
      description: >-
        Your project ID. Can be copied from the [API
        keys](https://app.mintlify.com/settings/organization/api-keys) page in
        your dashboard.
    VisitorsTrafficTotals:
      type: object
      properties:
        human:
          type: number
          description: Site-wide unique visitors from human traffic.
        ai:
          type: number
          description: Site-wide unique visitors from AI bot traffic.
        total:
          type: number
          description: >-
            Site-wide approximate distinct visitors with any qualifying view
            (deduplicated across human and AI).
      required:
        - human
        - ai
        - total
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        The Authorization header expects a Bearer token. Use an admin API key.
        This is a server-side secret key. Generate one on the [API keys
        page](https://app.mintlify.com/settings/organization/api-keys) in your
        dashboard.
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu