Plex Ultra Blur API

Service provided to compute UltraBlur colors and images.

Operations 2

GET /services/ultrablur/colors Get UltraBlur Colors #
GET /services/ultrablur/image Get UltraBlur Image #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/plex-ultrablur-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

plex-ultrablur-api-openapi.yml Raw ↑
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