docs(research): real playlists placement shape; drop dead filter params
Merged
SW
5mo ago+8+8+0123456789-90-90-01234567890123456789
Align /research/playlists docs with the real placement shape
Follow-up to the api#635 playlists fix (recoupable/api 3212c9eb), which makes /research/playlists return real placements instead of a metric descriptor. This reconciles the docs contract with the verified live SongStats response.
Changes (api-reference/openapi/research.json only)
ResearchPlaylistPlacement→ the actual provider-neutral shape, verified on preview (Drake/spotify → Today's Top Hits, Top 50 Global, RapCaviar, …):
(was the Chartmetric shape:{ playlist_id, playlist_name, external_url, followers_total, image_url }track_name, position, peak_position, added_at, removed_at, curator_name).- Dropped the dead Chartmetric-only filter params from
/playlists—editorial, since, sort, indie, majorCurator, popularIndie, personalized, chart. The SongStats integration ignores them; the handler now sends onlyplatform,status,limit. Kept:artist, platform, status, limit, id.
Validation
mint openapi-check→ valid; all$refs resolve; no other endpoints touched.
Tracking: recoupable/chat#1777.
🤖 Generated with Claude Code
Summary by cubic
Updates /research/playlists docs to match the real SongStats placement shape and removes unused Chartmetric-only filters. This aligns the contract with production responses.
- Migration
ResearchPlaylistPlacementfields: playlist_id, playlist_name, external_url, followers_total, image_url. Removed: track_name, position, peak_position, added_at, removed_at, curator_name.- Removed query params on
/research/playlists: editorial, since, sort, indie, majorCurator, popularIndie, personalized, chart. Supported: artist, platform, status, limit, id.