Skip to main content

plex-api

Reference for the Plex Media Server REST API. Use when adding, debugging, or extending Plex API calls (library/section queries, sessions, playback, collections, server identity, response schemas).

Jump to install

Source facts

Repository
ahembree/librariarr
Last source activity
May 20, 2026 at 21:23
Detected SKILL.md language
English
Stars
5
Forks
1

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
plex-api
description
Reference for the Plex Media Server REST API. Use when adding, debugging, or extending Plex API calls (library/section queries, sessions, playback, collections, server identity, response schemas).
# Plex API Plex does not publish a stable server-fetchable URL for its OpenAPI spec — the official developer site (https://developer.plex.tv/) only offers it via a browser-side `blob:` URL that changes on every page load and cannot be hit with `curl`. **Primary (recommended) source — `LukeHagar/plex-api-spec`:** https://raw.githubusercontent.com/LukeHagar/plex-api-spec/main/plex-api-spec.yaml This is the community-maintained OpenAPI 3.1 spec that powers the Speakeasy-generated official Plex SDKs. Stable URL, kept in sync with PMS releases. **Official (volatile) alternative:** browse to https://developer.plex.tv/, click "Download" to save `openapi.json` locally, then query the local file. Use this if the LukeHagar mirror looks stale or you need to verify against the upstream source. Auth is the `X-Plex-Token: <token>` header (security scheme name `token` in the spec). Most identifying client headers (`X-Plex-Client-Identifier`, `X-Plex-Product`, etc.) are also expected on real calls — check `components.parameters` for the canonical list. **The spec is YAML, not JSON** — use `yq` (mikefarah, v4) directly, or pipe through `yq -o json` into `jq`: - List all paths: `curl -sL <url> | yq '.paths | keys'` - Inspect one endpoint: `curl -sL <url> | yq '.paths."/library/collections"'` - Look up a schema: `curl -sL <url> | yq '.components.schemas.Metadata'` - Find endpoints by tag: `curl -sL <url> | yq -o json | jq '[.paths | to_entries[] | select(.value | .. | .tags? // [] | index("Library")) | .key]'` - List tags / sections of the API: `curl -sL <url> | yq '.tags[].name'` - Check auth + identifying headers: `curl -sL <url> | yq '{security: .components.securitySchemes, headers: (.components.parameters // {} | to_entries | map(select(.value.in == "header")) | from_entries)}'`
View on GitHub