---
title: "List the app's collaborators."
method: GET
path: "/apps/{appId}/collaborators"
tags: ["collaborators"]
---

# List the app's collaborators.

`GET /apps/{appId}/collaborators`

## Request

- Base URL: `https://api.shorebird.dev/api/v1`
- URL: `https://api.shorebird.dev/api/v1/apps/{appId}/collaborators`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Every user holding a per-app role on the app. Members of the
organization that owns the app are not listed unless they also hold
a per-app role; see `GET /organizations/{organizationId}/users`. The
list is not paged.

## Response `200`

The app's collaborators.

- AppCollaborator[]
  - `user_id` integer, required: The user's ID. This is the `collaboratorId` that PATCH and DELETE /apps/{appId}/collaborators/{collaboratorId} take.
  - `email` string, email, required: The user's email address.
  - `role` 'owner' | 'admin' | 'appManager' | 'developer' | 'viewer' | 'auditor' | 'scim' | 'none', required: A role that a user can have relative to an Organization or App.

## Other responses

- `403`: The caller lacks the `appRoleGrants.view` permission.
- `404`: The app does not exist (`app_not_found`).
- `default`: Standard error response. Emitted for any non-2xx status where a body can be decoded into an [ErrorResponse].

## Changes

- **2026-11-05** `941da8871d10`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/shorebird/apis/shorebird-codepush-api/changes/apps/:appId/collaborators/get.md)

---

[API](https://skmtc.dev/shorebird/apis/shorebird-codepush-api.md) - [All operations](https://skmtc.dev/shorebird/apis/shorebird-codepush-api/llms.txt) - [OpenAPI document](https://skmtc.dev/shorebird/apis/shorebird-codepush-api/revisions/941da8871d10?raw)
