---
title: "Repo Permission Preview"
method: GET
path: "/v1/teams/{team_id}/repo/permission-preview"
tags: ["team repo"]
---

# Repo Permission Preview

`GET /v1/teams/{team_id}/repo/permission-preview`

## 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}/repo/permission-preview`
- Auth: none declared

What ONE reader gets from this tree — run, not described.

`?as=public|team|manager|owner` plays a plane. `?caller=+1555…` or
`?caller=someone@example.com` plays a PERSON: the number is resolved against
verified active membership and the customer spine by the same function a
ringing phone uses, and the plane it earns is the same call the delegate
lane makes. Read-only; an unrecognised caller is a result, never an error.

## Path parameters

- `team_id` string, uuid, required

## Query parameters

- `as` string, nullable
- `caller` string, nullable

## Headers

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

## Response `200`

Successful Response

- PermissionPreview
  - `initialized` boolean, required
  - `order` string[]
  - `viewer` ViewerIdentity
    - `mode` string, required
    - `ceiling` string, required
    - `readable_planes` string[], required
    - `ceiling_from` string, required
    - `caller` string, nullable
    - `resolved` boolean
    - `tier` string, nullable
    - `role` string, nullable
    - `kind` string, nullable
    - `name` string, nullable
    - `resolved_from` string, nullable
    - `resolved_by` string, nullable
    - `subject_kind` string, nullable
    - `grant_ceiling` string, nullable
    - `grant_sha256` string, nullable
    - `note` string, nullable
  - `planes` object
  - `readable_planes` object
  - `readable_count` integer
  - `hidden_count` integer
  - `truncated` boolean
  - `files` PreviewFile[]
    - `path` string, required
    - `visibility` string, required
    - `readable` boolean, required
    - `label` string, nullable, required
    - `label_level` string, nullable, required
    - `inherited` string, nullable, required
    - `decided_by` string, required
    - `reason` string, required
    - `cascade` CascadeStep[], required
      - `meta` string, required
      - `value` string, required
      - `level` string, required
      - `applies` boolean, required
    - `is_meta` boolean, required
  - `lines` LinePreview[]
    - `line` string, required
    - `parts` string[], required
    - `withheld` string[], required
    - `characters` integer, required
    - `content_hash` string, required
  - `tools` ToolSurface[]
    - `lane` string, required
    - `decided_by` string, required
    - `caller_scoped` boolean, required
    - `plane_scoped` boolean, required
    - `offered` string[], required
    - `withheld` string[], required
    - `note` string, required
    - `computed_by` string, required
  - `tool_surface_note` string
  - `findings` object[]
  - `computed_by` string[]

## Other responses

- `422`: Validation Error

---

[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/8f749ef0f9db?raw)
