---
title: "Request Project Media Access"
method: POST
path: "/asset/{asset_id}/share/project_media/request_access"
---

# Request Project Media Access

`POST /asset/{asset_id}/share/project_media/request_access`

## Request

- Base URL: `https://api.tellers.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tellers.ai/asset/{asset_id}/share/project_media/request_access`
- Auth: none declared

Ask the owners of the project's media the caller cannot read for access.

For anyone who can view the project, whatever their right on it: one
access request per medium in ``lacking_for_me`` not already asked for, to
its owner, as ``POST /access_request`` would. Returns the media sharing as
it now stands, with those media marked ``requested``.

## Path parameters

- `asset_id` string, uuid, required

## Headers

- `x-api-key` string, nullable
- `authorization` string, nullable

## Response `200`

Successful Response

- MediaSharing: How the media a project or assistant uses are shared, against its own shares.
  - `in_sync` boolean, required: Everyone it is shared with holds at least the expected right on every medium it uses.
  - `can_share` boolean, required: Whether the caller may share the project or assistant.
  - `media` MediaGap[], required: The media missing someone, and who.
    - `asset_id` string, required
    - `name` string, required
    - `file_type` 'video' | 'audio' | 'image' | 'text' | 'pdf' | 'lut' | 'font' | 'placeholder' | 'group_clip' | 'master_clip' | 'aaf' | 'proj_original' | 'folder' | 'project' | 'entity' | 'teller_config'
    - `can_share` boolean, required: Whether the caller may share it.
    - `missing` MediaGrantee[], required
      - `group_id` string, nullable: Set for a group.
      - `group_name` string, nullable
      - `email` string, nullable: Set for a person, or a pending invite.
      - `pending` boolean: An invite to an email that has no account yet.
      - `right` 'ADMIN' | 'READ' | 'WRITE' | 'VIEW', required: A right on an asset, a chat or an assistant, weakest first: VIEW < READ < WRITE < ADMIN. On an asset, VIEW sees the file and everything about it except its comments, which READ adds. Chats and assistants have nothing READ adds, so VIEW opens what READ does there. Group memberships start at READ.
      - `current_right` 'ADMIN' | 'READ' | 'WRITE' | 'VIEW': A right on an asset, a chat or an assistant, weakest first: VIEW < READ < WRITE < ADMIN. On an asset, VIEW sees the file and everything about it except its comments, which READ adds. Chats and assistants have nothing READ adds, so VIEW opens what READ does there. Group memberships start at READ.
  - `lacking_for_me` MediaAccessNeed[]: The media the caller cannot read on their own, with an owner they can ask for access. Projects only; empty for assistants.
    - `asset_id` string, required
    - `name` string, required
    - `file_type` 'video' | 'audio' | 'image' | 'text' | 'pdf' | 'lut' | 'font' | 'placeholder' | 'group_clip' | 'master_clip' | 'aaf' | 'proj_original' | 'folder' | 'project' | 'entity' | 'teller_config'
    - `requested` boolean, required: A request for it is already with its owner (pending or declined), so asking again does nothing.

## Other responses

- `422`: Validation Error

## Changes

- **2026-11-05** `fdaa0fa44a26`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/tellers/apis/tellers-api/changes/asset/:asset_id/share/project_media/request_access/post.md)

---

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