# List the report widgets

`GET https://api.morevoice.ai/v1/reports/catalog`

The widgets a report can show, with the filters each honours; the periods and the cadences.

Authenticate with a secret API key: `Authorization: Bearer $MOREVOICE_API_KEY`.

Operation ID: `reports_catalog`.

## Parameters

### Query parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `language` | `"he" \| "en"` | no | The language of names and descriptions (default en). |

### Headers

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `MoreVoice-Version` | `string` | no | The API version to use for this request. Defaults to the version the API key is pinned to. |

## Responses

### 200 OK

OK Returns `ReportCatalog`.

| Field | Type | Description |
| --- | --- | --- |
| `object` | `"report_catalog"` | — |
| `widgets` | `object[]` | — |
| `periods` | `("today" \| "yesterday" \| "last7" \| "last30" \| "thisWeek" \| "lastWeek" \| "thisMonth" \| "lastMonth")[]` | — |
| `frequencies` | `("daily" \| "weekly" \| "monthly")[]` | — |

Example:

```json
{
  "frequencies": [
    "daily",
    "weekly",
    "monthly"
  ],
  "object": "report_catalog",
  "periods": [
    "today",
    "yesterday",
    "last7",
    "last30",
    "thisWeek",
    "lastWeek",
    "thisMonth",
    "lastMonth"
  ],
  "widgets": [
    {
      "description": "Calls, answer rate, handle time and direction at a glance.",
      "filters": [
        "assistant_ids",
        "campaign_ids",
        "agent_ids",
        "team_ids"
      ],
      "name": "Call overview",
      "type": "kpis"
    }
  ]
}
```

### 400 Bad Request

The request is invalid: a parameter is missing, malformed or unknown, or the version header is unknown. Returns `ErrorEnvelope`.

### 401 Unauthorized

No valid API key was sent. Returns `ErrorEnvelope`.

### 403 Forbidden

The key may not do this (a missing scope, a plan limit, or a compliance block). Returns `ErrorEnvelope`.

### 429 Too Many Requests

Too many requests, or no call capacity right now. Retry after the Retry-After delay. Returns `ErrorEnvelope`.

### 500 Internal Server Error

Something went wrong on MoreVoice's side. Retry with the same Idempotency-Key. Returns `ErrorEnvelope`.

## Code samples

**TypeScript**

```ts
import MoreVoice from "@morevoice/sdk";

const mv = new MoreVoice(); // MOREVOICE_API_KEY from the environment

const reportCatalog = await mv.reports.catalog();
console.log(reportCatalog);
```

**Python**

```python
from morevoice import MoreVoice

client = MoreVoice()  # MOREVOICE_API_KEY from the environment

report_catalog = client.reports.catalog()
print(report_catalog)
```

**cURL**

```sh
curl https://api.morevoice.ai/v1/reports/catalog \
  -H "Authorization: Bearer $MOREVOICE_API_KEY"
```
