package main
import(
"context"
"github.com/LukeHagar/plexgo"
"log"
)
func main() {
ctx := context.Background()
s := plexgo.New(
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
)
res, err := s.Library.StopAllRefreshes(ctx)
if err != nil {
log.Fatal(err)
}
if res.LibrarySections != nil {
// handle response
}
}package hello.world;
import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.operations.StopAllRefreshesResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws Exception {
PlexAPI sdk = PlexAPI.builder()
.token(System.getenv().getOrDefault("TOKEN", ""))
.build();
StopAllRefreshesResponse res = sdk.library().stopAllRefreshes()
.call();
if (res.librarySections().isPresent()) {
// handle response
}
}
}import { PlexAPI } from "@lukehagar/plexjs";
const plexAPI = new PlexAPI({
token: "<YOUR_API_KEY_HERE>",
});
async function run() {
const result = await plexAPI.library.stopAllRefreshes();
console.log(result);
}
run();curl --request DELETE \
--url https://{IP-description}.{identifier}.plex.direct:{port}/library/sections/all/refresh \
--header 'X-Plex-Token: <api-key>'import requests
url = "https://{IP-description}.{identifier}.plex.direct:{port}/library/sections/all/refresh"
headers = {"X-Plex-Token": "<api-key>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {'X-Plex-Token': '<api-key>'}};
fetch('https://{IP-description}.{identifier}.plex.direct:{port}/library/sections/all/refresh', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "62437",
CURLOPT_URL => "https://{IP-description}.{identifier}.plex.direct:{port}/library/sections/all/refresh",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"X-Plex-Token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://{IP-description}.{identifier}.plex.direct:{port}/library/sections/all/refresh")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["X-Plex-Token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"MediaContainer": {
"identifier": "<string>",
"offset": 123,
"size": 123,
"totalSize": 123,
"allowCameraUpload": true,
"allowChannelAccess": true,
"allowMediaDeletion": true,
"allowSharing": true,
"allowSync": true,
"allowTuners": true,
"backgroundProcessing": true,
"certificate": true,
"companionProxy": true,
"countryCode": "<string>",
"diagnostics": "<string>",
"eventStream": true,
"friendlyName": "<string>",
"hubSearch": true,
"itemClusters": true,
"livetv": 7,
"machineIdentifier": "<unknown>",
"mediaProviders": true,
"multiuser": true,
"musicAnalysis": 2,
"myPlex": true,
"myPlexMappingState": "<unknown>",
"myPlexSigninState": "<unknown>",
"myPlexSubscription": true,
"myPlexUsername": "<string>",
"offlineTranscode": "<unknown>",
"ownerFeatures": "<string>",
"platform": "<string>",
"platformVersion": "<string>",
"pluginHost": true,
"pushNotifications": true,
"readOnlyLibraries": true,
"streamingBrainABRVersion": 123,
"streamingBrainVersion": 123,
"sync": true,
"transcoderActiveVideoSessions": 123,
"transcoderAudio": true,
"transcoderLyrics": true,
"transcoderPhoto": true,
"transcoderSubtitles": true,
"transcoderVideo": true,
"transcoderVideoBitrates": "<unknown>",
"transcoderVideoQualities": "<string>",
"transcoderVideoResolutions": "<unknown>",
"updatedAt": 123,
"updater": true,
"version": "<string>",
"voiceSearch": true,
"Directory": [
{
"count": 123,
"key": "<string>",
"title": "<string>"
}
]
}
}Stop refresh
Stop all refreshes across all sections
package main
import(
"context"
"github.com/LukeHagar/plexgo"
"log"
)
func main() {
ctx := context.Background()
s := plexgo.New(
plexgo.WithSecurity("<YOUR_API_KEY_HERE>"),
)
res, err := s.Library.StopAllRefreshes(ctx)
if err != nil {
log.Fatal(err)
}
if res.LibrarySections != nil {
// handle response
}
}package hello.world;
import dev.plexapi.sdk.PlexAPI;
import dev.plexapi.sdk.models.operations.StopAllRefreshesResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws Exception {
PlexAPI sdk = PlexAPI.builder()
.token(System.getenv().getOrDefault("TOKEN", ""))
.build();
StopAllRefreshesResponse res = sdk.library().stopAllRefreshes()
.call();
if (res.librarySections().isPresent()) {
// handle response
}
}
}import { PlexAPI } from "@lukehagar/plexjs";
const plexAPI = new PlexAPI({
token: "<YOUR_API_KEY_HERE>",
});
async function run() {
const result = await plexAPI.library.stopAllRefreshes();
console.log(result);
}
run();curl --request DELETE \
--url https://{IP-description}.{identifier}.plex.direct:{port}/library/sections/all/refresh \
--header 'X-Plex-Token: <api-key>'import requests
url = "https://{IP-description}.{identifier}.plex.direct:{port}/library/sections/all/refresh"
headers = {"X-Plex-Token": "<api-key>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {'X-Plex-Token': '<api-key>'}};
fetch('https://{IP-description}.{identifier}.plex.direct:{port}/library/sections/all/refresh', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "62437",
CURLOPT_URL => "https://{IP-description}.{identifier}.plex.direct:{port}/library/sections/all/refresh",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"X-Plex-Token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://{IP-description}.{identifier}.plex.direct:{port}/library/sections/all/refresh")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["X-Plex-Token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"MediaContainer": {
"identifier": "<string>",
"offset": 123,
"size": 123,
"totalSize": 123,
"allowCameraUpload": true,
"allowChannelAccess": true,
"allowMediaDeletion": true,
"allowSharing": true,
"allowSync": true,
"allowTuners": true,
"backgroundProcessing": true,
"certificate": true,
"companionProxy": true,
"countryCode": "<string>",
"diagnostics": "<string>",
"eventStream": true,
"friendlyName": "<string>",
"hubSearch": true,
"itemClusters": true,
"livetv": 7,
"machineIdentifier": "<unknown>",
"mediaProviders": true,
"multiuser": true,
"musicAnalysis": 2,
"myPlex": true,
"myPlexMappingState": "<unknown>",
"myPlexSigninState": "<unknown>",
"myPlexSubscription": true,
"myPlexUsername": "<string>",
"offlineTranscode": "<unknown>",
"ownerFeatures": "<string>",
"platform": "<string>",
"platformVersion": "<string>",
"pluginHost": true,
"pushNotifications": true,
"readOnlyLibraries": true,
"streamingBrainABRVersion": 123,
"streamingBrainVersion": 123,
"sync": true,
"transcoderActiveVideoSessions": 123,
"transcoderAudio": true,
"transcoderLyrics": true,
"transcoderPhoto": true,
"transcoderSubtitles": true,
"transcoderVideo": true,
"transcoderVideoBitrates": "<unknown>",
"transcoderVideoQualities": "<string>",
"transcoderVideoResolutions": "<unknown>",
"updatedAt": 123,
"updater": true,
"version": "<string>",
"voiceSearch": true,
"Directory": [
{
"count": 123,
"key": "<string>",
"title": "<string>"
}
]
}
}Authorizations
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
Response
OK
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.
Show child attributes
Show child attributes
Was this page helpful?