Report that a play finished playing.
POST/play/:play_id/complete
Call this when the song reaches its end. It closes out the play and finalizes the reported listen duration.
Completing a play that was already skipped or invalidated fails with
playbackComplete (code 21). Completing a play that was already
completed is a no-op: it returns 200 with success: true and leaves
the stored play untouched, so a client that retries a lost complete
response does not need to treat the second call specially.
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 429
- default
The play was marked complete.
missingParameter (code 16) — no client_id was supplied, or the
play id in the path is missing or non-numeric (Invalid or missing play id.).
Credentials were missing or invalid. The response carries
WWW-Authenticate: Basic realm="Feed.fm".
Response Headers
The authentication challenge. Always Basic realm="Feed.fm".
Basic realm="Feed.fm"playbackComplete (code 21) — this play was already skipped or
invalidated. Note that a repeated complete is not an error; it
returns 200.
missingObject (code 17) — no such play.
The server judged the rate of requests from these credentials to be excessive and is refusing them for a time. The block lasts 30 seconds from the request that tripped it. Requests made during the block are refused and do not extend it.
The threshold is not published, and is not part of this contract. The threshold is also tuned from time to time.
The response carries a Retry-After header giving whole seconds until
the block clears. Wait at least that long. It says when to come back,
not what rate to aim for, and retrying sooner simply meets the block
again.
This exists to stop abuse, and a well-behaved client should not reach it; if yours does, the fix is to reduce your request rate rather than to retry on a timer. If you believe your application needs a rate that trips it, contact Feed.fm rather than working around it.
An error occurred.