> ## Documentation Index
> Fetch the complete documentation index at: https://vetta.sh/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Mini apps

> The company's mini apps: pages its template declares, read with live numbers.

A mini app is a small app of the dashboard, made of the platform's blocks: what waits on you, what
the agents are doing, the board, the week ahead, posts, spend. A template declares its mini apps as
data, each with a name, an icon and one or more pages. A company with no template has none. Every
number on a page is read by the platform when you ask for it. None is stored in the mini app.

## List the mini apps

`GET /v1/mini-apps` — scope `sessions:read`

The mini apps in the template's order, each with its pages and what it reads: every source bound on any of its pages, `media_library` for the library block, and `posts_waiting` where it lists posts waiting on a person (who can decide them from it). `reads` is derived from the declaration by the platform, never written by the template.

```json theme={"system"}
{
  "data": [
    {
      "object": "mini_app",
      "slug": "channel",
      "name": "Channel",
      "icon": "play",
      "pages": [
        { "slug": "posts", "title": "Posts" },
        { "slug": "schedule", "title": "Schedule" },
        { "slug": "analytics", "title": "Analytics" }
      ],
      "reads": ["post_views", "posts", "posts_waiting", "schedule", "spend_total"]
    }
  ],
  "has_more": false,
  "next_cursor": null
}
```

## Read a page

`GET /v1/mini-apps/{slug}?page={page}` — scopes `sessions:read`, `agents:read` and `files:read`

A page shows agents, the board, routines, the setup's answers, social handles and media, so a key
needs the scopes that guard those on their own routes. Spend also needs `billing:read`.

One page, read now on the company's clock: the one `page` names, else the first. The answer is the
mini app's summary plus `networks` (the template's networks, each `{ platform, connected }`, where
`connected` says whether a persona is connected to it and is `null` when that could not be read),
`page` (the slug that was read),
`as_of`, `timezone` and `spec`. `spec` is a flat map of elements under one `Page`: each element is
`{ type, props, children? }`, and each data slot is the source it names plus what was read, such as
`{ "$source": "spend_total", "days": 14, "value": 4120000 }`. Money is integer micro-USD.

A block that could not be read is an `Unread` element in its place, with the reason:

```json theme={"system"}
{ "type": "Unread", "props": { "of": "Metric", "label": "Spent", "reason": "the company's spend is shown to the people who can read billing" } }
```

Spend is read only for a caller holding `billing:read`. An unknown mini app or page is `not_found`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.