> ## Documentation index
> Fetch the complete documentation index at: https://context7.com/docs/llms.txt
> Ask it with GET https://context7.com/docs/ask?q=<keywords or question>. Short keywords rank best.
> Use these to discover all available pages before exploring further.
> Feature requests: https://context7.com/docs/resources/feature-requests.md lists what users asked for and how to vote for a request or add one.
> Page rating: `GET https://context7.com/docs/feedback?path=/docs/api-reference/docs7-analytics/explore-analytics-records&helpful=true` (or `false`) records whether this page helped. An optional `comment` (URL-encoded, at most 500 characters) says what was missing or wrong. It is anonymous and needs no key. Comments hold no code, secrets or personal data.

# Explore analytics records

> Query the raw records of one dataset (`searches`, `questions`, `ai-requests`, `page-views`) in a time range, with filters and an optional group, 20 rows per page. Send `Accept: text/csv` to download up to 10,000 rows as CSV. The range must be inside the plan's history (7 days on Free, 90 on Pro). Any member.

`POST /v2/teamspaces/{teamspaceId}/sites/{siteId}/analytics/explore`

## OpenAPI

````yaml https://context7.com/openapi.json post /v2/teamspaces/{teamspaceId}/sites/{siteId}/analytics/explore
openapi: 3.0.0
info:
  title: Context7 Public API
  description: The Context7 Public API provides programmatic access to library
    documentation and search functionality. Get up-to-date documentation and
    code examples for any library.
  version: 2.0.0
  contact:
    name: Context7 Support
    url: https://context7.com
    email: support@context7.com
servers:
  - url: https://context7.com/api
    description: Production server
tags:
  - name: Search
    description: Search for libraries in the Context7 database
  - name: Context
    description: Retrieve documentation context for queries
  - name: Ask
    description: Answer questions from a website registered with Context7 Ask
  - name: Refresh
    description: Refresh existing libraries to fetch latest documentation
  - name: Policies
    description: Manage teamspace access policies and filters
  - name: Add Library
    description: Submit new libraries for documentation processing
  - name: Metrics
    description: Retrieve usage metrics for libraries
  - name: Usage
    description: See member and teamspace API usage
  - name: Teamspaces
    description: Teamspaces the caller is a member of. The management API
      (`/v2/teamspaces/*`) accepts a Context7 API key created with management
      access (other keys get 403 `management_access_required`), which reaches
      only its own teamspace, or an OAuth token issued for the Context7 Admin
      MCP server (`https://admin.mcp.context7.com/mcp`), which reaches every
      teamspace of the user. A browser session is not accepted.
  - name: Teamspace Admin
    description: Members, invitations, rules, library policies and requests, usage
      and the spending limit of a teamspace.
  - name: Teamspace Libraries
    description: "A teamspace's libraries: its private sources and the libraries it
      has claimed. Add, refresh, configure, version, claim and remove them, and
      read their parse state and usage. A library id `/owner/repo` is two path
      segments."
  - name: Docs7 Sites
    description: 'Docs7 documentation sites of a teamspace: settings, custom
      domains, deployments, previews and the Docs7 agents. Any member can read;
      owners and admins can change; developers can add a site, publish one added
      for the agents only, and rebuild. Sites deployed with the `docs7 deploy`
      CLI have `source: "local"`; operations marked GitHub-only answer 404 for
      them.'
  - name: Docs7 Analytics
    description: "Traffic of one Docs7 site: visitors, AI crawlers, searches,
      assistant questions and page feedback. Docs7 Free reads the last 7 days,
      Docs7 Pro the last 90."
  - name: Ask Sites
    description: "Manage a teamspace's Context7 Ask sites: add, verify, remove, and
      read their analytics and question log"
paths:
  /v2/teamspaces/{teamspaceId}/sites/{siteId}/analytics/explore:
    post:
      tags:
        - Docs7 Analytics
      summary: Explore analytics records
      description: "Query the raw records of one dataset (`searches`, `questions`,
        `ai-requests`, `page-views`) in a time range, with filters and an
        optional group, 20 rows per page. Send `Accept: text/csv` to download up
        to 10,000 rows as CSV. The range must be inside the plan's history (7
        days on Free, 90 on Pro). Any member."
      operationId: exploreDocsAnalytics
      parameters:
        - name: teamspaceId
          in: path
          required: true
          description: Teamspace id.
          schema:
            type: string
            format: uuid
        - name: siteId
          in: path
          required: true
          description: Docs7 site id.
          schema:
            type: string
            format: uuid
      security:
        - bearerAuth: []
      responses:
        "200":
          description: "Records, or CSV with `Accept: text/csv`"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Docs7ExploreResponse"
            text/csv:
              schema:
                type: string
        "400":
          description: Invalid query, a range outside the history, or a CSV over 10,000
            rows (`export_too_large`)
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Docs7Error"
              example:
                error: validation_error
                message: Check the date range and filters.
        "401":
          description: Missing or invalid bearer
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Docs7Error"
              example:
                error: unauthorized
                message: Authentication required.
        "403":
          description: Not a member, missing role, or an API key of another teamspace
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Docs7Error"
              example:
                error: forbidden
                message: You do not have permission to do this.
        "404":
          description: No such site in this teamspace
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Docs7Error"
              example:
                error: not_found
                message: Site not found.
        "500":
          description: Internal error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Docs7Error"
              example:
                error: internal_error
                message: Internal server error.
        "503":
          description: Analytics is not configured or the query failed
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Docs7Error"
              example:
                error: analytics_query_failed
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Docs7ExploreRequest"
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Get your API key at
        [context7.com/dashboard](https://context7.com/dashboard). Treat your API
        key like a password and store it securely.
  schemas:
    Docs7Error:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Error code (snake_case).
        message:
          type: string
          description: Human-readable message. Most errors have one.
        details:
          type: object
          description: Validation details on `invalid_payload`.
      description: Docs7 error response
    Docs7ExploreRequest:
      type: object
      required:
        - previews
        - query
      properties:
        previews:
          type: boolean
          description: Include branch preview traffic.
        query:
          type: object
          required:
            - dataset
            - from
            - to
            - search
            - filters
            - groupBy
            - order
            - page
          properties:
            dataset:
              type: string
              enum:
                - searches
                - questions
                - ai-requests
                - page-views
            from:
              type: string
              format: date-time
            to:
              type: string
              format: date-time
            search:
              type: string
              maxLength: 512
              description: Free text; empty for none.
            filters:
              type: array
              items:
                type: object
                required:
                  - field
                  - operator
                  - value
                properties:
                  field:
                    type: string
                    description: A field of the dataset, for example `path`, `country`, `company`,
                      `verified`, `found`, `turn`.
                  operator:
                    type: string
                    enum:
                      - eq
                      - neq
                      - contains
                      - notContains
                      - startsWith
                      - gt
                      - gte
                      - lt
                      - lte
                    description: "Text fields: eq, neq, contains, notContains, startsWith. Number
                      fields: eq, neq, gt, gte, lt, lte. Boolean fields: eq."
                  value:
                    description: String, integer or boolean, by field.
              maxItems: 8
            groupBy:
              type: string
              description: A group field of the dataset.
              nullable: true
            order:
              type: string
              enum:
                - newest
                - oldest
            page:
              type: integer
              minimum: 1
              maximum: 20000
          description: "`from` to `to` is at most 90 days."
    Docs7ExploreResponse:
      type: object
      required:
        - rows
        - totalRows
        - totalEvents
        - series
        - from
        - to
      properties:
        rows:
          type: array
          items:
            type: object
            description: One record, or one group with its count when `groupBy` is set.
        totalRows:
          type: integer
          minimum: 0
        totalEvents:
          type: integer
          minimum: 0
        series:
          type: array
          items:
            type: object
            properties:
              date:
                type: string
              group:
                type: string
                nullable: true
              count:
                type: integer
                minimum: 0
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
````
