Skip to main content
GET
/
library
/
sections
/
{sectionId}
/
allLeaves
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.Content.GetAllLeaves(ctx, operations.GetAllLeavesRequest{
        SectionID: 633197,
    })
    if err != nil {
        log.Fatal(err)
    }
    if res.MediaContainerWithMetadata != nil {
        // handle response
    }
}
{
  "MediaContainer": {
    "content": "secondary",
    "allowSync": false,
    "art": "/:/resources/show-fanart.jpg",
    "identifier": "com.plexapp.plugins.library",
    "mediaTagPrefix": "/system/bundle/media/flags/",
    "mediaTagVersion": 1680272530,
    "Metadata": [
      {
        "addedAt": 1348327790,
        "art": "/library/metadata/148/art/1715112830",
        "audienceRating": 7.7,
        "audienceRatingImage": "themoviedb://image.rating",
        "chapterSource": "media",
        "contentRating": "TV-PG",
        "Director": [
          {
            "tag": "Stephen Furst"
          }
        ],
        "duration": 2625089,
        "grandparentArt": "/library/metadata/148/art/1715112830",
        "grandparentGuid": "plex://show/5d9c087202391c001f58a287",
        "grandparentKey": "/library/metadata/148",
        "grandparentRatingKey": "148",
        "grandparentSlug": "babylon-5",
        "grandparentTheme": "/library/metadata/148/theme/1715112830",
        "grandparentThumb": "/library/metadata/148/thumb/1715112830",
        "grandparentTitle": "Babylon 5",
        "guid": "plex://episode/5d9c1359e264b7001fcb529c",
        "index": 8,
        "key": "/library/metadata/150",
        "lastViewedAt": 1612468663,
        "Media": [
          {
            "aspectRatio": 1.78,
            "audioChannels": 6,
            "audioCodec": "ac3",
            "bitrate": 5741,
            "container": "mkv",
            "duration": 2625089,
            "height": 480,
            "id": 376,
            "Part": [
              {
                "container": "mkv",
                "duration": 2625089,
                "file": "/Volumes/Media/TV Shows/Babylon 5/Season 4/Babylon 5 S04E08 The Illusion of Truth.mkv",
                "id": 872,
                "key": "/library/parts/872/1348327790/file.mkv",
                "size": 1883816967,
                "videoProfile": "main"
              }
            ],
            "videoCodec": "mpeg2video",
            "videoFrameRate": "NTSC",
            "videoProfile": "main",
            "videoResolution": "480",
            "width": 720
          }
        ],
        "originallyAvailableAt": "1997-02-17",
        "parentGuid": "plex://season/602e691b66dfdb002c0a5034",
        "parentIndex": 4,
        "parentKey": "/library/metadata/149",
        "parentRatingKey": "149",
        "parentThumb": "/library/metadata/149/thumb/1681152133",
        "parentTitle": "Season 4",
        "ratingKey": "150",
        "Role": [
          {
            "tag": "Hank Delgado"
          },
          {
            "tag": "Diana Morgan"
          },
          {
            "tag": "Jeff Griggs"
          }
        ],
        "summary": "A team of ISN reporters arrives at the station wanting to do a story about Babylon 5. Sheridan refuses at first, but finally agrees on the theory that at least a small part of their side of the conflict will be shown.",
        "thumb": "/library/metadata/150/thumb/1681283788",
        "title": "The Illusion of Truth",
        "titleSort": "Illusion of Truth",
        "type": "episode",
        "updatedAt": 1681283788,
        "viewCount": 1,
        "Writer": [
          {
            "tag": "J. Michael Straczynski"
          }
        ],
        "year": 1997
      }
    ],
    "nocache": true,
    "size": 41,
    "thumb": "/:/resources/show.png",
    "title1": "TV Shows",
    "viewGroup": "show"
  }
}

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

sectionId
integer
required

Section identifier

Response

200 - application/json

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.