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

# Formato de Dados da API

> Estrutura de dados esperada pela API Martan

## Reviews Widget

O widget consome a API Martan e espera o seguinte formato de resposta:

```json theme={null}
{
  "result": [
    {
      "id": "string",
      "display_name": "string",
      "rating": 5,
      "body": "string",
      "title": "string",
      "created_at": "2024-01-15T00:00:00Z",
      "verified_purchase": true,
      "is_recommended": true,
      "pictures": []
    }
  ],
  "count": 100,
  "meta": {
    "limit": 10,
    "offset": 0,
    "query": {
      "product_sku": "PROD-123"
    }
  }
}
```

### Campos do Review

| Campo               | Tipo    | Descrição                  |
| ------------------- | ------- | -------------------------- |
| `id`                | string  | ID único da avaliação      |
| `display_name`      | string  | Nome do avaliador          |
| `rating`            | number  | Nota de 1 a 5              |
| `body`              | string  | Texto da avaliação         |
| `title`             | string  | Título da avaliação        |
| `created_at`        | string  | Data de criação (ISO 8601) |
| `verified_purchase` | boolean | Se a compra foi verificada |
| `is_recommended`    | boolean | Se o produto é recomendado |
| `pictures`          | array   | Array de URLs de imagens   |

## Rating Widget

O widget de rating consome a API Martan no endpoint `/api/v1/ratings.json?expand=metrics` e espera o seguinte formato:

```json theme={null}
{
  "result": [
    {
      "sku": "PROD-123",
      "product_id": "123",
      "average": 4.5,
      "total": 120,
      "recommended": 100,
      "not_recommended": 5,
      "recommended_percentage": 83.33,
      "rate": {
        "one": 0,
        "two": 2,
        "three": 8,
        "four": 30,
        "five": 80
      }
    }
  ],
  "count": 1
}
```

### Campos do Rating

| Campo                    | Tipo   | Descrição                               |
| ------------------------ | ------ | --------------------------------------- |
| `sku`                    | string | SKU do produto                          |
| `product_id`             | string | ID do produto                           |
| `average`                | number | Média de avaliações (0-5)               |
| `total`                  | number | Total de avaliações                     |
| `recommended`            | number | Número de recomendações                 |
| `not_recommended`        | number | Número de não recomendações             |
| `recommended_percentage` | number | Percentual de recomendações             |
| `rate`                   | object | Distribuição por estrelas               |
| `rate.one`               | number | Quantidade de avaliações com 1 estrela  |
| `rate.two`               | number | Quantidade de avaliações com 2 estrelas |
| `rate.three`             | number | Quantidade de avaliações com 3 estrelas |
| `rate.four`              | number | Quantidade de avaliações com 4 estrelas |
| `rate.five`              | number | Quantidade de avaliações com 5 estrelas |

<Note>
  O widget faz cache dos dados no localStorage por 24 horas para otimizar performance. Apenas uma requisição à API é feita por página, mesmo com múltiplos componentes.
</Note>
