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

# Product Reviews

> Fetch product-level reviews for a company, including ratings, star distributions, and individual review summaries.

## Overview

The Product Reviews API returns product review data for a given company. Pass a company website or company UUID in the `company` query parameter.

Each result represents a reviewed product and includes the product name, average rating, star distribution, and a list of review summaries.

## Endpoint Details

* **Method:** `GET`
* **Endpoint:** `/v1/companies/reviews`
* **Base URL:** `https://api.akta.pro`

## Authentication

Pass your API key in the `x-api-key` request header.

```bash theme={null}
-H "x-api-key: YOUR_API_KEY"
```

## Request

### Query Parameters

<ParamField query="company" type="string" required>
  Company website or company UUID. Example: `canva.com` or `3fa85f64-5717-4562-b3fc-2c963f66afa6`. Company UUIDs can be obtained from the Company Search API.
</ParamField>

<ParamField query="limit" type="integer">
  Maximum number of reviews to return per product. Default: `10`. Max: `100`.
</ParamField>

<ParamField query="offset" type="integer">
  Number of results to skip. Default: `0`.
</ParamField>

<ParamField query="product_filtering" type="string">
  Product filtering parameter used to return reviews for selected products.
</ParamField>

## Response

### Successful Response Fields

Returns a JSON object with the following structure:

<ResponseField name="status" type="string">
  Request status. Returns `success` or `error`.
</ResponseField>

<ResponseField name="data" type="array">
  Array of product review objects.
</ResponseField>

<ResponseField name="pagination" type="object">
  Pagination metadata for the returned result set.
</ResponseField>

## Product Review Object Fields

<ResponseField name="product_name" type="string">
  Name of the reviewed product.
</ResponseField>

<ResponseField name="rating" type="float">
  Overall average rating. Example: `4.5`.
</ResponseField>

<ResponseField name="star_distribution" type="object">
  Count of reviews by star rating. Keys are `"1"` through `"5"`.
</ResponseField>

<ResponseField name="reviews" type="array">
  Array of individual review summary objects.
</ResponseField>

## Review Object Fields

<ResponseField name="review_id" type="string">
  Unique identifier for the review. UUID format.
</ResponseField>

<ResponseField name="review_title" type="string">
  Title of the review.
</ResponseField>

## Pagination Object Fields

<ResponseField name="total" type="integer">
  Total number of matching results.
</ResponseField>

<ResponseField name="limit" type="integer">
  Maximum number of reviews returned per product.
</ResponseField>

<ResponseField name="offset" type="integer">
  Number of results skipped before the current response.
</ResponseField>

## Example Response

```json theme={null}
{
  "status": "success",
  "data": [
    {
      "product_name": "Canva Pro",
      "rating": 4.6,
      "star_distribution": {
        "5": 1200,
        "4": 430,
        "3": 95,
        "2": 30,
        "1": 18
      },
      "reviews": [
        {
          "review_id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890",
          "review_title": "Best design tool for non-designers"
        },
        {
          "review_id": "b2c3d4e5-f6a7-8901-bc23-de45fa678901",
          "review_title": "Great value but limited exports on free plan"
        }
      ]
    }
  ],
  "pagination": {
    "total": 42,
    "limit": 10,
    "offset": 0
  }
}
```

## Error Responses

### 401 Unauthorized

Returned when the API key is missing or invalid.

```json theme={null}
{
  "status": "error",
  "error": "UNAUTHORIZED",
  "message": "Invalid or missing x-api-key."
}
```

### 400 Bad Request

Returned when the request contains invalid input.

```json theme={null}
{
  "status": "error",
  "error": "INVALID_INPUT",
  "message": "Invalid product reviews input."
}
```

### 422 Unprocessable Entity

Returned when the required company identifier is missing.

```json theme={null}
{
  "status": "error",
  "error": "MISSING_PARAMETER",
  "message": "The company query parameter is required."
}
```

### 404 Company Not Found

Returned when no company matches the provided input.

```json theme={null}
{
  "status": "error",
  "error": "COMPANY_NOT_FOUND",
  "message": "No company found for the provided identifier."
}
```

### 500 Internal Server Error

Returned when an unexpected server error occurs.

```json theme={null}
{
  "status": "error",
  "error": "SERVER_ERROR",
  "message": "An unexpected error occurred. Please try again."
}
```
