---
title: "Get project sharing"
method: GET
path: "/projects/{projectId}/sharing"
tags: ["Projects"]
---

# Get project sharing

`GET /projects/{projectId}/sharing`

## Request

- Base URL: `https://app.flora.ai/api/v1`
- URL: `https://app.flora.ai/api/v1/projects/{projectId}/sharing`
- Auth: HTTP bearer

Returns how the project is shared: the link sharing mode, the active share link (only when the authenticated user may manage sharing), the owner, and everyone with a seat on the project. Missing and inaccessible projects both return 404.

## Path parameters

- `projectId` string, required: Project identifier

## Response `200`

Sharing state returned.

- object
  - `project_id` string, required: Project identifier
  - `workspace_id` string, required: Workspace identifier
  - `sharing_mode` 'restricted' | 'view' | 'edit', required: Link sharing mode: `restricted` (no links; members only), `view` (anyone with the link can view), `edit` (anyone with the link can edit)
  - `is_private` boolean, required: True when only the owner and the people it was shared with can see the project, rather than the whole workspace
  - `can_manage_sharing` boolean, required: Whether the authenticated user may change this project's sharing
  - `link` object, nullable, required: The active share link. Null when sharing is restricted, no link has been created yet, or the caller may not manage sharing.
    - `url` string, uri, required: Link into the project. Anyone who has it gets the link's role, so treat it as a secret.
    - `role` 'guest' | 'editor', required: What the link grants: `guest` can view (and comment when allowed), `editor` can edit
    - `allow_comments` boolean, required: Whether visitors arriving through the link may leave comments
    - `passphrase_protected` boolean, required: Whether visitors must enter a passphrase before the link resolves. The passphrase itself is never returned.
  - `owner` object, required: Project owner
    - `name` string, required: Display name
    - `email` string, required: Email address
  - `members` object[], required: People with a seat on the project besides the owner
    - `name` string, required: Display name
    - `email` string, required: Email address
    - `role` string, required: Role on the project
  - `canvas_url` string, uri, required: Project canvas URL

## Other responses

- `400`: 400
- `401`: 401
- `402`: 402
- `403`: 403
- `404`: 404
- `409`: 409
- `429`: 429
- `500`: 500
- `503`: 503

## Changes

- **2026-10-28** `a8351619f225`: 9 warning
  - added the new `not_configured` enum value to the `error/code` response property for the response status `400`
  - added the new `not_configured` enum value to the `error/code` response property for the response status `401`
  - added the new `not_configured` enum value to the `error/code` response property for the response status `402`
  - added the new `not_configured` enum value to the `error/code` response property for the response status `403`
  - …5 more
- **2026-10-16** `e54130373b10`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/florafauna-ai/apis/flora-ai-api/changes/projects/:projectId/sharing/get.md)

---

[API](https://skmtc.dev/florafauna-ai/apis/flora-ai-api.md) - [All operations](https://skmtc.dev/florafauna-ai/apis/flora-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/florafauna-ai/apis/flora-ai-api/revisions/87cfe2c4ac29?raw)
