Update Media Play Progress

This API command can be used to update the play progress of a media item.


PUT http://{ip_address}:32400/:/progress?key={id}&identifier=com.plexapp.plugins.library&time={time}&state={state}&X-Plex-Token={plex_token}


ip_addressThe IP address of the Plex Media server.
plex_tokenThe Plex token.
idThe key associated with the media item.
timeThe time, in milliseconds, used to se the media playback progress.
stateThe playback state of the media item.

Return Status

HTTP CodeDescription
200Success - The request was successful.
400Bad Request - A parameter was not specified, or was specified incorrectly.
401Unauthorized - The Plex token provided was not valid.


No response is returned when a session is terminated. Check for a return status code of 200 to determine if the API call was successful.


Progress time value

For the time parameter value, the value must be one millisecond above the minimum progress time. By default, the minimum progress time in Plex is 60000 milliseconds (1 minute), so the lowest value for the time parameter is 60001.

The minimum progress time value can be changed within the hidden settings with the minimumProgressTime setting.

State value

To mark the progress time for an item, set the state parameter value to "stopped".


curl -X PUT http://{ip_address}:32400/:/progress?key={id}&identifier=com.plexapp.plugins.library&time={time}&state={state}&X-Plex-Token={plex_token}
import requests
plex_url = http://{ip_address}:32400/:/progress?key={id}&identifier=com.plexapp.plugins.library&time={time}&state={state}&X-Plex-Token={plex_token}
response = requests.put(plex_url)
$response = Invoke-RestMethod 'http://{ip_address}:32400/:/progress?key={id}&identifier=com.plexapp.plugins.library&time={time}&state={state}&X-Plex-Token={plex_token}' -Method 'PUT'
Write-Output $response