Files

Plex

(Plex)

Overview

API Calls that perform operations directly against https://Plex.tv

Available Operations

GetCompanionsData

Get Companions Data

Example Usage

using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components;

var sdk = new PlexAPI(
    accessToken: "<YOUR_API_KEY_HERE>",
    clientID: "3381b62b-9ab7-4e37-827b-203e9809eb58",
    clientName: "Plex for Roku",
    clientVersion: "2.4.1",
    platform: "Roku",
    deviceNickname: "Roku 3"
);

var res = await sdk.Plex.GetCompanionsDataAsync();

// handle response

Parameters

Parameter Type Required Description
serverURL string An optional server URL to use.

Response

GetCompanionsDataResponse

Errors

Error Type Status Code Content Type
LukeHagar.PlexAPI.SDK.Models.Errors.GetCompanionsDataBadRequest 400 application/json
LukeHagar.PlexAPI.SDK.Models.Errors.GetCompanionsDataUnauthorized 401 application/json
LukeHagar.PlexAPI.SDK.Models.Errors.SDKException 4XX, 5XX */*

GetUserFriends

Get friends of provided auth token.

Example Usage

using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components;

var sdk = new PlexAPI(
    accessToken: "<YOUR_API_KEY_HERE>",
    clientID: "3381b62b-9ab7-4e37-827b-203e9809eb58",
    clientName: "Plex for Roku",
    clientVersion: "2.4.1",
    platform: "Roku",
    deviceNickname: "Roku 3"
);

var res = await sdk.Plex.GetUserFriendsAsync();

// handle response

Parameters

Parameter Type Required Description
serverURL string An optional server URL to use.

Response

GetUserFriendsResponse

Errors

Error Type Status Code Content Type
LukeHagar.PlexAPI.SDK.Models.Errors.GetUserFriendsBadRequest 400 application/json
LukeHagar.PlexAPI.SDK.Models.Errors.GetUserFriendsUnauthorized 401 application/json
LukeHagar.PlexAPI.SDK.Models.Errors.SDKException 4XX, 5XX */*

GetGeoData

Returns the geolocation and locale data of the caller

Example Usage

using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components;

var sdk = new PlexAPI(
    clientID: "3381b62b-9ab7-4e37-827b-203e9809eb58",
    clientName: "Plex for Roku",
    clientVersion: "2.4.1",
    platform: "Roku",
    deviceNickname: "Roku 3"
);

var res = await sdk.Plex.GetGeoDataAsync();

// handle response

Parameters

Parameter Type Required Description
serverURL string An optional server URL to use.

Response

GetGeoDataResponse

Errors

Error Type Status Code Content Type
LukeHagar.PlexAPI.SDK.Models.Errors.GetGeoDataBadRequest 400 application/json
LukeHagar.PlexAPI.SDK.Models.Errors.GetGeoDataUnauthorized 401 application/json
LukeHagar.PlexAPI.SDK.Models.Errors.SDKException 4XX, 5XX */*

GetHomeData

Retrieves the home data for the authenticated user, including details like home ID, name, guest access information, and subscription status.

Example Usage

using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Components;

var sdk = new PlexAPI(
    accessToken: "<YOUR_API_KEY_HERE>",
    clientID: "3381b62b-9ab7-4e37-827b-203e9809eb58",
    clientName: "Plex for Roku",
    clientVersion: "2.4.1",
    platform: "Roku",
    deviceNickname: "Roku 3"
);

var res = await sdk.Plex.GetHomeDataAsync();

// handle response

Response

GetHomeDataResponse

Errors

Error Type Status Code Content Type
LukeHagar.PlexAPI.SDK.Models.Errors.GetHomeDataBadRequest 400 application/json
LukeHagar.PlexAPI.SDK.Models.Errors.GetHomeDataUnauthorized 401 application/json
LukeHagar.PlexAPI.SDK.Models.Errors.SDKException 4XX, 5XX */*

GetServerResources

Get Plex server access tokens and server connections

Example Usage

using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Models.Components;

var sdk = new PlexAPI(
    accessToken: "<YOUR_API_KEY_HERE>",
    clientID: "3381b62b-9ab7-4e37-827b-203e9809eb58",
    clientName: "Plex for Roku",
    clientVersion: "2.4.1",
    platform: "Roku",
    deviceNickname: "Roku 3"
);

var res = await sdk.Plex.GetServerResourcesAsync(
    includeHttps: LukeHagar.PlexAPI.SDK.Models.Requests.IncludeHttps.Enable,
    includeRelay: LukeHagar.PlexAPI.SDK.Models.Requests.IncludeRelay.Enable,
    includeIPv6: LukeHagar.PlexAPI.SDK.Models.Requests.IncludeIPv6.Enable,
    clientID: "3381b62b-9ab7-4e37-827b-203e9809eb58"
);

// handle response

Parameters

Parameter Type Required Description Example
IncludeHttps IncludeHttps Include Https entries in the results 1
IncludeRelay IncludeRelay Include Relay addresses in the results
E.g: https://10-0-0-25.bbf8e10c7fa20447cacee74cd9914cde.plex.direct:32400
1
IncludeIPv6 IncludeIPv6 Include IPv6 entries in the results 1
ClientID string An opaque identifier unique to the client (UUID, serial number, or other unique device ID) 3381b62b-9ab7-4e37-827b-203e9809eb58
serverURL string An optional server URL to use. http://localhost:8080

Response

GetServerResourcesResponse

Errors

Error Type Status Code Content Type
LukeHagar.PlexAPI.SDK.Models.Errors.GetServerResourcesBadRequest 400 application/json
LukeHagar.PlexAPI.SDK.Models.Errors.GetServerResourcesUnauthorized 401 application/json
LukeHagar.PlexAPI.SDK.Models.Errors.SDKException 4XX, 5XX */*

GetPin

Retrieve a Pin ID from Plex.tv to use for authentication flows

Example Usage

using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Models.Components;

var sdk = new PlexAPI(
    clientID: "3381b62b-9ab7-4e37-827b-203e9809eb58",
    clientName: "Plex for Roku",
    clientVersion: "2.4.1",
    platform: "Roku",
    deviceNickname: "Roku 3"
);

GetPinRequest req = new GetPinRequest() {};

var res = await sdk.Plex.GetPinAsync(req);

// handle response

Parameters

Parameter Type Required Description
request GetPinRequest ✔️ The request object to use for the request.
serverURL string An optional server URL to use.

Response

GetPinResponse

Errors

Error Type Status Code Content Type
LukeHagar.PlexAPI.SDK.Models.Errors.GetPinBadRequest 400 application/json
LukeHagar.PlexAPI.SDK.Models.Errors.SDKException 4XX, 5XX */*

GetTokenByPinId

Retrieve an Access Token from Plex.tv after the Pin has been authenticated

Example Usage

using LukeHagar.PlexAPI.SDK;
using LukeHagar.PlexAPI.SDK.Models.Requests;
using LukeHagar.PlexAPI.SDK.Models.Components;

var sdk = new PlexAPI(
    clientID: "3381b62b-9ab7-4e37-827b-203e9809eb58",
    clientName: "Plex for Roku",
    clientVersion: "2.4.1",
    platform: "Roku",
    deviceNickname: "Roku 3"
);

GetTokenByPinIdRequest req = new GetTokenByPinIdRequest() {
    PinID = 408895,
};

var res = await sdk.Plex.GetTokenByPinIdAsync(req);

// handle response

Parameters

Parameter Type Required Description
request GetTokenByPinIdRequest ✔️ The request object to use for the request.
serverURL string An optional server URL to use.

Response

GetTokenByPinIdResponse

Errors

Error Type Status Code Content Type
LukeHagar.PlexAPI.SDK.Models.Errors.GetTokenByPinIdBadRequest 400 application/json
LukeHagar.PlexAPI.SDK.Models.Errors.GetTokenByPinIdResponseBody 404 application/json
LukeHagar.PlexAPI.SDK.Models.Errors.SDKException 4XX, 5XX */*