---
title: "Ask Permission"
method: POST
path: "/v1/teams/{team_id}/push/permissions/ask"
tags: ["push"]
---

# Ask Permission

`POST /v1/teams/{team_id}/push/permissions/ask`

The desk asks this business's phones for a capability.

TWO SURFACES, ONE ASK. The card lands in the chat (the phone reads its open
asks and draws it over the composer) and a notification carries the same
ask to a phone that is in a pocket — `stormy://permission/<capability>`
opens the pre-prompt straight from the banner. The notification is best
effort: a phone that refused notifications is exactly the phone this is
most often used on, and a failed banner must never fail the ask.

## Path parameters

- `team_id` string, uuid, required

## Headers

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

## Request body

- AskRequest
  - `capability` string, required
  - `why` string
  - `installation_id` string

## Response `200`

Successful Response

- object

## Other responses

- `422` — Validation Error

## Changes

> 32 revisions in range; 1 not diffed.

- **2026-09-11** `79b0c0f35170` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/stormy/apis/stormy-control-plane/changes/v1/teams/:team_id/push/permissions/ask/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/b09e3c4ee2af?raw)
