Skip to main content
GET
/
media
/
subscriptions
/
{subscriptionId}
PlexGO
package main

import(
	"context"
	"github.com/LukeHagar/plexgo/models/components"
	"github.com/LukeHagar/plexgo"
	"github.com/LukeHagar/plexgo/models/operations"
	"log"
)

func main() {
    ctx := context.Background()

    s := plexgo.New(
        plexgo.WithAccepts(components.AcceptsApplicationXML),
        plexgo.WithClientIdentifier("abc123"),
        plexgo.WithProduct("Plex for Roku"),
        plexgo.WithVersion("2.4.1"),
        plexgo.WithPlatform("Roku"),
        plexgo.WithPlatformVersion("4.3 build 1057"),
        plexgo.WithDevice("Roku 3"),
        plexgo.WithModel("4200X"),
        plexgo.WithDeviceVendor("Roku"),
        plexgo.WithDeviceName("Living Room TV"),
        plexgo.WithMarketplace("googlePlay"),
        plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
    )

    res, err := s.Subscriptions.GetSubscription(ctx, operations.GetSubscriptionRequest{
        SubscriptionID: 186713,
        IncludeGrabs: components.BoolIntOne.ToPointer(),
        IncludeStorage: components.BoolIntOne.ToPointer(),
    })
    if err != nil {
        log.Fatal(err)
    }
    if res.MediaContainerWithSubscription != nil {
        // handle response
    }
}
{
  "MediaContainer": {
    "identifier": "<string>",
    "offset": 123,
    "size": 123,
    "totalSize": 123,
    "MediaSubscription": [
      {
        "title": "<string>",
        "type": 123,
        "airingsType": "New Airings Only",
        "createdAt": 123,
        "Directory": {},
        "durationTotal": 123,
        "key": "<string>",
        "librarySectionTitle": "<string>",
        "locationPath": "<string>",
        "MediaGrabOperation": [
          {
            "currentSize": 123,
            "grabberIdentifier": "<string>",
            "grabberProtocol": "<string>",
            "id": "<string>",
            "key": "<string>",
            "mediaIndex": 123,
            "mediaSubscriptionID": 123,
            "Metadata": {
              "title": "<unknown>",
              "type": "<unknown>",
              "absoluteIndex": 123,
              "addedAt": 123,
              "art": "<unknown>",
              "audienceRating": 5,
              "audienceRatingImage": "<unknown>",
              "Autotag": [
                {
                  "confidence": 123,
                  "context": "<string>",
                  "filter": "actor=49",
                  "id": 123,
                  "ratingKey": "<string>",
                  "role": "Secretary",
                  "tag": "Shaun Lawton",
                  "tagKey": "5d3ee12c4cde6a001c3e0b27",
                  "tagType": 123,
                  "thumb": "<unknown>"
                }
              ],
              "banner": "<unknown>",
              "chapterSource": "<unknown>",
              "composite": "<unknown>",
              "contentRating": "<unknown>",
              "Country": [
                {
                  "confidence": 123,
                  "context": "<string>",
                  "filter": "actor=49",
                  "id": 123,
                  "ratingKey": "<string>",
                  "role": "Secretary",
                  "tag": "Shaun Lawton",
                  "tagKey": "5d3ee12c4cde6a001c3e0b27",
                  "tagType": 123,
                  "thumb": "<unknown>"
                }
              ],
              "Director": [
                {
                  "confidence": 123,
                  "context": "<string>",
                  "filter": "actor=49",
                  "id": 123,
                  "ratingKey": "<string>",
                  "role": "Secretary",
                  "tag": "Shaun Lawton",
                  "tagKey": "5d3ee12c4cde6a001c3e0b27",
                  "tagType": 123,
                  "thumb": "<unknown>"
                }
              ],
              "duration": 123,
              "Filter": [
                {
                  "title": "<string>",
                  "type": "<string>",
                  "art": "<string>",
                  "content": true,
                  "filter": "<string>",
                  "hasPrefs": true,
                  "hasStoreServices": true,
                  "hubKey": "<string>",
                  "identifier": "<string>",
                  "key": "<string>",
                  "lastAccessedAt": 123,
                  "Pivot": [
                    {
                      "title": "<string>",
                      "type": "<string>",
                      "context": "<string>",
                      "id": "<string>",
                      "key": "<string>",
                      "symbol": "<string>"
                    }
                  ],
                  "share": 123,
                  "thumb": "<string>",
                  "titleBar": "<string>",
                  "filterType": "<string>"
                }
              ],
              "Genre": [
                {
                  "confidence": 123,
                  "context": "<string>",
                  "filter": "actor=49",
                  "id": 123,
                  "ratingKey": "<string>",
                  "role": "Secretary",
                  "tag": "Shaun Lawton",
                  "tagKey": "5d3ee12c4cde6a001c3e0b27",
                  "tagType": 123,
                  "thumb": "<unknown>"
                }
              ],
              "grandparentArt": "<string>",
              "grandparentHero": "<string>",
              "grandparentKey": "<string>",
              "grandparentRatingKey": "<string>",
              "grandparentTheme": "<string>",
              "grandparentThumb": "<string>",
              "grandparentTitle": "<string>",
              "Guid": [
                {
                  "confidence": 123,
                  "context": "<string>",
                  "filter": "actor=49",
                  "id": 123,
                  "ratingKey": "<string>",
                  "role": "Secretary",
                  "tag": "Shaun Lawton",
                  "tagKey": "5d3ee12c4cde6a001c3e0b27",
                  "tagType": 123,
                  "thumb": "<unknown>"
                }
              ],
              "hero": "<unknown>",
              "Image": [
                {
                  "type": "background",
                  "alt": "<string>",
                  "url": "<string>"
                }
              ],
              "index": 123,
              "key": "<unknown>",
              "lastViewedAt": 123,
              "leafCount": 123,
              "Media": [
                {
                  "aspectRatio": 2.35,
                  "audioChannels": 2,
                  "audioCodec": "<unknown>",
                  "audioProfile": "<unknown>",
                  "bitrate": 5612,
                  "container": "<unknown>",
                  "duration": 150192,
                  "has64bitOffsets": false,
                  "hasVoiceActivity": true,
                  "height": 544,
                  "id": 1,
                  "optimizedForStreaming": false,
                  "Part": [
                    {
                      "audioProfile": "<unknown>",
                      "container": "mov",
                      "duration": 150192,
                      "file": "/home/schuyler/Videos/Trailers/Cloud Atlas (2012).mov",
                      "has64bitOffsets": false,
                      "id": 1,
                      "key": "/library/parts/1/1531779263/file.mov",
                      "optimizedForStreaming": false,
                      "size": 105355654,
                      "Stream": [
                        {
                          "default": true,
                          "audioChannelLayout": "<unknown>",
                          "bitDepth": 8,
                          "bitrate": 5466,
                          "canAutoSync": true,
                          "chromaLocation": "<unknown>",
                          "chromaSubsampling": "<unknown>",
                          "codec": "h264",
                          "colorPrimaries": "<unknown>",
                          "colorRange": "<unknown>",
                          "colorSpace": "<unknown>",
                          "colorTrc": "<unknown>",
                          "displayTitle": "English (H.264 Main)",
                          "frameRate": 23.976,
                          "hasScalingMatrix": "<unknown>",
                          "height": 544,
                          "id": 1,
                          "index": 0,
                          "key": "/library/streams/1",
                          "language": "<unknown>",
                          "languageCode": "eng",
                          "level": 31,
                          "profile": "<unknown>",
                          "refFrames": 2,
                          "samplingRate": 48000,
                          "selected": true,
                          "streamIdentifier": 1,
                          "streamType": 1,
                          "width": 1280
                        }
                      ],
                      "videoProfile": "<unknown>"
                    }
                  ],
                  "videoCodec": "<unknown>",
                  "videoFrameRate": "<unknown>",
                  "videoProfile": "<unknown>",
                  "videoResolution": "<unknown>",
                  "width": 1280
                }
              ],
              "originallyAvailableAt": "<unknown>",
              "originalTitle": "<unknown>",
              "parentHero": "<string>",
              "parentIndex": 123,
              "parentKey": "<string>",
              "parentRatingKey": "<string>",
              "parentThumb": "<string>",
              "parentTitle": "<string>",
              "primaryExtraKey": "<unknown>",
              "prompt": "<string>",
              "rating": 5,
              "Rating": [
                {
                  "confidence": 123,
                  "context": "<string>",
                  "filter": "actor=49",
                  "id": 123,
                  "ratingKey": "<string>",
                  "role": "Secretary",
                  "tag": "Shaun Lawton",
                  "tagKey": "5d3ee12c4cde6a001c3e0b27",
                  "tagType": 123,
                  "thumb": "<unknown>"
                }
              ],
              "ratingCount": 123,
              "ratingImage": "<unknown>",
              "ratingKey": "<unknown>",
              "Role": [
                {
                  "confidence": 123,
                  "context": "<string>",
                  "filter": "actor=49",
                  "id": 123,
                  "ratingKey": "<string>",
                  "role": "Secretary",
                  "tag": "Shaun Lawton",
                  "tagKey": "5d3ee12c4cde6a001c3e0b27",
                  "tagType": 123,
                  "thumb": "<unknown>"
                }
              ],
              "search": true,
              "secondary": true,
              "skipChildren": true,
              "skipParent": true,
              "Sort": [
                {
                  "title": "<string>",
                  "type": "<string>",
                  "art": "<string>",
                  "content": true,
                  "filter": "<string>",
                  "hasPrefs": true,
                  "hasStoreServices": true,
                  "hubKey": "<string>",
                  "identifier": "<string>",
                  "key": "<string>",
                  "lastAccessedAt": 123,
                  "Pivot": [
                    {
                      "title": "<string>",
                      "type": "<string>",
                      "context": "<string>",
                      "id": "<string>",
                      "key": "<string>",
                      "symbol": "<string>"
                    }
                  ],
                  "share": 123,
                  "thumb": "<string>",
                  "titleBar": "<string>",
                  "default": "asc",
                  "defaultDirection": "asc",
                  "descKey": "<string>",
                  "firstCharacterKey": "<string>"
                }
              ],
              "studio": "<unknown>",
              "subtype": "<unknown>",
              "summary": "<unknown>",
              "tagline": "<unknown>",
              "theme": "<unknown>",
              "thumb": "<unknown>",
              "titleSort": "<unknown>",
              "updatedAt": 123,
              "userRating": 5,
              "viewCount": 123,
              "viewedLeafCount": 123,
              "viewOffset": 123,
              "Writer": [
                {
                  "confidence": 123,
                  "context": "<string>",
                  "filter": "actor=49",
                  "id": 123,
                  "ratingKey": "<string>",
                  "role": "Secretary",
                  "tag": "Shaun Lawton",
                  "tagKey": "5d3ee12c4cde6a001c3e0b27",
                  "tagType": 123,
                  "thumb": "<unknown>"
                }
              ],
              "year": 123
            },
            "percent": 123,
            "provider": "<string>",
            "status": "inactive"
          }
        ],
        "Playlist": {},
        "Setting": [
          {
            "type": "bool",
            "default": "<string>",
            "advanced": true,
            "enumValues": "<string>",
            "group": "<string>",
            "hidden": true,
            "id": "<string>",
            "label": "<string>",
            "summary": "<string>",
            "value": "<string>"
          }
        ],
        "storageTotal": 123,
        "targetLibrarySectionID": 123,
        "targetSectionLocationID": 123,
        "Video": {}
      }
    ]
  }
}

Authorizations

X-Plex-Token
string
header
required

The token which identifies the user accessing the PMS. This can be either:

  • A traditional access token obtained from plex.tv
  • A JWT token obtained through the JWT authentication flow

JWT tokens provide better security with:

  • Short-lived tokens (7 days expiration)
  • Public-key cryptography (ED25519)
  • Better clock synchronization
  • Individual device revocation capability

Headers

accepts
enum<string>
default:application/xml

Indicates the client accepts the indicated media types

Available options:
application/json,
application/xml
X-Plex-Client-Identifier
string
required

An opaque identifier unique to the client

Example:

"abc123"

X-Plex-Product
string

The name of the client product

Example:

"Plex for Roku"

X-Plex-Version
string

The version of the client application

Example:

"2.4.1"

X-Plex-Platform
string

The platform of the client

Example:

"Roku"

X-Plex-Platform-Version
string

The version of the platform

Example:

"4.3 build 1057"

X-Plex-Device
string

A relatively friendly name for the client device

Example:

"Roku 3"

X-Plex-Model
string

A potentially less friendly identifier for the device model

Example:

"4200X"

X-Plex-Device-Vendor
string

The device vendor

Example:

"Roku"

X-Plex-Device-Name
string

A friendly name for the client

Example:

"Living Room TV"

X-Plex-Marketplace
string

The marketplace on which the client application is distributed

Example:

"googlePlay"

Path Parameters

subscriptionId
integer
required

Query Parameters

includeGrabs
enum<integer>

Indicates whether the active grabs should be included as well

Available options:
0,
1
includeStorage
enum<integer>

Compute the storage of recorded items desired by this subscription

Available options:
0,
1

Response

OK

MediaContainer
object

MediaContainer is the root element of most Plex API responses. It serves as a generic container for various types of content (Metadata, Hubs, Directories, etc.) and includes pagination information (offset, size, totalSize) when applicable. Common attributes: - identifier: Unique identifier for this container - size: Number of items in this response page - totalSize: Total number of items available (for pagination) - offset: Starting index of this page (for pagination) The container often "hoists" common attributes from its children. For example, if all tracks in a container share the same album title, the parentTitle attribute may appear on the MediaContainer rather than being repeated on each track.