Plex Ultra Blur API
Service provided to compute UltraBlur colors and images.
Service provided to compute UltraBlur colors and images.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/plex-ultrablur-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Plex Media Server Ultra Blur API
version: '1.2.2
'
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
description: '# API Info
## Content Types
The API supports responses in both XML and JSON, and clients can request one or the other using the standard `Accept` HTTP header.'
servers:
- url: https://{IP-description}.{identifier}.plex.direct:{port}
variables:
IP-description:
default: 1-2-3-4
description: A `-` separated string of the IPv4 or IPv6 address components
identifier:
default: 0123456789abcdef0123456789abcdef
description: The unique identifier of this particular PMS
port:
default: '32400'
security:
- user_token:
- shared user
- admin
tags:
- name: UltraBlur
description: Service provided to compute UltraBlur colors and images.
paths:
/services/ultrablur/colors:
get:
tags:
- UltraBlur
summary: Get UltraBlur Colors
description: Retrieves the four colors extracted from an image for clients to use to generate an ultrablur image.
operationId: ultraBlurGetColors
parameters:
- in: query
name: url
schema:
type: string
example: /library/metadata/217745/art/1718931408
description: Url for image which requires color extraction. Can be relative PMS library path or absolute url.
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
MediaContainer:
allOf:
- $ref: '#/components/schemas/MediaContainer'
- type: object
properties:
UltraBlurColors:
type: array
items:
type: object
properties:
topLeft:
type: string
description: The color (hex) for the top left quadrant.
topRight:
type: string
description: The color (hex) for the top right quadrant.
bottomRight:
type: string
description: The color (hex) for the bottom right quadrant.
bottomLeft:
type: string
description: The color (hex) for the bottom left quadrant.
examples:
colors:
description: Colors extracted from provided image url.
value:
MediaContainer:
size: 1
UltraBlurColors:
- topLeft: 44181b
topRight: 55140b
bottomRight: 9a3936
bottomLeft: 31313a
'404':
description: The image url could not be found.
content:
text/html:
examples:
notFound:
summary: Not Found
value: <html><head><title>Not Found</title></head><body><h1>404 Not Found</h1></body></html>
'500':
description: The server was unable to successfully extract the UltraBlur colors.
content:
text/html:
examples:
badParam:
summary: Processing failed inside the server
value: <html><head><title>Internal Server Error</title></head><body><h1>500 Internal Server Error</h1></body></html>
/services/ultrablur/image:
get:
tags:
- UltraBlur
summary: Get UltraBlur Image
description: Retrieves a server-side generated UltraBlur image based on the provided color inputs. Clients should always call this via the photo transcoder endpoint.
operationId: ultraBlurGetImage
parameters:
- in: query
name: topLeft
schema:
type: string
example: 3f280a
description: The base color (hex) for the top left quadrant.
- in: query
name: topRight
schema:
type: string
example: 6b4713
description: The base color (hex) for the top right quadrant.
- in: query
name: bottomRight
schema:
type: string
example: 0f2a43
description: The base color (hex) for the bottom right quadrant.
- in: query
name: bottomLeft
schema:
type: string
example: 1c425d
description: The base color (hex) for the bottom left quadrant.
- in: query
name: width
schema:
type: integer
minimum: 320
maximum: 3840
example: 1920
description: Width in pixels for the image.
- in: query
name: height
schema:
type: integer
minimum: 240
maximum: 2160
example: 1080
description: Height in pixels for the image.
- in: query
name: noise
schema:
type: integer
enum:
- 0
- 1
example: 1
description: Whether to add noise to the ouput image. Noise can reduce color banding with the gradients. Image sizes with noise will be larger.
responses:
'200':
description: OK
content:
image/png:
schema:
type: string
format: binary
'400':
description: Requested width and height parameters are out of bounds (maximum 3840 x 2160)
content:
text/html:
examples:
badRequest:
summary: A parameter has a bad value or required parameter is missing
value: <html><head><title>Bad Request</title></head><body><h1>400 Bad Request</h1></body></html>
components:
schemas:
MediaContainer:
type: object
properties:
identifier:
type: string
size:
type: integer
totalSize:
type: integer
description: The total size of objects available. Also provided in the X-Plex-Container-Total-Size header
offset:
type: integer
description: The offset of where this container page starts among the total objects available. Also provided in the X-Plex-Container-Start header
securitySchemes:
user_token:
type: apiKey
in: header
name: X-Plex-Token
description: The token which identifies the user accessing the PMS. This is typically provided to the client by plex.tv. This can be either a traditional access token or a JWT token obtained through the JWT authentication flow.
x-tagGroups:
- name: General
tags:
- General
- Library
- Library Playlists
- Library Collections
- Status
- Activities
- Updater
- Butler
- Events
- Log
- Preferences
- Download Queue
- UltraBlur
- Transcoder
- name: Media Provider
tags:
- Provider
- Metadata Agents
- Content
- Hubs
- Search
- Rate
- Playlist
- Play Queue
- Timeline
- name: DVR
tags:
- DVRs
- Devices
- EPG
- Subscriptions
- Live TV