Files

Plex

(plex())

Overview

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

Available Operations

getCompanionsData

Get Companions Data

Example Usage

package hello.world;

import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.SDKError;
import dev.plexapi.sdk.models.operations.GetCompanionsDataResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws Exception {
        try {
            PlexAPI sdk = PlexAPI.builder()
                .accessToken("<YOUR_API_KEY_HERE>")
                .xPlexClientIdentifier("gcgzw5rz2xovp84b4vha3a40")
                .build();

            GetCompanionsDataResponse res = sdk.plex().getCompanionsData()
                .call();

            if (res.responseBodies().isPresent()) {
                // handle response
            }
        } catch (dev.plexapi.sdk.models.errors.GetCompanionsDataBadRequest e) {
            // handle exception
            throw e;
        } catch (dev.plexapi.sdk.models.errors.GetCompanionsDataUnauthorized e) {
            // handle exception
            throw e;
        } catch (SDKError e) {
            // handle exception
            throw e;
        } catch (Exception e) {
            // handle exception
            throw e;
        }

    }
}

Parameters

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

Response

GetCompanionsDataResponse

Errors

Error Object Status Code Content Type
models/errors/GetCompanionsDataBadRequest 400 application/json
models/errors/GetCompanionsDataUnauthorized 401 application/json
models/errors/SDKError 4xx-5xx */*

getUserFriends

Get friends of provided auth token.

Example Usage

package hello.world;

import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.SDKError;
import dev.plexapi.sdk.models.operations.GetUserFriendsResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws Exception {
        try {
            PlexAPI sdk = PlexAPI.builder()
                .accessToken("<YOUR_API_KEY_HERE>")
                .xPlexClientIdentifier("gcgzw5rz2xovp84b4vha3a40")
                .build();

            GetUserFriendsResponse res = sdk.plex().getUserFriends()
                .call();

            if (res.friends().isPresent()) {
                // handle response
            }
        } catch (dev.plexapi.sdk.models.errors.GetUserFriendsBadRequest e) {
            // handle exception
            throw e;
        } catch (dev.plexapi.sdk.models.errors.GetUserFriendsUnauthorized e) {
            // handle exception
            throw e;
        } catch (SDKError e) {
            // handle exception
            throw e;
        } catch (Exception e) {
            // handle exception
            throw e;
        }

    }
}

Parameters

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

Response

GetUserFriendsResponse

Errors

Error Object Status Code Content Type
models/errors/GetUserFriendsBadRequest 400 application/json
models/errors/GetUserFriendsUnauthorized 401 application/json
models/errors/SDKError 4xx-5xx */*

getGeoData

Returns the geolocation and locale data of the caller

Example Usage

package hello.world;

import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.SDKError;
import dev.plexapi.sdk.models.operations.GetGeoDataResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws Exception {
        try {
            PlexAPI sdk = PlexAPI.builder()
                .xPlexClientIdentifier("gcgzw5rz2xovp84b4vha3a40")
                .build();

            GetGeoDataResponse res = sdk.plex().getGeoData()
                .call();

            if (res.geoData().isPresent()) {
                // handle response
            }
        } catch (dev.plexapi.sdk.models.errors.GetGeoDataBadRequest e) {
            // handle exception
            throw e;
        } catch (dev.plexapi.sdk.models.errors.GetGeoDataUnauthorized e) {
            // handle exception
            throw e;
        } catch (SDKError e) {
            // handle exception
            throw e;
        } catch (Exception e) {
            // handle exception
            throw e;
        }

    }
}

Parameters

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

Response

GetGeoDataResponse

Errors

Error Object Status Code Content Type
models/errors/GetGeoDataBadRequest 400 application/json
models/errors/GetGeoDataUnauthorized 401 application/json
models/errors/SDKError 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

package hello.world;

import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.SDKError;
import dev.plexapi.sdk.models.operations.GetHomeDataResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws Exception {
        try {
            PlexAPI sdk = PlexAPI.builder()
                .accessToken("<YOUR_API_KEY_HERE>")
                .xPlexClientIdentifier("gcgzw5rz2xovp84b4vha3a40")
                .build();

            GetHomeDataResponse res = sdk.plex().getHomeData()
                .call();

            if (res.object().isPresent()) {
                // handle response
            }
        } catch (dev.plexapi.sdk.models.errors.GetHomeDataBadRequest e) {
            // handle exception
            throw e;
        } catch (dev.plexapi.sdk.models.errors.GetHomeDataUnauthorized e) {
            // handle exception
            throw e;
        } catch (SDKError e) {
            // handle exception
            throw e;
        } catch (Exception e) {
            // handle exception
            throw e;
        }

    }
}

Response

GetHomeDataResponse

Errors

Error Object Status Code Content Type
models/errors/GetHomeDataBadRequest 400 application/json
models/errors/GetHomeDataUnauthorized 401 application/json
models/errors/SDKError 4xx-5xx */*

getServerResources

Get Plex server access tokens and server connections

Example Usage

package hello.world;

import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.SDKError;
import dev.plexapi.sdk.models.operations.GetServerResourcesResponse;
import dev.plexapi.sdk.models.operations.IncludeHttps;
import dev.plexapi.sdk.models.operations.IncludeIPv6;
import dev.plexapi.sdk.models.operations.IncludeRelay;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws Exception {
        try {
            PlexAPI sdk = PlexAPI.builder()
                .accessToken("<YOUR_API_KEY_HERE>")
                .xPlexClientIdentifier("gcgzw5rz2xovp84b4vha3a40")
                .build();

            GetServerResourcesResponse res = sdk.plex().getServerResources()
                .xPlexClientIdentifier("gcgzw5rz2xovp84b4vha3a40")
                .includeHttps(IncludeHttps.ONE)
                .includeRelay(IncludeRelay.ONE)
                .includeIPv6(IncludeIPv6.ONE)
                .call();

            if (res.plexDevices().isPresent()) {
                // handle response
            }
        } catch (dev.plexapi.sdk.models.errors.GetServerResourcesBadRequest e) {
            // handle exception
            throw e;
        } catch (dev.plexapi.sdk.models.errors.GetServerResourcesUnauthorized e) {
            // handle exception
            throw e;
        } catch (SDKError e) {
            // handle exception
            throw e;
        } catch (Exception e) {
            // handle exception
            throw e;
        }

    }
}

Parameters

Parameter Type Required Description Example
xPlexClientIdentifier Optional 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)
gcgzw5rz2xovp84b4vha3a40
includeHttps Optional Include Https entries in the results 1
includeRelay Optional Include Relay addresses in the results
E.g: https://10-0-0-25.bbf8e10c7fa20447cacee74cd9914cde.plex.direct:32400
1
includeIPv6 Optional Include IPv6 entries in the results 1
serverURL String An optional server URL to use. http://localhost:8080

Response

GetServerResourcesResponse

Errors

Error Object Status Code Content Type
models/errors/GetServerResourcesBadRequest 400 application/json
models/errors/GetServerResourcesUnauthorized 401 application/json
models/errors/SDKError 4xx-5xx */*

getPin

Retrieve a Pin from Plex.tv for authentication flows

Example Usage

package hello.world;

import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.SDKError;
import dev.plexapi.sdk.models.operations.GetPinResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws Exception {
        try {
            PlexAPI sdk = PlexAPI.builder()
                .xPlexClientIdentifier("gcgzw5rz2xovp84b4vha3a40")
                .build();

            GetPinResponse res = sdk.plex().getPin()
                .strong(false)
                .xPlexClientIdentifier("gcgzw5rz2xovp84b4vha3a40")
                .xPlexProduct("Plex Web")
                .call();

            if (res.authPinContainer().isPresent()) {
                // handle response
            }
        } catch (dev.plexapi.sdk.models.errors.GetPinBadRequest e) {
            // handle exception
            throw e;
        } catch (SDKError e) {
            // handle exception
            throw e;
        } catch (Exception e) {
            // handle exception
            throw e;
        }

    }
}

Parameters

Parameter Type Required Description Example
strong Optional 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 Optional 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)
gcgzw5rz2xovp84b4vha3a40
xPlexProduct Optional N/A Plex Web
serverURL String An optional server URL to use. http://localhost:8080

Response

GetPinResponse

Errors

Error Object Status Code Content Type
models/errors/GetPinBadRequest 400 application/json
models/errors/SDKError 4xx-5xx */*

getTokenByPinId

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

Example Usage

package hello.world;

import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.errors.SDKError;
import dev.plexapi.sdk.models.operations.GetTokenByPinIdResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws Exception {
        try {
            PlexAPI sdk = PlexAPI.builder()
                .xPlexClientIdentifier("gcgzw5rz2xovp84b4vha3a40")
                .build();

            GetTokenByPinIdResponse res = sdk.plex().getTokenByPinId()
                .xPlexClientIdentifier("gcgzw5rz2xovp84b4vha3a40")
                .pinID(408895L)
                .call();

            if (res.authPinContainer().isPresent()) {
                // handle response
            }
        } catch (dev.plexapi.sdk.models.errors.GetTokenByPinIdBadRequest e) {
            // handle exception
            throw e;
        } catch (dev.plexapi.sdk.models.errors.GetTokenByPinIdResponseBody e) {
            // handle exception
            throw e;
        } catch (SDKError e) {
            // handle exception
            throw e;
        } catch (Exception e) {
            // handle exception
            throw e;
        }

    }
}

Parameters

Parameter Type Required Description Example
xPlexClientIdentifier Optional 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)
gcgzw5rz2xovp84b4vha3a40
pinID long ✔️ The PinID to retrieve an access token for
serverURL String An optional server URL to use. http://localhost:8080

Response

GetTokenByPinIdResponse

Errors

Error Object Status Code Content Type
models/errors/GetTokenByPinIdBadRequest 400 application/json
models/errors/GetTokenByPinIdResponseBody 404 application/json
models/errors/SDKError 4xx-5xx */*