Scalar Themes API
The themes API from Scalar — 4 operation(s) for themes.
The themes API from Scalar — 4 operation(s) for themes.
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/scalar:scalar-themes-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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: 3.2.0
info:
title: Scalar Themes API
contact:
name: Marc from Scalar
url: https://scalar.com
email: support@scalar.com
version: '1.0'
description: 'Operations tagged themes across 3 of this provider''s published API definitions: scalar-core.json, scalar-openapi.json, scalar-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.scalar.com/core
security:
- BearerAuth: []
tags:
- name: Themes
paths:
/themes/{slug}:
get:
tags:
- Themes
description: Get a theme document by slug
operationId: getthemesSlug
responses:
'200':
description: Default Response
content:
text/plain:
schema:
type: string
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
parameters:
- schema:
type: string
in: path
name: slug
required: true
summary: Getthemes slug
x-summary-source: derived
patch:
tags:
- Themes
description: Update themes metadata
operationId: patchthemesSlug
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: 'null'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
slug:
$ref: '#/components/schemas/slug'
description:
type: string
additionalProperties: false
required: true
parameters:
- schema:
type: string
in: path
name: slug
required: true
summary: Patchthemes slug
x-summary-source: derived
put:
tags:
- Themes
description: Update themes document
operationId: putthemesSlug
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: 'null'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
requestBody:
content:
application/json:
schema:
type: object
properties:
document:
type: string
required:
- document
additionalProperties: false
required: true
parameters:
- schema:
type: string
in: path
name: slug
required: true
summary: Putthemes slug
x-summary-source: derived
delete:
tags:
- Themes
description: Delete a specific themes
operationId: deletethemesSlug
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: 'null'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
parameters:
- schema:
type: string
in: path
name: slug
required: true
summary: Deletethemes slug
x-summary-source: derived
/themes:
get:
tags:
- Themes
description: Get a list of all themes for the team
operationId: getthemes
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: array
items:
type: object
properties:
uid:
$ref: '#/components/schemas/nanoid'
name:
type: string
description:
type: string
slug:
$ref: '#/components/schemas/slug'
required:
- uid
- name
- description
- slug
additionalProperties: false
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
summary: Getthemes
x-summary-source: derived
post:
tags:
- Themes
description: Create a new theme for the team
operationId: postthemes
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: object
properties:
uid:
type: string
slug:
$ref: '#/components/schemas/slug'
required:
- uid
- slug
additionalProperties: false
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description:
type: string
slug:
$ref: '#/components/schemas/slug'
document:
type: string
required:
- name
- slug
additionalProperties: false
required: true
summary: Postthemes
x-summary-source: derived
/pubsub/theme-updated:
post:
tags:
- Themes
description: PubSub theme updated route
operationId: postpubsubThemeUpdated
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: 'null'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
requestBody:
content:
application/json:
schema:
type: object
properties:
teamUid:
$ref: '#/components/schemas/nanoid'
before:
$ref: '#/components/schemas/theme'
after:
$ref: '#/components/schemas/theme'
required:
- teamUid
- before
- after
additionalProperties: false
required: true
summary: Postpubsub theme updated
x-summary-source: derived
/pubsub/theme-deleted:
post:
tags:
- Themes
description: PubSub theme deleted route
operationId: postpubsubThemeDeleted
responses:
'200':
description: Default Response
content:
application/json:
schema:
type: 'null'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
description: No auth
content:
application/json:
schema:
$ref: '#/components/schemas/401'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'422':
description: Invalid payload
content:
application/json:
schema:
$ref: '#/components/schemas/422'
'500':
description: Uncaught error
content:
application/json:
schema:
$ref: '#/components/schemas/500'
requestBody:
content:
application/json:
schema:
type: object
properties:
teamUid:
$ref: '#/components/schemas/nanoid'
theme:
$ref: '#/components/schemas/theme'
required:
- teamUid
- theme
additionalProperties: false
required: true
summary: Postpubsub theme deleted
x-summary-source: derived
components:
schemas:
slug:
type: string
minLength: 3
maxLength: 60
pattern: ^[a-z](?:[a-z0-9-]*[a-z0-9])?$
theme:
type: object
properties:
uid:
$ref: '#/components/schemas/nanoid'
name:
type: string
description:
type: string
theme:
type: string
slug:
$ref: '#/components/schemas/slug'
required:
- uid
- name
- description
- theme
- slug
additionalProperties: false
'401':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
'404':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
'422':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
'403':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
'500':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
nanoid:
type: string
minLength: 5
'400':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
slug_2:
type: string
minLength: 1
maxLength: 60
pattern: ^[a-z](?:[a-z0-9-]*[a-z0-9])?$
examples:
- acme-api
'401_2':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
examples:
- message: Invalid authentication token.
code: unauthorized
'404_2':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
examples:
- message: Resource not found.
code: not-found
'422_2':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
examples:
- message: The request body contains invalid values.
code: invalid-payload
'403_2':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
examples:
- message: You do not have permission to access this resource.
code: forbidden
'500_2':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
examples:
- message: An unexpected error occurred.
code: unknown
nanoid_2:
type: string
minLength: 5
examples:
- UakgbKJ5m9gl0JDMbcJqL
'400_2':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
examples:
- message: Invalid request parameters.
code: bad-request
slug_3:
type: string
minLength: 1
maxLength: 60
pattern: ^[a-z](?:[a-z0-9-]*[a-z0-9])?$
examples:
- acme-api
'401_3':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
examples:
- message: Invalid authentication token.
code: unauthorized
'404_3':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
examples:
- message: Resource not found.
code: not-found
'422_3':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
examples:
- message: The request body contains invalid values.
code: invalid-payload
'403_3':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
examples:
- message: You do not have permission to access this resource.
code: forbidden
'500_3':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
examples:
- message: An unexpected error occurred.
code: unknown
nanoid_3:
type: string
minLength: 5
examples:
- UakgbKJ5m9gl0JDMbcJqL
'400_3':
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
examples:
- message: Invalid request parameters.
code: bad-request
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
x-refined-from:
- scalar-core.json
- scalar-openapi.json
- scalar-openapi.json