# Get feedback by page (/api/analytics/feedback-by-page)

<!-- agent-signals: reading_time_min: 3 · est_tokens: 1637 · updated: 2026-07-30 -->
Related: [Get feedback](/api/analytics/feedback.md), [Get assistant conversations](/api/analytics/assistant-conversations.md), [Get assistant caller stats](/api/analytics/assistant-caller-stats.md), [Get search queries](/api/analytics/searches.md), [Get page views](/api/analytics/views.md), [Get unique visitors](/api/analytics/visitors.md)

## Usage [#usage]

Use this endpoint to export user feedback aggregated by documentation page path. Each entry shows the total feedback count for a page, broken down by type.

## Filtering [#filtering]

Filter feedback by:

* **Date range**: Use `dateFrom` and `dateTo` to limit results to a specific time period
* **Source**: Filter by `code_snippet`, `contextual`, or `agent` feedback types
* **Status**: Filter by status values like `pending`, `in_progress`, `resolved`, or `dismissed`

## Rate limits [#rate-limits]

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

`GET /v1/analytics/{projectId}/feedback/by-page`

Returns feedback counts aggregated by documentation page path (thumbs up/down for contextual feedback, code snippet count, and total per page)

Authenticate with an admin API key.

## OpenAPI

```json
{
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "schema": {
        "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."
      },
      "required": true,
      "name": "projectId",
      "in": "path"
    },
    {
      "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": "number",
        "minimum": 1,
        "maximum": 100,
        "default": 10,
        "description": "Max results per page"
      },
      "required": false,
      "name": "limit",
      "in": "query"
    },
    {
      "schema": {
        "type": "string",
        "enum": [
          "code_snippet",
          "contextual",
          "agent",
          "thumbs_only"
        ],
        "description": "Filter by feedback source"
      },
      "required": false,
      "name": "source",
      "in": "query"
    },
    {
      "schema": {
        "type": "string",
        "description": "Comma-separated list of statuses to filter by"
      },
      "required": false,
      "name": "status",
      "in": "query"
    }
  ],
  "responses": {
    "200": {
      "description": "Per-page feedback aggregates with pagination flag",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "feedback": {
                "type": "array",
                "description": "Feedback counts aggregated by documentation page path.",
                "items": {
                  "type": "object",
                  "properties": {
                    "path": {
                      "type": "string",
                      "description": "The documentation page path."
                    },
                    "thumbsUp": {
                      "type": "number",
                      "description": "Number of positive (thumbs up) contextual feedback entries."
                    },
                    "thumbsDown": {
                      "type": "number",
                      "description": "Number of negative (thumbs down) contextual feedback entries."
                    },
                    "code": {
                      "type": "number",
                      "description": "Number of code snippet feedback entries."
                    },
                    "total": {
                      "type": "number",
                      "description": "Total feedback entries for this page."
                    }
                  },
                  "required": [
                    "path",
                    "thumbsUp",
                    "thumbsDown",
                    "code",
                    "total"
                  ]
                }
              },
              "hasMore": {
                "type": "boolean",
                "description": "Whether additional results are available beyond this page."
              }
            },
            "required": [
              "feedback",
              "hasMore"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Invalid query parameters",
      "content": {
        "application/json": {
          "schema": {
            "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"
            ]
          }
        }
      }
    },
    "500": {
      "description": "Server error",
      "content": {
        "application/json": {
          "schema": {
            "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"
            ]
          }
        }
      }
    }
  }
}
```
