(Authentication )
API Calls regarding authentication for Plex Media Server
This endpoint provides the caller with a temporary token with the same access level as the caller's token. These tokens are valid for up to 48 hours and are destroyed if the server instance is restarted.
using LukeHagar . PlexAPI . SDK ;
using LukeHagar . PlexAPI . SDK . Models . Components ;
using LukeHagar . PlexAPI . SDK . Models . Requests ;
var sdk = new PlexAPI ( accessToken : "<YOUR_API_KEY_HERE>" ) ;
var res = await sdk . Authentication . GetTransientTokenAsync (
type : GetTransientTokenQueryParamType . Delegation ,
scope : Scope . All
) ;
// handle response
Parameter
Type
Required
Description
Type
GetTransientTokenQueryParamType
✔️
delegation
- This is the only supported type
parameter.
Scope
Scope
✔️
all
- This is the only supported scope
parameter.
GetTransientTokenResponse
Error Type
Status Code
Content Type
LukeHagar.PlexAPI.SDK.Models.Errors.GetTransientTokenBadRequest
400
application/json
LukeHagar.PlexAPI.SDK.Models.Errors.GetTransientTokenUnauthorized
401
application/json
LukeHagar.PlexAPI.SDK.Models.Errors.SDKException
4XX, 5XX
*/*
GetSourceConnectionInformation
If a caller requires connection details and a transient token for a source that is known to the server, for example a cloud media provider or shared PMS, then this endpoint can be called. This endpoint is only accessible with either an admin token or a valid transient token generated from an admin token.
Note: requires Plex Media Server >= 1.15.4.
using LukeHagar . PlexAPI . SDK ;
using LukeHagar . PlexAPI . SDK . Models . Components ;
var sdk = new PlexAPI ( accessToken : "<YOUR_API_KEY_HERE>" ) ;
var res = await sdk . Authentication . GetSourceConnectionInformationAsync ( source : "server://client-identifier" ) ;
// handle response
Parameter
Type
Required
Description
Example
Source
string
✔️
The source identifier with an included prefix.
server://client-identifier
GetSourceConnectionInformationResponse
Error Type
Status Code
Content Type
LukeHagar.PlexAPI.SDK.Models.Errors.GetSourceConnectionInformationBadRequest
400
application/json
LukeHagar.PlexAPI.SDK.Models.Errors.GetSourceConnectionInformationUnauthorized
401
application/json
LukeHagar.PlexAPI.SDK.Models.Errors.SDKException
4XX, 5XX
*/*
Get the User data from the provided X-Plex-Token
using LukeHagar . PlexAPI . SDK ;
using LukeHagar . PlexAPI . SDK . Models . Components ;
var sdk = new PlexAPI ( accessToken : "<YOUR_API_KEY_HERE>" ) ;
var res = await sdk . Authentication . GetTokenDetailsAsync ( ) ;
// handle response
Parameter
Type
Required
Description
serverURL
string
➖
An optional server URL to use.
GetTokenDetailsResponse
Error Type
Status Code
Content Type
LukeHagar.PlexAPI.SDK.Models.Errors.GetTokenDetailsBadRequest
400
application/json
LukeHagar.PlexAPI.SDK.Models.Errors.GetTokenDetailsUnauthorized
401
application/json
LukeHagar.PlexAPI.SDK.Models.Errors.SDKException
4XX, 5XX
*/*
PostUsersSignInData
Sign in user with username and password and return user data with Plex authentication token
using LukeHagar . PlexAPI . SDK ;
using LukeHagar . PlexAPI . SDK . Models . Requests ;
var sdk = new PlexAPI ( ) ;
PostUsersSignInDataRequest req = new PostUsersSignInDataRequest ( ) {
ClientID = "3381b62b-9ab7-4e37-827b-203e9809eb58" ,
ClientName = "Plex for Roku" ,
DeviceNickname = "Roku 3" ,
ClientVersion = "2.4.1" ,
Platform = "Roku" ,
RequestBody = new PostUsersSignInDataRequestBody ( ) {
Login = "username@email.com" ,
Password = "password123" ,
VerificationCode = "123456" ,
} ,
} ;
var res = await sdk . Authentication . PostUsersSignInDataAsync ( req ) ;
// handle response
Parameter
Type
Required
Description
request
PostUsersSignInDataRequest
✔️
The request object to use for the request.
serverURL
string
➖
An optional server URL to use.
PostUsersSignInDataResponse
Error Type
Status Code
Content Type
LukeHagar.PlexAPI.SDK.Models.Errors.PostUsersSignInDataBadRequest
400
application/json
LukeHagar.PlexAPI.SDK.Models.Errors.PostUsersSignInDataUnauthorized
401
application/json
LukeHagar.PlexAPI.SDK.Models.Errors.SDKException
4XX, 5XX
*/*