---
title: "List labels through a share link"
method: GET
path: "/embed/media/{mediaId}/labels"
tags: ["Shared Links"]
---

# List labels through a share link

`GET /embed/media/{mediaId}/labels`

## Request

- Base URL: `https://api.speakai.co/v1`
- URL: `https://api.speakai.co/v1/embed/media/{mediaId}/labels`
- Auth: none required

Read the labelled passages of a media file through a dashboard share link. Allowed while the dashboard's `labels.isEnabled` is true. Only the labels the dashboard shows are returned (its label groups, or every active label when it lists none). No API key or access token: the share link `token` is the only credential. The media must be in one of the dashboard's folders. Every refusal returns the same `404 {"message": "Not found."}`, so a link holder cannot tell which check failed. A media or folder embed token also works here while the embed's `meta.isLabels` is true, for the embed's own media or media in its folders; an embed shows every active label and can never write. Reads are limited to 120 requests a minute per IP address.

## Path parameters

- `mediaId` string, required

## Query parameters

- `token` string, required

## Response `200`

Success

- object
  - `status` 'success': `success` on every 2xx response.
  - `data` object: The result.
    - `transcriptRevision` integer: The media's current transcript revision. Send it as `expectedTranscriptRevision` when you label or comment.
    - `labels` object[]: Name, colour and description of every label used in `mediaLabels`.
      - `labelId` string: Id of the label.
      - `name` string: Name of the label.
      - `color` string: Hex colour, such as `#6366f1`.
      - `description` string: Description of the label.
      - `parentId` unknown
    - `mediaLabels` object[]: Labelled passages, each narrowed to the labels the link shows. A passage left with none is dropped.
      - `mediaLabelId` string: Id of the labelled passage.
      - `mediaId` string: Id of the media.
      - `labelIds` string[]: Labels on the passage.
      - `anchor` object: Where the passage sits in the transcript. Built by the server from the word range you send.
        - `startWord` integer: Position of the first word.
        - `endWord` integer: Position of the last word, inclusive.
        - `exact` string: The quoted words, joined by single spaces.
        - `prefix` string: Up to 32 characters of transcript text before the quote.
        - `suffix` string: Up to 32 characters of transcript text after the quote.
        - `startInSec` number: Start time of the first word, in seconds.
        - `endInSec` number: End time of the last word, in seconds.
        - `speakerIds` string[]: Speakers of the quoted words.
        - `transcriptRevision` integer: The transcript revision these positions refer to.
      - `status` 'active' | 'shifted' | 'needs_review': `active`: the same words, possibly at new positions after an edit. `shifted`: most of the words survived an edit near the same time, but the text changed. `needs_review`: the words changed too much to follow; `anchor` then holds a suggested passage on the new transcript and `lastResolved` the last position a person confirmed.
      - `lastResolved` object: Present only while `status` is `needs_review`: the last position a person confirmed.
        - `startWord` integer: Position of the first word.
        - `endWord` integer: Position of the last word, inclusive.
        - `exact` string: The quoted words, joined by single spaces.
        - `prefix` string: Up to 32 characters of transcript text before the quote.
        - `suffix` string: Up to 32 characters of transcript text after the quote.
        - `startInSec` number: Start time of the first word, in seconds.
        - `endInSec` number: End time of the last word, in seconds.
        - `speakerIds` string[]: Speakers of the quoted words.
        - `transcriptRevision` integer: The transcript revision these positions refer to.
      - `createdAt` string, date-time: When it was created.
      - `updatedAt` string, date-time: When it last changed.
      - `authorName` string: The author's display name: the name a share-link viewer wrote as, or the team member's name, or "Team member" when a member has none or has left the company.

## Other responses

- `400`: A path or query value failed validation
- `404`: Any refusal: unknown or revoked token, expired subscription, the setting is off, view mode on a write, media outside the link, a name that is not allowed, or someone else's entry
- `429`: Rate limit reached

---

[API](https://skmtc.dev/speakai/apis/speak-ai-api.md) · [All operations](https://skmtc.dev/speakai/apis/speak-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/speakai/apis/speak-ai-api/revisions/52d777e6d46e?raw)
