---
title: "PUT /playlists/{playlist_id}"
method: PUT
path: "/playlists/{playlist_id}"
tags: ["playlists"]
---

# PUT /playlists/{playlist_id}

`PUT /playlists/{playlist_id}`

Updates an existing playlist or album

## Path parameters

- `playlist_id` string, required

## Query parameters

- `user_id` string, required

## Request body

- UpdatePlaylistRequestBody — Request body for updating playlist information. All fields are optional.
  - `playlist_name` string — Playlist or album name
  - `description` string — Playlist description
  - `is_private` boolean — Whether the playlist is private
  - `is_album` boolean — Whether this is an album
  - `genre` string — Music genre. Any string up to 100 characters is accepted. Known/canonical values (shown as autocomplete suggestions in clients): Electronic, Rock, Metal, Alternative, Hip-Hop/Rap, Experimental, Punk, Folk, Pop, Ambient, Soundtrack, World, Jazz, Acoustic, Funk, R&B/Soul, Devotional, Classical, Reggae, Podcasts, Country, Spoken Word, Comedy, Blues, Kids, Audiobooks, Latin, Lo-Fi, Hyperpop, Dancehall, Techno, Trap, House, Tech House, Deep House, Disco, Electro, Jungle, Progressive House, Hardstyle, Glitch Hop, Trance, Future Bass, Future House, Tropical House, Downtempo, Drum & Bass, Dubstep, Jersey Club, Vaporwave, Moombahton.
  - `mood` 'Peaceful' | 'Romantic' | 'Sentimental' | 'Tender' | 'Easygoing' | 'Yearning' | 'Sophisticated' | 'Sensual' | 'Cool' | 'Gritty' | 'Melancholy' | 'Serious' | 'Brooding' | 'Fiery' | 'Defiant' | 'Aggressive' | 'Rowdy' | 'Excited' | 'Energizing' | 'Empowering' | 'Stirring' | 'Upbeat' | 'Other' — Music mood
  - `tags` string — Comma-separated tags
  - `license` string — License type
  - `upc` string — Universal Product Code (for albums)
  - `release_date` string, date — Release date
  - `playlist_image_sizes_multihash` string — CID for the playlist cover art
  - `playlist_contents` PlaylistAddedTimestamp[] — Array of track IDs to include in the playlist
    - `metadata_timestamp` integer — Optional. Metadata timestamp for when the track was added to the playlist.
    - `timestamp` integer, required
    - `track_id` string, required
  - `is_stream_gated` boolean, nullable — Whether streaming is restricted behind an access gate
  - `is_scheduled_release` boolean, nullable — Whether the playlist/album is a scheduled release
  - `stream_conditions` union
    - TipGate
      - `tip_user_id` integer, required — Must tip the given user ID to unlock
    - FollowGate
      - `follow_user_id` integer, required — Must follow the given user ID to unlock
    - PurchaseGate
      - `usdc_purchase` UsdcGate, required
        - `price` integer, required — The price in USDC needed to unlock
        - `splits` PaymentSplit[], required
          - `user_id` integer, required
          - `percentage` number, required
    - TokenGate
      - `token_gate` ExtendedTokenGate, required
        - `token_mint` string, required — The mint of the token needed to unlock
        - `token_amount` integer, required — The amount of the token needed to unlock
  - `ddex_app` string — DDEX application identifier
  - `ddex_release_ids` object, nullable — DDEX release identifiers
  - `artists` DdexResourceContributor[], nullable — DDEX resource contributors / artists
    - `name` string, required — Contributor name
    - `roles` string[], required — Contributor roles
    - `sequence_number` integer — Sequence number for ordering
  - `copyright_line` DdexCopyright
    - `year` string, required — Copyright year (4 characters)
    - `text` string, required — Copyright text
  - `producer_copyright_line` DdexCopyright
    - `year` string, required — Copyright year (4 characters)
    - `text` string, required — Copyright text
  - `parental_warning_type` string, nullable — Parental warning type
  - `is_image_autogenerated` boolean, nullable — Whether the image is autogenerated

## Response `200`

Playlist updated successfully

- WriteResponse
  - `transaction_hash` string — The blockchain transaction hash
  - `block_hash` string — The blockchain block hash
  - `block_number` integer — The blockchain block number/height

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `404` — Playlist not found
- `500` — Server error

---

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