# Analytics

Revenue, orders, settlements and payment performance for a date range.

## Get analytics

`GET /v1/analytics`

The figures the dashboard's Analytics page draws, for a range of up to 366 days: revenue, orders, settlements and payment performance as a total, a change against the range before and a point per bucket, plus what payers sent and how reliably each network and asset finishes. Money is USD cents; an asset with no USD rate is left out of a money figure. Needs `payments:read`.

### Query parameters

- `from` `string`: First UTC day, `YYYY-MM-DD`. Default: 29 days before `to`.
- `to` `string`: Last UTC day, inclusive. Default: today.
- `interval` `string`: Default `day`.
- `chain` `string`: Only payments paid on this network.
- `asset` `string`: Only payments the payer sent in this asset.
- `metrics` `string`: Comma-separated metric keys. Default: all.

### Responses

#### `200`: The analytics.

Body (`application/json`):

- `currency` `string` _(required)_
- `range` `object` _(required)_
  - `from` `string` _(required)_
  - `to` `string` _(required)_
- `interval` `string` _(required)_
- `metrics` `object[]` _(required)_
  - `key` `string` _(required)_
  - `label` `string` _(required)_
  - `unit` `string` _(required)_: `ratio` is 0 to 1. Money is USD cents.
  - `total` `number | null` _(required)_: The figure for the whole range.
  - `change` `number | null` _(required)_: Percent change against the range of the same length just before.
  - `points` `object[]` _(required)_
    - `date` `string` _(required)_: The bucket's first UTC day. Weeks start on Monday.
    - `value` `number | null` _(required)_: `null` when the bucket gives the figure no value.
- `breakdowns` `object` _(required)_
  - `networks` `object[]` _(required)_
    - `key` `string` _(required)_
    - `count` `integer` _(required)_
    - `share` `number` _(required)_: 0 to 1.
  - `assets` `object[]` _(required)_
    - `key` `string` _(required)_
    - `count` `integer` _(required)_
    - `share` `number` _(required)_: 0 to 1.
  - `countries` `object[]` _(required)_: ISO 3166 alpha-2, or `Unknown`.
    - `key` `string` _(required)_
    - `count` `integer` _(required)_
    - `share` `number` _(required)_: 0 to 1.
- `performance` `object` _(required)_
  - `networks` `object[]` _(required)_
    - `key` `string` _(required)_
    - `finished` `integer` _(required)_: Completed, failed or expired payments.
    - `successRate` `number` _(required)_: 0 to 1.
    - `medianSeconds` `number | null` _(required)_: Median created-to-completed time.
  - `assets` `object[]` _(required)_
    - `key` `string` _(required)_
    - `finished` `integer` _(required)_: Completed, failed or expired payments.
    - `successRate` `number` _(required)_: 0 to 1.
    - `medianSeconds` `number | null` _(required)_: Median created-to-completed time.

#### `400`: An unknown metric, a malformed day, or a range over 366 days.

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `retryable` `boolean` _(required)_
  - `details` `object`

#### `403`: The key lacks `payments:read`, or is publishable.

Body (`application/json`):

- `error` `object` _(required)_
  - `code` `string` _(required)_
  - `message` `string` _(required)_
  - `retryable` `boolean` _(required)_
  - `details` `object`

### Example request

```bash
curl 'https://api.mayarin.xyz/v1/analytics?from=string&to=string&interval=day&chain=string&asset=string&metrics=string'
```

```ts
fetch('https://api.mayarin.xyz/v1/analytics?from=string&to=string&interval=day&chain=string&asset=string&metrics=string')
```
