View as Markdown

Data status

How far each client's figures are ready: the day the data is released through, per client, per lens and per custody and cash account. Use it to know which day a report or a read can be made as of. Reads need platform:read and the operations module on read in one of your groups (an admin, Aleta, or a user in no group always has it); without it the route answers 403.

After your tenant has moved, a custody or cash account's day is its newest release. A client's or a lens's day is the oldest released_through over the custody and cash accounts under it whose release_mode is auto or planned and that have been released at least once; custody and cash accounts with release_mode manual or null do not count, and with none the day is null.

Before your tenant has moved, the days follow the legacy platform: each active portfolio's newest holdings day within the last 7 days, the newest per release group, which every portfolio of the group takes; a lens takes the oldest over its portfolios (a lens with no day at all takes today's date, UTC), and a client the oldest over its lenses. A custody or cash account shows its portfolio's day and counts, except one created on this platform rather than the legacy one: its days are null and it does not count.

Data model

client_id, client_namestring

The client.

data_ready_throughdate or null

The oldest day the client's data is released through. null when nothing counts yet.

last_released_attimestamp, date or null

The newest release: after your tenant has moved, an RFC 3339 timestamp (UTC, with microseconds) over the custody and cash accounts that count; before, the newest published day over the client's lenses (YYYY-MM-DD, day precision).

lensesarray

The client's lenses you can see, by name, each with lens_id, name, data_ready_through and last_released_at.

custody_accountsarray

One row per custody account you can see, by name: id, name, released_through (date or null), last_released_at (timestamp, date or null) and counts_toward_date (whether the custody account moves the client's and lenses' day).

cash_accountsarray

One row per cash account you can see, with the same fields.


GET/v1/data-status

List data status

Returns one row per client you can see, ordered by client_id, as a cursor list. A client or lens you cannot see gives an empty data, not a 404. An unknown parameter, a malformed id or an invalid cursor is a 400; a token without platform:read is a 403.

Query parameters

client_idstring

One client.

lens_idstring

One lens: its client, with only that lens in lenses and only the lens's custody and cash accounts.

cursor, limitstring, integer

The page: limit defaults to 100, at most 1000.

Request
GET/v1/data-status
curl -G https://api.aleta.ai/v1/data-status \
  -H "Authorization: Bearer {access_token}" \
  -d client_id=2f6c1d0e-8a3b-4c5d-9e7f-1a2b3c4d5e6f
Response
{
  "data": [
    {
      "client_id": "2f6c1d0e-8a3b-4c5d-9e7f-1a2b3c4d5e6f",
      "client_name": "Hansen Holding",
      "data_ready_through": "2026-10-16",
      "last_released_at": "2026-10-17T07:02:11.000000Z",
      "lenses": [
        {
          "lens_id": "8d7c6b5a-4e3f-4a2b-9c1d-0e9f8a7b6c5d",
          "name": "Total",
          "data_ready_through": "2026-10-16",
          "last_released_at": "2026-10-17T07:02:11.000000Z"
        }
      ],
      "custody_accounts": [
        {
          "id": "6f1c2a3b-9d4e-4f50-8a61-7b2c3d4e5f60",
          "name": "Depot 1234",
          "released_through": "2026-10-16",
          "last_released_at": "2026-10-17T07:02:11.000000Z",
          "counts_toward_date": true
        }
      ],
      "cash_accounts": []
    }
  ],
  "next_cursor": null,
  "limit": 100
}