GET /royalties/artificial-streams

List artificial-stream detections

Return the authenticated user's own artificial-stream DETECTIONS across Spotify and Apple as a single, newest-first, cursor-paginated collection — one row per detected track/period, including per-country detail where the source reports it. This is the detection-level companion to GET /artificial-streaming-fee/{period}, which exposes only the resulting fee: quantity here is the count of detected artificial streams; the money lives on the fee endpoint.

Source asymmetry. country is Spotify-only and is ALWAYS null for Apple detections (Apple's report carries no country). upc and penalty_fee_suspended are likewise Spotify-only (null for Apple). Rows carry a dsp discriminator (spotify | apple) so consumers can branch.

Date rule. Only detections with a report date (date_reported, YYYY-MM-DD) are returned; Spotify's report date is nullable and any null-date row is excluded (the cursor keys on the report date).

Pagination. Forward-only opaque cursor from links.next; page until it is null. The cursor is a signed, stateless keyset token bound to your account scope and the exact filter set — it never expires, but a tampered token or a token replayed after you change the scope/filters returns 422 (restart without a cursor). Because detections are append-only historical rows keyed by report date, a late import whose report date sorts BEFORE a boundary you have already paged past is only picked up on a fresh pull (start a new listing without a cursor).

Parameters

Responses