Skip to main content
POST
Send a playback lifecycle or progress update

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

action
enum<string>
required
Available options:
start,
pause,
resume,
stop,
progress

Body

application/json
event_id
string
required
Required string length: 1 - 200
media_type
enum<string>
required
Available options:
movie,
episode
title
string
required
Required string length: 1 - 500
playback_session_id
string
required
Required string length: 1 - 200
event_created_at
number
required

Unix timestamp in milliseconds. Events more than five minutes in the future are rejected.

Required range: x >= 1
year
integer
Required range: 1800 <= x <= 3000
imdb_id
string
Required string length: 1 - 50
tmdb_id
integer
Required range: x >= 1
tvdb_id
integer
Required range: x >= 1
punchplay_id
string
Required string length: 1 - 100
season
integer
Required range: x >= 0
episode
integer
Required range: x >= 1
episode_end
integer
Required range: x >= 1
absolute_episode
integer
Required range: x >= 1
episode_title
string
Required string length: 1 - 500
multi_episode
boolean
anime
boolean
progress
number

Completion ratio. When position_seconds is omitted, duration_seconds is required and the API derives the resume position.

Required range: 0 <= x <= 1
duration_seconds
number
Required range: x >= 0
position_seconds
number

Authoritative resume position. Required for pause, progress, and incomplete stop unless progress and duration_seconds are supplied.

Required range: x >= 0
device_id
string
Required string length: 1 - 200
client_version
string
Required string length: 1 - 100
watched
boolean
watched_threshold
number
Required range: x <= 1
raw_filename
string
Required string length: 1 - 2000
jellyfin_user_id
string
Required string length: 1 - 200

Response

Processed playback action

ok
boolean
required
media_type
enum<string>
required
Available options:
movie,
episode
tmdb_id
integer | null
required
tvdb_id
integer | null
required
imdb_id
string | null
required
punchplay_id
string | null
required
deduped
boolean
ignored
enum<string>
Available options:
stale_after_stop,
stale_out_of_order
season
integer
episode
integer
episode_end
integer
absolute_episode
integer
anime
boolean