---
search:
  tags:
    - AppShares
    - PATCH
seo:
  description: >-
    User-gated (chrm_user_* or session); owner only (app:share). Re-roles an…
    Reference for the PATCH /api/v1/apps/{appId}/shares endpoint in the Charming
    API.
sidebar:
  label: Change an existing share’s role by grantee
  badge: PATCH
title: Change an existing share’s role by grantee
type: openapi-operation
---
User-gated (`chrm_user_*` or session); owner only (`app:share`). Re-roles an existing grant or outstanding email invitation; never creates one.

`PATCH /api/v1/apps/{appId}/shares`

**Request body** (`application/json`, required)

- `grantee` (string, required) — Handle or email of the grantee.
- `role` (string, required)

Request body example:

```json
{
  "grantee": "string",
  "role": "collaborator"
}
```

**Responses**

- `200` — Role changed.
- `400` — Invalid body, app id, or missing role.
- `401` — Sign-in required.
- `403` — Only the owner can manage shares.
- `404` — App not found, or no share for the grantee.
- `409` — Unshareable state (unclaimed app).
- `429` — Share-lookup rate limit.

Response example, 200:

```json
{
  "ok": true,
  "role": "collaborator"
}
```

Found a bug or need a feature? [Tell us](/docs/capabilities/feedback) with `submit_feedback` or `POST /app/{id}/feedback`. Your feedback shapes what we build next.
