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

# 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).

## Usage

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.

## Filtering

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


## OpenAPI

````yaml /analytics.openapi.json GET /v1/analytics/{projectId}/visitors
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).
      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
        (prefixed with `mint_`). 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.

````

## Related topics

- [Mintlify REST API introduction](/docs/api/introduction.md)
- [Commands](/docs/cli/commands.md)
- [Get feedback](/docs/api/analytics/feedback.md)
