Beyond Identity Themes API
A theme is a collection of configurable assets that unifies the end user login experience with your brand and products. It is primarily used to change the styling of the credential binding email.
A theme is a collection of configurable assets that unifies the end user login experience with your brand and products. It is primarily used to change the styling of the credential binding email.
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/beyond-identity:beyond-identity-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: Beyond Identity Secure Access Themes API
version: 1.7.0
contact:
email: support@beyondidentity.com
description: '# Introduction
**NOTE:** To determine if you are accessing the Secure Access Platform, check the URL of your Admin Console.'
servers:
- url: https://api-us.beyondidentity.com
description: US region API base URL
- url: https://api-eu.beyondidentity.com
description: EU region API base URL
- url: https://api.us1.beyondidentity-gov.com/
description: US FedRAMP API base URL
security:
- BearerAuth: []
tags:
- name: Themes
description: A theme is a collection of configurable assets that unifies the end user login experience with your brand and products. It is primarily used to change the styling of the credential binding email.
paths:
/v1/tenants/{tenant_id}/realms/{realm_id}/themes:
post:
tags:
- Themes
summary: Create a New Theme
description: 'To create a theme, send a POST request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/themes/$THEME_ID`. Values in the request body for read-only fields will be ignored. All non-read-only fields are optional and will be populated with defaults if unspecified.
Currently, each realm only supports a single theme. If a theme already exists for the realm, you will receive a 409 error.'
operationId: CreateTheme
security:
- BearerAuth:
- themes:create
parameters:
- $ref: '#/components/parameters/tenant_id'
- $ref: '#/components/parameters/realm_id'
requestBody:
description: Theme to be created.
content:
application/json:
schema:
title: Create Theme Request
description: Request for CreateTheme.
type: object
properties:
theme:
$ref: '#/components/schemas/Theme'
examples:
Create Theme:
value:
theme:
email_realm_name: Realm Administrators
logo_url_light: https://example.com/logo_url_light.png
logo_url_dark: https://example.com/logo_url_dark.png
support_url: https://example.com/support
button_color: '#4673D3'
button_text_color: '#FFFFFF'
responses:
'200':
description: 'The response will be a JSON object containing the standard attributes associated with a theme.
'
content:
application/json:
schema:
$ref: '#/components/schemas/Theme'
examples:
Success:
value:
id: 88ef08fb-c3f9-44e2-b174-fbb239e1dc47
tenant_id: f36448f2ff094881
realm_id: aa6aabe6989bc4a5
email_realm_name: Realm Administrators
logo_url_light: https://example.com/logo_url_light.png
logo_url_dark: https://example.com/logo_url_dark.png
support_url: https://example.com/support
create_time: '2022-07-28T18:00:00.000Z'
button_color: '#4673D3'
button_text_color: '#FFFFFF'
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Invalid Parameters:
value:
code: bad_request
message: Bad Request
details:
- type: FieldViolations
field_violations:
- field: theme.email_realm_name
description: provided email_realm_name must not be empty
'401':
description: Unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Missing Authorization:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization'
'403':
description: Forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Insufficient Authorization:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization'
'404':
description: The resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Realm Not Found:
value:
code: not_found
message: realm not found
details:
- type: ResourceInfo
resource_type: Realm
id: 19a95130480dfa79
description: realm not found
'409':
description: Conflict.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Theme Already Exists:
value:
code: conflict
message: theme already exists for this realm
'500':
description: Server error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error'
/v1/tenants/{tenant_id}/realms/{realm_id}/themes/active:
get:
tags:
- Themes
summary: Get the Active Theme
description: To retrieve the active theme for a realm, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/themes/active`. If the realm has not specified the active theme, a default theme will be returned.
operationId: GetActiveTheme
security:
- BearerAuth:
- themes:read
parameters:
- $ref: '#/components/parameters/tenant_id'
- $ref: '#/components/parameters/realm_id'
responses:
'200':
description: 'The response will be a JSON object containing the standard attributes associated with a theme.
'
content:
application/json:
schema:
$ref: '#/components/schemas/Theme'
examples:
Success:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1themes/post/responses/200/content/application~1json/examples/Success'
'401':
description: Unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Missing Authorization:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization'
'403':
description: Forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Insufficient Authorization:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization'
'404':
description: The resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Realm Not Found:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1themes/post/responses/404/content/application~1json/examples/Realm%20Not%20Found'
'500':
description: Server error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error'
/v1/tenants/{tenant_id}/realms/{realm_id}/themes/{theme_id}:
get:
tags:
- Themes
summary: Retrive an Existing Theme
description: To retrieve an existing theme, send a GET request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/themes/$THEME_ID`.
operationId: GetTheme
security:
- BearerAuth:
- themes:read
parameters:
- $ref: '#/components/parameters/tenant_id'
- $ref: '#/components/parameters/realm_id'
- $ref: '#/components/parameters/theme_id'
responses:
'200':
description: 'The response will be a JSON object containing the standard attributes associated with a theme.
'
content:
application/json:
schema:
$ref: '#/components/schemas/Theme'
examples:
Success:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1themes/post/responses/200/content/application~1json/examples/Success'
'401':
description: Unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Missing Authorization:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization'
'403':
description: Forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Insufficient Authorization:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization'
'404':
description: The resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Theme Not Found:
value:
code: not_found
message: theme not found
details:
- type: ResourceInfo
resource_type: Theme
id: 72d0af37-a9bb-410c-b8a7-9aa127fd8739
description: theme not found
'500':
description: Server error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error'
patch:
tags:
- Themes
summary: Patch a Theme
description: To update only specific attributes of an existing theme, send a PATCH request to `/v1/tenants/$TENANT_ID/realms/$REALM_ID/themes/$THEME_ID`. Values in the request body for immutable or read-only fields will be ignored. Fields that are omitted from the request body will be left unchanged.
operationId: UpdateTheme
security:
- BearerAuth:
- themes:update
parameters:
- $ref: '#/components/parameters/tenant_id'
- $ref: '#/components/parameters/realm_id'
- $ref: '#/components/parameters/theme_id'
requestBody:
description: Theme to be updated.
content:
application/json:
schema:
title: Update Theme Request
description: Request for UpdateTheme.
type: object
properties:
theme:
$ref: '#/components/schemas/Theme'
examples:
Update Email Realm Name:
value:
theme:
email_realm_name: Realm Administrators
responses:
'200':
description: 'The response will be a JSON object containing the standard attributes associated with a theme.
'
content:
application/json:
schema:
$ref: '#/components/schemas/Theme'
examples:
Success:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1themes/post/responses/200/content/application~1json/examples/Success'
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Invalid Parameters:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1themes/post/responses/400/content/application~1json/examples/Invalid%20Parameters'
'401':
description: Unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Missing Authorization:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/401/content/application~1json/examples/Missing%20Authorization'
'403':
description: Forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Insufficient Authorization:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/403/content/application~1json/examples/Insufficient%20Authorization'
'404':
description: The resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Theme Not Found:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D~1realms~1%7Brealm_id%7D~1themes~1%7Btheme_id%7D/get/responses/404/content/application~1json/examples/Theme%20Not%20Found'
'500':
description: Server error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
Internal Error:
$ref: '#/paths/~1v1~1tenants~1%7Btenant_id%7D/get/responses/500/content/application~1json/examples/Internal%20Error'
components:
parameters:
realm_id:
name: realm_id
in: path
description: A unique identifier for a realm.
required: true
schema:
type: string
example: 19a95130480dfa79
tenant_id:
name: tenant_id
in: path
description: A unique identifier for a tenant.
required: true
schema:
type: string
example: 000176d94fd7b4d1
theme_id:
name: theme_id
in: path
description: A unique identifier for a theme.
required: true
schema:
type: string
example: 88ef08fb-c3f9-44e2-b174-fbb239e1dc47
schemas:
ErrorDetail:
title: Error Detail
description: 'Additional details for errors designed to support client applications.
'
type: object
discriminator:
propertyName: type
properties:
type:
type: string
description: Type of the error detail.
required:
- type
Theme:
title: Theme
description: 'A theme is a collection of configurable assets that unifies the end user login experience with your brand and products. It is primarily used to change the styling of the credential binding email.
'
type: object
properties:
id:
type: string
description: 'A unique identifier for a theme. This is automatically generated on creation. This field is immutable and read-only. This field is unique within the realm.
'
readOnly: true
example: 88ef08fb-c3f9-44e2-b174-fbb239e1dc47
tenant_id:
type: string
description: 'A unique identifier for the theme''s tenant. This is automatically set on creation. This field is immutable and read-only.
'
readOnly: true
example: 0001b42d80372976
realm_id:
type: string
description: 'A unique identifier for the theme''s realm. This is automatically set on creation. This field is immutable and read-only.
'
readOnly: true
example: 7df92e4a38ba0993
create_time:
type: string
format: date-time
description: 'Timestamp of when the theme was created. This field is immutable and read-only.
'
readOnly: true
example: '2022-07-28T18:00:00.000Z'
update_time:
type: string
format: date-time
description: 'Timestamp of when the theme was last updated. This field is read-only.
'
readOnly: true
example: '2022-07-30T16:00:00.000Z'
email_realm_name:
type: string
minLength: 1
maxLength: 64
pattern: ^[^{}[\]<>;:?\\/|*^%$#=~`!]*$
description: Realm name that is used in email templates.
example: Realm Administrators
logo_url_light:
type: string
description: URL for resolving the logo image for light mode.
example: https://example.com/logo_url_light.png
logo_url_dark:
type: string
description: URL for resolving the logo image for dark mode.
example: https://example.com/logo_url_dark.png
support_url:
type: string
format: url
description: URL for the customer support portal.
example: https://example.com/support
button_color:
type: string
description: Hexadecimal color code to use for buttons.
example: '#4673D3'
button_text_color:
type: string
description: Hexadecimal color code to use for button text.
example: '#FFFFFF'
Error:
type: object
properties:
code:
type: string
description: 'Human-readable HTTP status code name, stylized as lower snake case (e.g. bad_request).
'
message:
type: string
description: 'Human-readable message describing the error.
'
details:
type: array
items:
$ref: '#/components/schemas/ErrorDetail'
required:
- code
- message
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: 'See the [Authentication](#section/Authentication) section for details.
'
x-provenance:
method: harvested
publisher: Beyond Identity
source: https://developer.beyondidentity.com/api/v1/openapi.yaml
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)