---
title: "Get playlist"
method: GET
path: "/projects/{project_id}/playlists/{id}"
tags: ["Playlists"]
---

# Get playlist

`GET /projects/{project_id}/playlists/{id}`

Returns a single playlist by ID.

## Query parameters

- `filter[content.title]` string

## Response `200`

OK

- PlaylistModel
  - `id` integer — Unique identifier for the object
  - `title` string — The title of the playlist
  - `enabled` boolean — Whether the playlist can be played in the BeyondWords player
  - `type` 'project' | 'manual' | 'auto' — The type of playlist. The `project` type is generated automatically. The `manual` and `auto` can set `content` and `filter_tags_condition` respectively
  - `filter_tags_condition` object, nullable — The condition used to find content for `auto` playlists, based on `author`, `title`, `published_at` and `tags`
    - `rules` object[] — An array of rule groups, combined with AND
      - `operator` 'and' | 'or' — How the entries in `conjunction` are combined
      - `conjunction` object[] — An array of conditions
        - `field` 'author' | 'title' | 'published_at' | 'tags'
        - `operator` 'include' | 'exclude' | 'less_than' | 'greater_than' — `less_than`/`greater_than` are only valid for `published_at`
        - `value` string
  - `content_limit` integer — The maximum number of content items that will appear in the playlist
  - `content` ContentPartialModel[] — The content of the playlist (a reduced set of fields are returned). Only the `id` field is returned for the playlists index endpoint
    - `id` string — Unique UUID or the source_id for the object
    - `status` 'draft' | 'queued' | 'processing' | 'processed' | 'skipped' | 'error' — The current status of the content processing operation. This value will change as the content is processed.
    - `type` 'auto_segment' | 'manual_segment' | 'audio_upload' — The content type. Possible values are `auto_segment`, `manual_segment` or `audio_upload`
    - `title` string, nullable — The content title
    - `title_enabled` boolean — The flag to enable title segments in audio
    - `body_enabled` boolean — The flag to enable body segments in audio
    - `summary_enabled` boolean — The flag to enable summary audio
    - `summary_title_enabled` boolean — The flag to include title text and audio segments in summaries
    - `source_id` string, nullable — The externally-provided source identifier of the content
    - `source_url` string, nullable — The URL that contains the source content
    - `author` string, nullable — The author of the content
    - `tags` string[] — Arbitrary tags associated with the content, used for playlist filtering
    - `image_url` string, nullable — The feature image URL of the content
    - `metadata` object, nullable — The arbitrary metadata associated with content
    - `audio` ContentAudioModel[] — The array of audio files for the entire content
      - `id` integer — Unique identifier for the object
      - `variant` 'article' | 'summary' — The variant type of the audio content
      - `video_size` object, nullable
        - `name` string
        - `description` string, nullable
        - `width` integer
        - `height` integer
      - `content_type` 'audio/mpeg' | 'application/x-mpegURL', nullable — MIME type of the audio file (MP3 or HLS playlist)
      - `url` string, uri, nullable — Direct URL to the audio file
      - `duration` integer, nullable — Duration of the audio file in milliseconds
      - `base64_file` string, nullable — Base64-encoded content of HLS playlist metadata files
    - `video` ContentVideoModel[] — The array of video files for the entire content
      - `id` integer — Unique identifier for the object
      - `variant` 'article' | 'summary' — The variant type of the video content
      - `video_size` object, nullable
        - `name` string
        - `description` string, nullable
        - `width` integer
        - `height` integer
      - `content_type` 'video/mp4' | 'application/x-mpegURL', nullable — MIME type of the video file (MP4 or HLS playlist)
      - `url` string, nullable — Direct URL to the video file
      - `duration` integer, nullable — Duration of the video file in milliseconds
      - `base64_file` string, nullable — The content of the media file encoded as base64. Only present for .m3u8 metadata files
    - `audio_with_intro_outro` ContentAudioModel[]
      - `id` integer — Unique identifier for the object
      - `variant` 'article' | 'summary' — The variant type of the audio content
      - `video_size` object, nullable
        - `name` string
        - `description` string, nullable
        - `width` integer
        - `height` integer
      - `content_type` 'audio/mpeg' | 'application/x-mpegURL', nullable — MIME type of the audio file (MP3 or HLS playlist)
      - `url` string, uri, nullable — Direct URL to the audio file
      - `duration` integer, nullable — Duration of the audio file in milliseconds
      - `base64_file` string, nullable — Base64-encoded content of HLS playlist metadata files
    - `summarization` object
      - `audio` ContentAudioModel[] — The array of summary audio files for the entire content
        - `id` integer — Unique identifier for the object
        - `variant` 'article' | 'summary' — The variant type of the audio content
        - `video_size` object, nullable
          - `name` string
          - `description` string, nullable
          - `width` integer
          - `height` integer
        - `content_type` 'audio/mpeg' | 'application/x-mpegURL', nullable — MIME type of the audio file (MP3 or HLS playlist)
        - `url` string, uri, nullable — Direct URL to the audio file
        - `duration` integer, nullable — Duration of the audio file in milliseconds
        - `base64_file` string, nullable — Base64-encoded content of HLS playlist metadata files
      - `video` ContentVideoModel[] — The array of summary video files for the entire content
        - `id` integer — Unique identifier for the object
        - `variant` 'article' | 'summary' — The variant type of the video content
        - `video_size` object, nullable
          - `name` string
          - `description` string, nullable
          - `width` integer
          - `height` integer
        - `content_type` 'video/mp4' | 'application/x-mpegURL', nullable — MIME type of the video file (MP4 or HLS playlist)
        - `url` string, nullable — Direct URL to the video file
        - `duration` integer, nullable — Duration of the video file in milliseconds
        - `base64_file` string, nullable — The content of the media file encoded as base64. Only present for .m3u8 metadata files
    - `published` boolean — Whether the content will appear in the BeyondWords players and podcast feeds
    - `video_published` boolean — Whether the content will appear in the BeyondWords video players and podcast video feeds
    - `publish_date` string, nullable — Time at which the content was published or is scheduled to be published (ISO 8601)
    - `ads_enabled` boolean — Whether adverts will play for this content in the BeyondWords players
    - `auto_segment_updates_enabled` boolean — Whether the media files will be regenerated when the text content is updated with `auto_segment`
    - `background_track` object, nullable
      - `enabled` boolean
      - `track` object, nullable
        - `id` integer
        - `name` string
        - `custom` boolean
        - `volume` integer
        - `url` string
    - `feature_image` object, nullable
      - `url` string
      - `video_settings` object
        - `enabled` boolean
        - `crop_coordinates` object
          - `16:9` number[]
          - `9:16` number[]
    - `feature_video` object, nullable
      - `url` string
      - `video_settings` object
        - `enabled` boolean
        - `volume` integer
        - `crop_coordinates` object
          - `16:9` number[]
          - `9:16` number[]
    - `summarization_settings` SummarizationSettingsModel
      - `enabled` boolean — When true, AI-powered summarization is enabled
      - `prompt` string, nullable — Custom prompt for AI summarization generation
      - `model` 'gpt-5-nano' | 'gpt-5-mini' | 'gpt-5' | 'gpt-5.1', nullable
      - `temperature` number, nullable — Controls randomness in AI summarization (0.0 = deterministic, 2.0 = very random)
      - `limit_token_usage` integer, nullable — Maximum number of tokens to use for AI summarization
      - `template` SummarizationSettingsTemplateModel[]
        - `id` integer
        - `slug` string — Unique identifier for the object
        - `name` string
        - `model` 'gpt-5-nano' | 'gpt-5-mini' | 'gpt-5' | 'gpt-5.1', nullable
        - `prompt` string, nullable — Custom prompt for AI summarization generation
        - `temperature` number, nullable — Controls randomness in AI summarization (0.0 = deterministic, 2.0 = very random)
        - `limit_token_usage` integer, nullable — Maximum number of tokens to use for AI summarization
    - `language` string, nullable — The default language of the content
    - `created` string, date-time — Time at which the object was created (ISO 8601)
    - `updated` string, date-time — Time at which the object was updated (ISO 8601)
  - `created` string, date-time — Time at which the object was created (ISO 8601)
  - `settings` FeedModel
    - `title` string — The title of the podcast feed
    - `enabled` boolean — Whether or not the podcast feed URL is available
    - `description` string, nullable — The description of the podcast feed
    - `homepage_url` string, nullable — The homepage URL of the podcast feed
    - `image_url` string, nullable — The image URL of the podcast feed
    - `apple_categories` object — Category data for Apple Podcasts and Spotify
      - `primary_category` string, nullable — The primary category of the podcast
      - `primary_subcategory` string, nullable — The primary subcategory of the podcast
      - `secondary_category` string, nullable — The secondary category of the podcast
      - `secondary_subcategory` string, nullable — The secondary subcategory of the podcast
    - `google_categories` string[] — An array of Google Podcast categories of the podcast
    - `language` string, nullable — The podcast feed language
    - `owner_name` string, nullable — The name of the administrator for the podcast
    - `owner_email` string, nullable — The email of the administrator for the podcast
    - `author_names` string[] — The names of writers/speakers who contribute to the podcast
    - `explicit_enabled` boolean — Whether or not the podcast contains explicit content
    - `keywords` string[] — An array of keywords to associate with the podcast
    - `feed_limit` integer — The maximum number of podcasts that will appear in the feed
    - `copyright` string, nullable — The copyright tag of the podcast feed
  - `updated` string, date-time — Time at which the object was updated (ISO 8601)

---

[API](https://skmtc.dev/beyondwords/apis/beyondwords-rest-api.md) · [All operations](https://skmtc.dev/beyondwords/apis/beyondwords-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/beyondwords/beyondwords-rest-api/revisions/8c4bfe3e2ebd/schema)
