# Plex (*Plex*) ## Overview API Calls that perform operations directly against https://Plex.tv ### Available Operations * [GetCompanionsData](#getcompanionsdata) - Get Companions Data * [GetUserFriends](#getuserfriends) - Get list of friends of the user logged in * [GetGeoData](#getgeodata) - Get Geo Data * [GetHomeData](#gethomedata) - Get Plex Home Data * [GetServerResources](#getserverresources) - Get Server Resources * [GetPin](#getpin) - Get a Pin * [GetTokenByPinId](#gettokenbypinid) - Get Access Token by PinId ## GetCompanionsData Get Companions Data ### Example Usage ```csharp using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK.Models.Components; var sdk = new PlexAPI( accessToken: "", clientID: "gcgzw5rz2xovp84b4vha3a40", clientName: "Plex Web", clientVersion: "4.133.0", clientPlatform: "Chrome", deviceName: "Linux" ); var res = await sdk.Plex.GetCompanionsDataAsync(); // handle response ``` ### Parameters | Parameter | Type | Required | Description | | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | | `serverURL` | *string* | :heavy_minus_sign: | An optional server URL to use. | ### Response **[GetCompanionsDataResponse](../../Models/Requests/GetCompanionsDataResponse.md)** ### Errors | Error Object | 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 ```csharp using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK.Models.Components; var sdk = new PlexAPI( accessToken: "", clientID: "gcgzw5rz2xovp84b4vha3a40", clientName: "Plex Web", clientVersion: "4.133.0", clientPlatform: "Chrome", deviceName: "Linux" ); var res = await sdk.Plex.GetUserFriendsAsync(); // handle response ``` ### Parameters | Parameter | Type | Required | Description | | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | | `serverURL` | *string* | :heavy_minus_sign: | An optional server URL to use. | ### Response **[GetUserFriendsResponse](../../Models/Requests/GetUserFriendsResponse.md)** ### Errors | Error Object | 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 ```csharp using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK.Models.Components; var sdk = new PlexAPI( clientID: "gcgzw5rz2xovp84b4vha3a40", clientName: "Plex Web", clientVersion: "4.133.0", clientPlatform: "Chrome", deviceName: "Linux" ); var res = await sdk.Plex.GetGeoDataAsync(); // handle response ``` ### Parameters | Parameter | Type | Required | Description | | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | | `serverURL` | *string* | :heavy_minus_sign: | An optional server URL to use. | ### Response **[GetGeoDataResponse](../../Models/Requests/GetGeoDataResponse.md)** ### Errors | Error Object | 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 ```csharp using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK.Models.Components; var sdk = new PlexAPI( accessToken: "", clientID: "gcgzw5rz2xovp84b4vha3a40", clientName: "Plex Web", clientVersion: "4.133.0", clientPlatform: "Chrome", deviceName: "Linux" ); var res = await sdk.Plex.GetHomeDataAsync(); // handle response ``` ### Response **[GetHomeDataResponse](../../Models/Requests/GetHomeDataResponse.md)** ### Errors | Error Object | 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 ```csharp using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Models.Components; var sdk = new PlexAPI( accessToken: "", clientID: "gcgzw5rz2xovp84b4vha3a40", clientName: "Plex Web", clientVersion: "4.133.0", clientPlatform: "Chrome", deviceName: "Linux" ); 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 ); // handle response ``` ### Parameters | Parameter | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | | `IncludeHttps` | [IncludeHttps](../../Models/Requests/IncludeHttps.md) | :heavy_minus_sign: | Include Https entries in the results | 1 | | `IncludeRelay` | [IncludeRelay](../../Models/Requests/IncludeRelay.md) | :heavy_minus_sign: | Include Relay addresses in the results
E.g: https://10-0-0-25.bbf8e10c7fa20447cacee74cd9914cde.plex.direct:32400
| 1 | | `IncludeIPv6` | [IncludeIPv6](../../Models/Requests/IncludeIPv6.md) | :heavy_minus_sign: | Include IPv6 entries in the results | 1 | | `serverURL` | *string* | :heavy_minus_sign: | An optional server URL to use. | http://localhost:8080 | ### Response **[GetServerResourcesResponse](../../Models/Requests/GetServerResourcesResponse.md)** ### Errors | Error Object | 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 ```csharp using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Models.Components; var sdk = new PlexAPI( clientID: "gcgzw5rz2xovp84b4vha3a40", clientName: "Plex Web", clientVersion: "4.133.0", clientPlatform: "Chrome", deviceName: "Linux" ); GetPinRequest req = new GetPinRequest() {}; var res = await sdk.Plex.GetPinAsync(req); // handle response ``` ### Parameters | Parameter | Type | Required | Description | | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | | `request` | [GetPinRequest](../../Models/Requests/GetPinRequest.md) | :heavy_check_mark: | The request object to use for the request. | | `serverURL` | *string* | :heavy_minus_sign: | An optional server URL to use. | ### Response **[GetPinResponse](../../Models/Requests/GetPinResponse.md)** ### Errors | Error Object | 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 ```csharp using LukeHagar.PlexAPI.SDK; using LukeHagar.PlexAPI.SDK.Models.Requests; using LukeHagar.PlexAPI.SDK.Models.Components; var sdk = new PlexAPI( clientID: "gcgzw5rz2xovp84b4vha3a40", clientName: "Plex Web", clientVersion: "4.133.0", clientPlatform: "Chrome", deviceName: "Linux" ); var res = await sdk.Plex.GetTokenByPinIdAsync(pinID: 408895); // handle response ``` ### Parameters | Parameter | Type | Required | Description | | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | | `PinID` | *long* | :heavy_check_mark: | The PinID to retrieve an access token for | | `serverURL` | *string* | :heavy_minus_sign: | An optional server URL to use. | ### Response **[GetTokenByPinIdResponse](../../Models/Requests/GetTokenByPinIdResponse.md)** ### Errors | Error Object | 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 | */* |