# Sales overview

Orders, gross and net sales, and average order value for a period, in Riyadh time.

```http
GET https://larm.sa/stores/{storeId}/v1/analytics/overview
```

Scopes (any one): `analytics:read`, `analytics.overview:read`

`from` and `to` use `YYYY-MM-DD`, both are required, and the period is 1 to 366 days. These are the same figures the merchant sees in the dashboard.

## Query parameters

| Field | Type | Required | Description |
|---|---|---|---|
| `from` | string (date) | yes |  |
| `to` | string (date) | yes |  |


## Response

| Field | Type | Required | Description |
|---|---|---|---|
| `data` | object | yes |  |
| `data.orders` | integer | no |  |
| `data.paid_orders` | integer | no |  |
| `data.fulfilled_orders` | integer | no |  |
| `data.gross_sales` | string | no | Gross sales. |
| `data.wallet_refunds` | string | no | Refunded to the customer wallet. |
| `data.net_sales` | string | no | Net sales. |
| `data.average_order` | string | no | Average order value. |
| `data.currency` | object | no |  |
| `execution` | object | no | Who executed the request: the app, version, installation and store. Field names here are camelCase. |
| `execution.appId` | string (uuid) | no |  |
| `execution.versionId` | string (uuid) | no |  |
| `execution.installationId` | string (uuid) | no |  |
| `execution.storeId` | string (uuid) | no |  |
| `execution.requestId` | string (uuid) | no |  |
| `execution.generation` | integer | no |  |
| `execution.routeEpoch` | integer | no |  |
| `execution.appAuthEpoch` | integer | no |  |
| `execution.grantRevision` | integer | no |  |
| `meta` | object | yes |  |
| `meta.metric_definition` | object | no |  |
| `meta.timezone` | object | no |  |
| `meta.from` | string (date) | no |  |
| `meta.to` | string (date) | no |  |
| `meta.currency` | object | no |  |
| `meta.request_id` | string (uuid) | no |  |


## Example request

```bash
curl -X GET "https://larm.sa/stores/$STORE_ID/v1/analytics/overview?from=2026-10-01&to=2026-10-15" \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```


## Example response (200)

```json
{
  "data": {
    "orders": 412,
    "paid_orders": 398,
    "fulfilled_orders": 391,
    "gross_sales": "48210.00",
    "wallet_refunds": "320.00",
    "net_sales": "47890.00",
    "average_order": "120.33",
    "currency": "SAR"
  },
  "execution": {
    "appId": "1f2e3d4c-5b6a-4978-8695-a4b3c2d1e0f9",
    "versionId": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
    "installationId": "c7e4a1f2-6b3d-4e8a-9c05-1d2f3a4b5c6d",
    "storeId": "5b1d7a62-0c4e-4f38-9a51-2e7b3c9d8f10",
    "requestId": "3f0c2b8e-7a51-4c1e-9d0a-5b6f1e2d4c3a",
    "generation": 1,
    "routeEpoch": 4,
    "appAuthEpoch": 1,
    "grantRevision": 2
  },
  "meta": {
    "metric_definition": "dashboard_sales_v1",
    "timezone": "Asia/Riyadh",
    "from": "2026-10-01",
    "to": "2026-10-15",
    "currency": "SAR",
    "request_id": "3f0c2b8e-7a51-4c1e-9d0a-5b6f1e2d4c3a"
  }
}
```


## Errors

| HTTP | Code | Meaning |
|---|---|---|
| 400 | `INVALID_DATE_RANGE` | Missing date, or a period longer than 366 days. |
