# Analytics

Understand market signals, routing decisions and modeled outcomes.

This is the simulated Earn API. Position creation and withdrawal change sandbox records; they do not sign a wallet transaction.


[Authentication](/build/authentication/) · [Errors](/build/errors/) · [Amounts and units](/build/units/)


## Uplift vs baselines

`GET /analytics/uplift`


Routed portfolio value versus passive baselines (Aave-only and hold-original-vault). The concept’s primary proof point.


### Parameters

| Name | Location | Type | Required | Description |

| --- | --- | --- | --- | --- |

| `user_id` | query | `string` | No | Scope to a user |

| `asset` | query | `"USDC"`, `"USDT"` | No | Filter by asset |

### Response · 200

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | `string` | Yes |   |
| `data` | [UpliftReport](/api/sandbox-models/#upliftreport) | Yes |   |
| `meta` | `object` | No |   |


For failed requests, inspect `error.code`, `error.message` and the request ID. [Error handling](/build/errors/).


## Decision log

`GET /analytics/decisions`


Explainable log of routing and rebalance decisions: inputs, alternatives considered, expected uplift and rationale.


### Parameters

| Name | Location | Type | Required | Description |

| --- | --- | --- | --- | --- |

| `user_id` | query | `string` | No | Filter by user |

| `position_id` | query | `string` | No | Filter by position |

| `asset` | query | `"USDC"`, `"USDT"` | No | Filter by asset |

| `limit` | query | `integer` | No | Page size (1-500, default 100) |

| `cursor` | query | `string` | No | Opaque cursor returned as meta.next_cursor |

### Response · 200

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | `"list"` | Yes |   |
| `data` | [Decision](/api/sandbox-models/#decision)[] | Yes |   |
| `meta` | [ListMeta](/api/sandbox-models/#listmeta) | Yes |   |


For failed requests, inspect `error.code`, `error.message` and the request ID. [Error handling](/build/errors/).


## Risk-adjusted signals

`GET /analytics/signals`


Per-vault risk-adjusted APY (APY discounted by risk tier and volatility) with a naive trend forecast and a recommendation. Ranked.


### Parameters

| Name | Location | Type | Required | Description |

| --- | --- | --- | --- | --- |

| `asset` | query | `"USDC"`, `"USDT"` | No | Filter by asset |

### Response · 200

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | `"list"` | Yes |   |
| `data` | [Signal](/api/sandbox-models/#signal)[] | Yes |   |
| `meta` | [ListMeta](/api/sandbox-models/#listmeta) | Yes |   |


For failed requests, inspect `error.code`, `error.message` and the request ID. [Error handling](/build/errors/).


## Market regime

`GET /analytics/regime`


Classifies the current rate regime (rising/falling/stable/volatile) from recent yield trend and volatility.


### Parameters

| Name | Location | Type | Required | Description |

| --- | --- | --- | --- | --- |

| `asset` | query | `"USDC"`, `"USDT"` | No | Restrict to one asset |

### Response · 200

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | `string` | Yes |   |
| `data` | [Regime](/api/sandbox-models/#regime) | Yes |   |
| `meta` | `object` | No |   |


For failed requests, inspect `error.code`, `error.message` and the request ID. [Error handling](/build/errors/).


## Strategy advisor

`GET /analytics/advisor`


Template-generated (non-LLM) strategy summary: regime, top risk-adjusted opportunities, portfolio uplift and rationale bullets.


### Response · 200

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | `string` | Yes |   |
| `data` | [Advisor](/api/sandbox-models/#advisor) | Yes |   |
| `meta` | `object` | No |   |


For failed requests, inspect `error.code`, `error.message` and the request ID. [Error handling](/build/errors/).

