From 0e45e9193cae8b11b0c4fd2d05c2f0446d514dd7 Mon Sep 17 00:00:00 2001 From: Raymond Jacobson Date: Tue, 17 Feb 2026 23:15:34 -0800 Subject: [PATCH 1/5] Add stream_conditions to playlist post and make download userid not req --- api/swagger/swagger-v1.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/api/swagger/swagger-v1.yaml b/api/swagger/swagger-v1.yaml index e705bfaa..562ecff6 100644 --- a/api/swagger/swagger-v1.yaml +++ b/api/swagger/swagger-v1.yaml @@ -3228,6 +3228,7 @@ paths: type: string - name: user_id in: query + required: false description: The user ID of the user making the request schema: type: string @@ -10332,6 +10333,8 @@ components: description: Array of tracks in the playlist items: $ref: "#/components/schemas/playlist_added_timestamp" + stream_conditions: + $ref: "#/components/schemas/access_gate" ddex_app: type: string description: DDEX application identifier From eb041df653df993f7641ce347fdab53b6a0a7538 Mon Sep 17 00:00:00 2001 From: Raymond Jacobson Date: Tue, 17 Feb 2026 23:24:28 -0800 Subject: [PATCH 2/5] userId in download --- api/swagger/swagger-v1.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/api/swagger/swagger-v1.yaml b/api/swagger/swagger-v1.yaml index 562ecff6..245bbf2a 100644 --- a/api/swagger/swagger-v1.yaml +++ b/api/swagger/swagger-v1.yaml @@ -3228,7 +3228,6 @@ paths: type: string - name: user_id in: query - required: false description: The user ID of the user making the request schema: type: string @@ -3383,6 +3382,12 @@ paths: required: true schema: type: string + - name: user_id + in: query + required: false + description: The user ID of the user making the request + schema: + type: string requestBody: x-codegen-request-body-name: location content: From 2ace5532dee215bb73d84f87fefed806218c203e Mon Sep 17 00:00:00 2001 From: Raymond Jacobson Date: Tue, 17 Feb 2026 23:41:50 -0800 Subject: [PATCH 3/5] Make track non-required properties nullable --- api/swagger/swagger-v1.yaml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/api/swagger/swagger-v1.yaml b/api/swagger/swagger-v1.yaml index 245bbf2a..2c7442e3 100644 --- a/api/swagger/swagger-v1.yaml +++ b/api/swagger/swagger-v1.yaml @@ -10050,27 +10050,36 @@ components: $ref: "#/components/schemas/genre" description: type: string + nullable: true description: Track description maxLength: 1000 mood: - $ref: "#/components/schemas/mood" + nullable: true + allOf: + - $ref: "#/components/schemas/mood" bpm: type: number + nullable: true description: Beats per minute (tempo) musical_key: type: string + nullable: true description: Musical key of the track tags: type: string + nullable: true description: Comma-separated tags license: type: string + nullable: true description: License type isrc: type: string + nullable: true description: International Standard Recording Code iswc: type: string + nullable: true description: International Standard Musical Work Code release_date: type: string @@ -10111,9 +10120,13 @@ components: type: boolean description: Whether the track is unlisted stream_conditions: - $ref: "#/components/schemas/access_gate" + nullable: true + allOf: + - $ref: "#/components/schemas/access_gate" download_conditions: - $ref: "#/components/schemas/access_gate" + nullable: true + allOf: + - $ref: "#/components/schemas/access_gate" field_visibility: $ref: "#/components/schemas/field_visibility" placement_hosts: From 31736b1b1c8003a95491fa75e6e7178e2e4d39d6 Mon Sep 17 00:00:00 2001 From: Raymond Jacobson Date: Tue, 17 Feb 2026 23:45:15 -0800 Subject: [PATCH 4/5] Make playlist non-required properties nullable --- api/swagger/swagger-v1.yaml | 41 ++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/api/swagger/swagger-v1.yaml b/api/swagger/swagger-v1.yaml index 2c7442e3..702da31a 100644 --- a/api/swagger/swagger-v1.yaml +++ b/api/swagger/swagger-v1.yaml @@ -10310,6 +10310,7 @@ components: properties: playlist_id: type: string + nullable: true description: Optional playlist ID (will be generated if not provided) example: "x5pJ3Az" playlist_name: @@ -10318,43 +10319,59 @@ components: example: "My New Playlist" description: type: string + nullable: true description: Playlist description maxLength: 1000 is_private: type: boolean + nullable: true description: Whether the playlist is private is_album: type: boolean + nullable: true description: Whether this is an album genre: - $ref: "#/components/schemas/genre" + nullable: true + allOf: + - $ref: "#/components/schemas/genre" mood: - $ref: "#/components/schemas/mood" + nullable: true + allOf: + - $ref: "#/components/schemas/mood" tags: type: string + nullable: true description: Comma-separated tags license: type: string + nullable: true description: License type upc: type: string + nullable: true description: Universal Product Code (for albums) release_date: type: string format: date + nullable: true description: Release date cover_art_cid: type: string + nullable: true description: IPFS CID for cover art playlist_contents: type: array + nullable: true description: Array of tracks in the playlist items: $ref: "#/components/schemas/playlist_added_timestamp" stream_conditions: - $ref: "#/components/schemas/access_gate" + nullable: true + allOf: + - $ref: "#/components/schemas/access_gate" ddex_app: type: string + nullable: true description: DDEX application identifier ddex_release_ids: type: object @@ -10380,6 +10397,7 @@ components: description: Parental warning type is_image_autogenerated: type: boolean + nullable: true description: Whether the image is autogenerated update_playlist_request_body: type: object @@ -10387,38 +10405,51 @@ components: properties: playlist_name: type: string + nullable: true description: Playlist or album name description: type: string + nullable: true description: Playlist description maxLength: 5000 is_private: type: boolean + nullable: true description: Whether the playlist is private genre: - $ref: "#/components/schemas/genre" + nullable: true + allOf: + - $ref: "#/components/schemas/genre" mood: - $ref: "#/components/schemas/mood" + nullable: true + allOf: + - $ref: "#/components/schemas/mood" tags: type: string + nullable: true description: Comma-separated tags license: type: string + nullable: true description: License type release_date: type: string format: date + nullable: true description: Release date playlist_contents: type: array + nullable: true description: Array of track IDs to include in the playlist items: $ref: "#/components/schemas/playlist_added_timestamp" cover_art_cid: type: string + nullable: true description: IPFS CID for cover art upc: type: string + nullable: true description: Universal Product Code (for albums) parental_warning_type: type: string From e53ea61a3aacfa1e43478e91635b5479732f8387 Mon Sep 17 00:00:00 2001 From: Raymond Jacobson Date: Tue, 17 Feb 2026 23:59:12 -0800 Subject: [PATCH 5/5] Add is_stream_gated/is_scheduled_release --- api/swagger/swagger-v1.yaml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/api/swagger/swagger-v1.yaml b/api/swagger/swagger-v1.yaml index 702da31a..76dd9149 100644 --- a/api/swagger/swagger-v1.yaml +++ b/api/swagger/swagger-v1.yaml @@ -10119,6 +10119,10 @@ components: is_unlisted: type: boolean description: Whether the track is unlisted + is_stream_gated: + type: boolean + nullable: true + description: Whether streaming is restricted behind an access gate stream_conditions: nullable: true allOf: @@ -10278,6 +10282,10 @@ components: is_unlisted: type: boolean description: Whether the track is unlisted + is_stream_gated: + type: boolean + nullable: true + description: Whether streaming is restricted behind an access gate stream_conditions: nullable: true allOf: @@ -10365,6 +10373,14 @@ components: description: Array of tracks in the playlist items: $ref: "#/components/schemas/playlist_added_timestamp" + is_stream_gated: + type: boolean + nullable: true + description: Whether streaming is restricted behind an access gate + is_scheduled_release: + type: boolean + nullable: true + description: Whether the playlist/album is a scheduled release stream_conditions: nullable: true allOf: @@ -10443,6 +10459,10 @@ components: description: Array of track IDs to include in the playlist items: $ref: "#/components/schemas/playlist_added_timestamp" + is_stream_gated: + type: boolean + nullable: true + description: Whether streaming is restricted behind an access gate cover_art_cid: type: string nullable: true