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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/autobrr:autobrr-themes-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
openapi: 3.2.0
info:
title: qui Themes API
description: 'qui API for managing multiple qBittorrent instances.
If allowedHosts is configured, a missing, invalid, or unlisted received Host
returns HTTP 400 before authentication or routing. X-Forwarded-Host is ignored.
Request ports do not affect matching. Only direct loopback GET and HEAD
requests to /health, /healthz/readiness, and /healthz/liveness bypass the list.
For automation create and update requests, set `conditions.category.enabled` to `true`
and `conditions.category.category` to an empty string to remove the torrent category.
Set `conditions.category.enabled` to `false` to disable the category action.'
version: 1.0.0
license:
name: GPL-2.0-or-later
url: https://opensource.org/licenses/GPL-2.0
servers:
- url: http://localhost:7476
description: Local development server
- url: /
description: Current server
security:
- ApiKeyAuth: []
- SessionAuth: []
tags:
- name: Themes
description: Sideloaded custom theme listing (premium)
paths:
/api/themes:
get:
tags:
- Themes
summary: List built-in themes
description: List every built-in theme. Free themes always include their CSS. On a licensed instance, premium themes include CSS for an authenticated caller; an unauthenticated caller only receives the selected theme's CSS so the login page can paint, and every other premium theme is a locked stub with preview colors. Without a license every premium theme is a locked stub. Public endpoint, no authentication required.
security: []
responses:
'200':
description: Built-in themes
content:
application/json:
schema:
type: object
properties:
themes:
type: array
items:
type: object
properties:
id:
type: string
name:
type: string
description:
type: string
premium:
type: boolean
css:
type: string
description: Full theme CSS. Absent on locked premium entries.
preview:
type: object
description: Swatch colors for locked premium entries.
properties:
light:
type: object
additionalProperties:
type: string
dark:
type: object
additionalProperties:
type: string
operationId: getApiThemes
x-operation-id-source: derived
/api/themes/custom:
get:
tags:
- Themes
summary: List custom themes
description: List sideloaded custom theme CSS files and their contents. Requires premium access.
responses:
'200':
description: Custom themes listed successfully. If the custom themes directory cannot be prepared, the response still succeeds with the resolved directory and an empty themes array.
content:
application/json:
schema:
type: object
properties:
directory:
type: string
themes:
type: array
items:
type: object
properties:
id:
type: string
filename:
type: string
css:
type: string
'403':
description: Premium access required
'500':
description: Failed to check premium access or read the custom themes directory
operationId: getApiThemesCustom
x-operation-id-source: derived
/api/themes/settings:
get:
tags:
- Themes
summary: Get stored theme slots
description: Get every theme slot stored in the database. The default slot applies to every layout. The optional mobile slot applies to the mobile layout (viewport less than 768 px wide); when it exists, the layout split is on. Public endpoint, no authentication required, so the login page can apply the theme of its layout.
security: []
responses:
'200':
description: Stored theme slots. A slot that is not stored is absent.
content:
application/json:
schema:
$ref: '#/components/schemas/ThemeSlots'
'500':
description: Failed to load theme settings
operationId: getApiThemesSettings
x-operation-id-source: derived
put:
tags:
- Themes
summary: Store the theme selection of one slot
description: Store the theme selection of one slot in the database. The other slot does not change. Writing the mobile slot turns the layout split on.
parameters:
- name: slot
in: query
required: false
schema:
type: string
enum:
- default
- mobile
default: default
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ThemeSettings'
responses:
'200':
description: Theme selection stored
content:
application/json:
schema:
$ref: '#/components/schemas/ThemeSettings'
'400':
description: Invalid payload, missing themeId, invalid mode, unknown themeId, or unknown slot
'500':
description: Failed to save theme settings
operationId: putApiThemesSettings
x-operation-id-source: derived
delete:
tags:
- Themes
summary: Delete the mobile theme slot
description: Delete the mobile slot, which turns the layout split off. Every layout then uses the default slot. The default slot cannot be deleted.
parameters:
- name: slot
in: query
required: true
schema:
type: string
enum:
- mobile
responses:
'204':
description: Mobile slot deleted
'400':
description: The slot is not mobile
'500':
description: Failed to delete theme settings
operationId: deleteApiThemesSettings
x-operation-id-source: derived
components:
schemas:
ThemeSlots:
type: object
properties:
default:
$ref: '#/components/schemas/ThemeSettings'
mobile:
$ref: '#/components/schemas/ThemeSettings'
ThemeSettings:
type: object
required:
- themeId
properties:
themeId:
type: string
mode:
type: string
enum:
- auto
- light
- dark
default: auto
variation:
type: string
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: API key for authentication
ApiKeyQuery:
type: apiKey
in: query
name: apikey
description: API key via query parameter for external webhook integrations
SessionAuth:
type: apiKey
in: cookie
name: qui_user_session
description: 'Browser session cookie set by the qui web UI. POST, PUT, PATCH, and DELETE
requests authenticated by this cookie must also send an `X-Requested-With`
header. Other clients should use an API key.
'