---
title: "Act On Inbox"
method: POST
path: "/v1/teams/{team_id}/inbox/act"
tags: ["inbox"]
---

# Act On Inbox

`POST /v1/teams/{team_id}/inbox/act`

## Request

- Base URL: `https://api.stormy.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.stormy.ai/v1/teams/{team_id}/inbox/act`
- Auth: none declared

His one act on one ask, written on the record that asked.

`reply` and `handle` take the ask off his list, mark it processing and wake
the desk once with his words. `resolve` closes it with no wake — on a row
already settled it only archives it. `unarchive` brings a settled row back
into his Inbox until he archives it again. `snooze` puts it away until
`until`. `seen` / `unseen` set the read mark.

## Path parameters

- `team_id` string, uuid, required

## Headers

- `authorization` string, nullable
- `x-darwin-token` string, nullable

## Request body

- InboxAct
  - `path` string, required
  - `needs` string, required
  - `act` 'reply' | 'handle' | 'resolve' | 'snooze' | 'unsnooze' | 'seen' | 'unseen' | 'follow' | 'unarchive', required
  - `text` string, nullable
  - `until` string, nullable
  - `reply_to` string, nullable
  - `thread_of` string, nullable
  - `connected` string, nullable
  - `screen` object, nullable

## Response `200`

Successful Response

- InboxActed
  - `ok` boolean
  - `item` InboxItem: ONE ASK, AND EVERYTHING THAT HAPPENED TO IT. The first block is the rail's `StationPin`, field for field and meaning for meaning, so the page can draw an Inbox row with the same parts as a pinned ask. The second is the `inbox.*` keys on the record, read back.
    - `ref` string, required
    - `path` string, required
    - `assignee` string, nullable
    - `desk` string
    - `desk_title` string
    - `title` string, required
    - `needs` string, required
    - `who` string
    - `at` string
    - `rank` integer, nullable
    - `urgent` boolean
    - `stakes` string
    - `ask` string
    - `choices` string
    - `choice_images` object
    - `choice_pick` string
    - `range` string
    - `unit` string
    - `at_point` string
    - `state` 'open' | 'processing' | 'snoozed' | 'done' | 'resolved' | 'answered', required
    - `asked` string
    - `answer` string
    - `answered_at` string
    - `outcome` string
    - `outcome_at` string
    - `learned` string
    - `snoozed_until` string
    - `seen` boolean
    - `seen_at` string
    - `changes` string[], nullable
    - `nudges` integer
    - `nudged_at` string
    - `started` boolean
    - `followup` string
    - `followed_at` string
    - `draft` string
    - `request` string
    - `pictures` InboxPicture[]
      - `kind` 'shot' | 'receipt', required
      - `artifact` string
      - `src` string
      - `href` string
      - `caption` string
    - `icon` string
    - `kind` string
    - `reopened_at` string
    - `reopened_by` string
    - `reopened_with` string
    - `route` string
    - `taken_at` string
    - `unarchived_at` string
    - `sealed` boolean
    - `page` boolean
    - `pageless` boolean
    - `archived` boolean
    - `setup_kind` string
    - `setup_app` string
    - `setup_order` integer
    - `setup_choices` string[]
    - `connect_apps` InboxConnectApp[]
      - `slug` string, required
      - `name` string, required
    - `set_aside` boolean
  - `woke` boolean
  - `message` string
  - `run` string

## Other responses

- `422`: Validation Error

## Changes

> 68 revisions in range; 1 not diffed.

- **2026-10-15** `22181872bb36`: 2 info
  - added the optional property `item/anyOf[subschema #1: InboxItem]/changes` to the response with the `200` status
  - added the optional property `item/anyOf[subschema #1: InboxItem]/seen_at` to the response with the `200` status
- **2026-10-14** `f65dcc3528d4`: 1 info
  - added the optional property `item/anyOf[subschema #1: InboxItem]/assignee` to the response with the `200` status
- **2026-10-13** `03c3bc288df4`: 7 info
  - added the new optional request property `screen`
  - added the optional property `item/anyOf[subschema #1: InboxItem]/connect_apps` to the response with the `200` status
  - added the optional property `item/anyOf[subschema #1: InboxItem]/set_aside` to the response with the `200` status
  - added the optional property `item/anyOf[subschema #1: InboxItem]/setup_app` to the response with the `200` status
  - …3 more
- **2026-10-11** `dbc505fd8667`: 2 info
  - added the new `unsnooze` enum value to the request property `act`
  - added the optional property `item/anyOf[subschema #1: InboxItem]/archived` to the response with the `200` status
- **2026-10-07** `534eae1fcead`: 5 info
  - added the new optional request property `connected`
  - added the new optional request property `reply_to`
  - added the new optional request property `thread_of`
  - added the optional property `item/anyOf[subschema #1: InboxItem]/choice_pick` to the response with the `200` status
  - …1 more

[Operation history](https://skmtc.dev/stormy/apis/stormy-control-plane/changes/v1/teams/:team_id/inbox/act/post.md)

---

[API](https://skmtc.dev/stormy/apis/stormy-control-plane.md) · [All operations](https://skmtc.dev/stormy/apis/stormy-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/stormy/apis/stormy-control-plane/revisions/a40e83844eaa?raw)
