---
title: "List the delegation suggestions"
method: GET
path: "/api/assistant/suggestions"
tags: ["Mailzero Assistant"]
---

# List the delegation suggestions

`GET /api/assistant/suggestions`

## Request

- Base URL: `https://domani.run`
- URL: `https://domani.run/api/assistant/suggestions`
- Auth: HTTP bearer

The standing delegations the assistant proposes: a matter that recurred at least three times in ninety days (the same organisation or sender) and was handled the same way every time (ignored, answered, closed, handed to one agent), with the rule prefilled. Open ones by default. Nothing is created until the owner accepts. Requires `assistant:read`; an agent token is refused.

## Query parameters

- `status` 'open' | 'accepted' | 'dismissed'

## Response `200`

The suggestions

- object
  - `suggestions` AssistantSuggestion[], required
    - `id` string, required
    - `kind` 'delegation_rule', required
    - `handling` string, required: ignored, replied, resolved, or handed:<agent slug>
    - `rule` AssistantRuleInput, required
      - `name` string
      - `enabled` boolean
      - `position` integer: Rules are tried in this order; the first match wins
      - `match` AssistantRuleMatch: The explicit predicate of a standing delegation; every stated condition must hold
        - `senderAddress` string: The sender's address
        - `senderDomain` string: The sender's domain; a subdomain matches too
        - `organisation` string: The organisation label of the sender's domain, for example tucows
        - `workKeyPrefix` string: The work item key starts with this, for example org:tucows or auto:
        - `senderKind` 'human' | 'automated'
        - `mailboxIds` string[]
        - `labels` string[]: The matter carries any of these labels: category:<kind> is its kind of matter (CT-01), tag:<name> one of the person's tags (CT-01b)
        - `subjectPattern` string: An anchored, case-insensitive pattern on the subject
        - `minOccurrences` integer: Only recurring matters: at least this many occurrences
        - `minConfidence` number: Only when the calibrated classifier put at least this probability on one of the rule's category: labels; without its answer the rule does not match
      - `assignee_type` 'agent' | 'member'
      - `assignee_ref` string: The agent identity slug, or the member's user id
      - `level` 'observe' | 'triage' | 'draft' | 'guarded_send' | 'operate': The autonomy granted; observe by default
      - `grants` AssistantGrants: Caps on the effects of a level: who an outward effect may reach, how many effects a day, when, how much model spend, which risk classes without an approver, and a required approver. On a rule and on an assignee, the stricter wins
        - `recipients` object
          - `mode` 'correspondents' | 'domains' | 'anyone', required: The matter's correspondents (the default), listed domains, or anyone
          - `domains` string[]
        - `volume` object
          - `effects_per_day` integer, required
        - `schedule` object
          - `hours` integer[]: Start (inclusive) and end (exclusive) hour
          - `days` integer[]: Sunday is zero
          - `timezone` string: An IANA zone; UTC when absent
        - `spend` object
          - `usd_per_day` number
          - `usd_per_matter` number
        - `risk` object
          - `allow` string[]: Risk classes the assignee may act on; none by default
          - `financial_threshold_usd` number: Amounts below this do not make a matter financial
        - `approver` object
          - `member_id` string, required
    - `evidence` object, required
      - `matters` object[]
        - `id` string
        - `title` string
        - `last_seen_at` string, date-time
      - `matter_count` integer
      - `occurrences` integer
      - `window_days` integer
    - `status` 'open' | 'accepted' | 'dismissed', required
    - `first_seen_at` string, date-time, required
    - `last_seen_at` string, date-time, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required

## Other responses

- `401`: Missing or invalid API key
- `429`: Rate limit exceeded - wait and retry

---

[API](https://skmtc.dev/domani/apis/domani-run-api.md) · [All operations](https://skmtc.dev/domani/apis/domani-run-api/llms.txt) · [OpenAPI document](https://skmtc.dev/domani/apis/domani-run-api/revisions/7679f8159533?raw)
