# Plex (*Plex*) ## Overview API Calls that perform operations directly against https://Plex.tv ### Available Operations * [GetHomeData](#gethomedata) - Get Plex Home Data * [GetPin](#getpin) - Get a Pin * [GetToken](#gettoken) - Get Access Token ## GetHomeData Retrieves the home data for the authenticated user, including details like home ID, name, guest access information, and subscription status. ### Example Usage ```go package main import( "github.com/LukeHagar/plexgo" "context" "log" ) func main() { s := plexgo.New( plexgo.WithSecurity(""), plexgo.WithXPlexClientIdentifier("Postman"), ) ctx := context.Background() res, err := s.Plex.GetHomeData(ctx) if err != nil { log.Fatal(err) } if res.Object != nil { // handle response } } ``` ### Parameters | Parameter | Type | Required | Description | | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | | `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | ### Response **[*operations.GetHomeDataResponse](../../models/operations/gethomedataresponse.md), error** | Error Object | Status Code | Content Type | | --------------------------------- | --------------------------------- | --------------------------------- | | sdkerrors.GetHomeDataResponseBody | 401 | application/json | | sdkerrors.SDKError | 4xx-5xx | */* | ## GetPin Retrieve a Pin from Plex.tv for authentication flows ### Example Usage ```go package main import( "github.com/LukeHagar/plexgo" "context" "log" ) func main() { s := plexgo.New( plexgo.WithXPlexClientIdentifier("Postman"), ) var xPlexProduct string = "Postman" var strong *bool = plexgo.Bool(false) var xPlexClientIdentifier *string = plexgo.String("Postman") ctx := context.Background() res, err := s.Plex.GetPin(ctx, xPlexProduct, strong, xPlexClientIdentifier) if err != nil { log.Fatal(err) } if res.Object != nil { // handle response } } ``` ### Parameters | Parameter | Type | Required | Description | Example | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | | | `xPlexProduct` | *string* | :heavy_check_mark: | Product name of the application shown in the list of devices
| Postman | | `strong` | **bool* | :heavy_minus_sign: | Determines the kind of code returned by the API call
Strong codes are used for Pin authentication flows
Non-Strong codes are used for `Plex.tv/link`
| | | `xPlexClientIdentifier` | **string* | :heavy_minus_sign: | The unique identifier for the client application
This is used to track the client application and its usage
(UUID, serial number, or other number unique per device)
| Postman | | `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | | ### Response **[*operations.GetPinResponse](../../models/operations/getpinresponse.md), error** | Error Object | Status Code | Content Type | | ---------------------------- | ---------------------------- | ---------------------------- | | sdkerrors.GetPinResponseBody | 400 | application/json | | sdkerrors.SDKError | 4xx-5xx | */* | ## GetToken Retrieve an Access Token from Plex.tv after the Pin has already been authenticated ### Example Usage ```go package main import( "github.com/LukeHagar/plexgo" "context" "log" ) func main() { s := plexgo.New( plexgo.WithXPlexClientIdentifier("Postman"), ) var pinID string = "" var xPlexClientIdentifier *string = plexgo.String("Postman") ctx := context.Background() res, err := s.Plex.GetToken(ctx, pinID, xPlexClientIdentifier) if err != nil { log.Fatal(err) } if res.Object != nil { // handle response } } ``` ### Parameters | Parameter | Type | Required | Description | Example | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `ctx` | [context.Context](https://pkg.go.dev/context#Context) | :heavy_check_mark: | The context to use for the request. | | | `pinID` | *string* | :heavy_check_mark: | The PinID to retrieve an access token for | | | `xPlexClientIdentifier` | **string* | :heavy_minus_sign: | The unique identifier for the client application
This is used to track the client application and its usage
(UUID, serial number, or other number unique per device)
| Postman | | `opts` | [][operations.Option](../../models/operations/option.md) | :heavy_minus_sign: | The options for this request. | | ### Response **[*operations.GetTokenResponse](../../models/operations/gettokenresponse.md), error** | Error Object | Status Code | Content Type | | ------------------------------ | ------------------------------ | ------------------------------ | | sdkerrors.GetTokenResponseBody | 400 | application/json | | sdkerrors.SDKError | 4xx-5xx | */* |