# See what waits for me

URL: /agents/see-what-waits-for-me · Id: `guide:see-what-waits-for-me` · Status: `planned`

> Every Approval waiting on you, soonest deadline first, read without answering any of them.

Your agent lists every [Approval](/business/nouns/approval) waiting on you, soonest deadline first, and answers none of them. To answer one, name it: [answer an approval](/agents/answer-an-approval).

**Before it runs**

- Runs today: `planned`. api.sb does not serve `Approval.list` today, so no surface runs this guide end to end. [What ships today](/code/status).
- You leave the chat: Never.

## What you get
- 1 list of every Approval waiting on you, soonest deadline first (Approval)
- 1 row for each one: what the agent asks to do, the amount, and when it lapses (Approval)
- 1 link from each one to the Action it holds (Action)

## Your agent does
**For agents**

- Guide: `guide:see-what-waits-for-me`, status `planned`: say it is planned; do not run it (api.sb does not serve `Approval.list`). Page: [/agents/see-what-waits-for-me.md](/agents/see-what-waits-for-me.md).
- Approval: none: only the Startup’s own records change. Run it when the founder asks.
- Leaves the chat: never.
- Run: call the steps in order, each through the API, SDK, CLI or MCP tab below; a later step passes the `$id` an earlier one returns. Each value marked example is the sample business’s: pass the founder’s own.
- On the hosted MCP server today, a call resolves to its Action (`status` `Done`, `Pending`, `Refused`, `Failed` or `Canceled`), a call without `{ mode: 'do' }` runs in `try` and stores nothing, and a program does not read its own writes: preview the program without the option first, then run each write as its own `do` call with `{ mode: 'do' }` as the MCP tab shows.
- Lookups: a `find:` reads the two newest matches and stops to ask the founder when there is not exactly one, so no write acts on a guessed record.

| Step | Verb | Inputs (type, required, this guide’s value) | Returns |
| --- | --- | --- | --- |
| 1 | [`Approval.list`](/business/nouns/approval/list) (`verb:Approval.list`) | `limit` integer: example `20`; `where` string: example `"verdict = null"`; `sort` string: example `"deadline"` | `approvals` Approval[] |

Returns: the last call answers with `approvals`:

```json
{
  "api": "https://api.sb/leaseline.app",
  "$type": "Approval",
  "approvals": [
    {
      "$id": "https://api.sb/leaseline.app/approvals/approval_TlxQeWh9uX",
      "$type": "Approval"
    }
  ],
  "meta": {
    "limit": 20,
    "after": "approval_TlxQeWh9uX"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/approvals?limit=20",
    "next": "https://api.sb/leaseline.app/approvals?after=approval_TlxQeWh9uX"
  }
}
```

Next: offer “Approve the $740 ad spend”, or “Only the ones due today”.

Calls: `Approval.list`

Ask:

```text
What is waiting on me?
Show me my approvals.
What is waiting for my approval?
```

API:

```bash
# Approval.list
curl "https://api.sb/leaseline.app/approvals?limit=20&where=verdict%20%3D%20null&sort=deadline" \
  -H "Authorization: Bearer $SB_TOKEN"
```

SDK:

```ts
import { $ } from 'startup-builder'

await $.Approval.list({ limit: 20, where: 'verdict = null', sort: 'deadline' })
```

CLI:

```bash
npx startup-builder do Approval.list --data '{"limit":20,"where":"verdict = null","sort":"deadline"}'
```

MCP:

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Approval.list({ limit: 20, where: 'verdict = null', sort: 'deadline' })"
  }
}
```

## Change it
- Approve the $740 ad spend.
- Only the ones due today.
- Send me this list every morning at 8.

## Under the hood
- Systems: [Work queue](/agents/work-queue)
- Nouns: [Approval](/business/nouns/approval), [Action](/business/nouns/action)