Canvas Shared Brand Configs API

The Shared Brand Configs API from Canvas — 3 operation(s) for shared brand configs.

Operations 3

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /v1/accounts/{account_id}/shared_brand_configs Share a theme with the account · Share a BrandConfig (Theme) #
Ask an LLM
“How do I save a custom theme so other admins in my account can use it?”
“Can I give a brand config a name and share it account-wide?”
Tell an agent
Share theme {brand_config_md5} as {name} in account {account_id}.
Publish brand config {brand_config_md5} to account {account_id} under the name {name}.
PUT /v1/accounts/{account_id}/shared_brand_configs/{id} Rename or repoint a shared theme · Update a shared theme #
Ask an LLM
“How do I rename a theme that's already shared?”
“Can I point an existing shared theme at a newer brand config?”
Tell an agent
Update shared theme {id} in account {account_id}.
Point shared theme {id} in account {account_id} to the latest brand config.
DELETE /v1/shared_brand_configs/{id} Stop sharing a theme · Un-share a BrandConfig (Theme) #
Ask an LLM
“How do I remove a shared theme so nobody can pick it anymore?”
“Can I unshare a theme from my account?”
Tell an agent destructive · confirm first
Unshare theme {id}.
Delete shared brand config {id} so it no longer appears as an option.

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/canvas:canvas-shared-brand-configs-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

canvas-shared-brand-configs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Canvas LMS REST Shared Brand Configs API
  version: v1
  summary: The complete Canvas LMS REST API, converted from the Swagger 1.2 documents Instructure publishes under https://canvas.instructure.com/doc/api/.
  description: The Canvas LMS REST API covers courses, assignments, quizzes, grades, users, enrollments, accounts, files, modules, rubrics, submissions, SIS imports, LTI, analytics and account administration.
  contact:
    name: Instructure Canvas
    url: https://canvas.instructure.com/doc/api/
  license:
    name: AGPL-3.0
    url: https://github.com/instructure/canvas-lms/blob/master/LICENSE
servers:
- url: https://canvas.instructure.com/api
  description: Instructure-hosted Canvas (canvas.instructure.com)
- url: https://{canvas_host}/api
  description: Any Canvas instance; Canvas is multi-tenant and self-hostable, so the host is the institution's Canvas domain.
  variables:
    canvas_host:
      default: canvas.instructure.com
      description: Your institution's Canvas hostname, e.g. school.instructure.com
security:
- bearerAuth: []
- oauth2: []
tags:
- name: Shared Brand Configs
  x-resource: shared_brand_configs
  externalDocs:
    url: https://canvas.instructure.com/doc/api/shared_brand_configs.html
paths:
  /v1/accounts/{account_id}/shared_brand_configs:
    post:
      tags:
      - Shared Brand Configs
      operationId: share_brandconfig_theme
      summary: Share a BrandConfig (Theme)
      description: 'Create a SharedBrandConfig, which will give the given brand_config a name

        and make it available to other users of this account.'
      parameters:
      - name: account_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                shared_brand_config[name]:
                  type: string
                  description: Name to share this BrandConfig (theme) as.
                shared_brand_config[brand_config_md5]:
                  type: string
                  description: MD5 of brand_config to share
              required:
              - shared_brand_config[name]
              - shared_brand_config[brand_config_md5]
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                shared_brand_config[name]:
                  type: string
                  description: Name to share this BrandConfig (theme) as.
                shared_brand_config[brand_config_md5]:
                  type: string
                  description: MD5 of brand_config to share
              required:
              - shared_brand_config[name]
              - shared_brand_config[brand_config_md5]
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedBrandConfig'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/shared_brand_configs.html
  /v1/accounts/{account_id}/shared_brand_configs/{id}:
    put:
      tags:
      - Shared Brand Configs
      operationId: update_shared_theme
      summary: Update a shared theme
      description: 'Update the specified shared_brand_config with a new name or to point to a new brand_config.

        Uses same parameters as create.'
      parameters:
      - name: account_id
        in: path
        schema:
          type: string
        required: true
        description: ID
      - name: id
        in: path
        schema:
          type: string
        required: true
        description: ID
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedBrandConfig'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/shared_brand_configs.html
  /v1/shared_brand_configs/{id}:
    delete:
      tags:
      - Shared Brand Configs
      operationId: un_share_brandconfig_theme
      summary: Un-share a BrandConfig (Theme)
      description: 'Delete a SharedBrandConfig, which will unshare it so you nor anyone else in

        your account will see it as an option to pick from.'
      parameters:
      - name: id
        in: path
        schema:
          type: string
        required: true
        description: ID
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedBrandConfig'
      externalDocs:
        url: https://canvas.instructure.com/doc/api/shared_brand_configs.html
components:
  schemas:
    SharedBrandConfig:
      type: object
      properties:
        id:
          type: integer
          example: 987
          description: The shared_brand_config identifier.
        account_id:
          type: string
          example: ''
          description: The id of the account it should be shared within.
        brand_config_md5:
          type: string
          example: 1d31002c95842f8fe16da7dfcc0d1f39
          description: The md5 (since BrandConfigs are identified by MD5 and not numeric id) of the BrandConfig to share.
        name:
          type: string
          example: Crimson and Gold Verson 1
          description: The name to share this theme as
        created_at:
          type: string
          format: date-time
          example: '2012-07-13T10:55:20-06:00'
          description: When this was created
        updated_at:
          type: string
          format: date-time
          example: '2012-07-13T10:55:20-06:00'
          description: When this was last updated
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Canvas OAuth2 access token sent as "Authorization: Bearer <token>". See https://canvas.instructure.com/doc/api/file.oauth.html'
    oauth2:
      type: oauth2
      description: Canvas OAuth2. See https://canvas.instructure.com/doc/api/file.oauth.html and https://canvas.instructure.com/doc/api/file.oauth_endpoints.html
      flows:
        authorizationCode:
          authorizationUrl: https://canvas.instructure.com/login/oauth2/auth
          tokenUrl: https://canvas.instructure.com/login/oauth2/token
          refreshUrl: https://canvas.instructure.com/login/oauth2/token
          scopes: {}
externalDocs:
  description: Canvas LMS REST API Documentation
  url: https://canvas.instructure.com/doc/api/
x-generated-from: https://canvas.instructure.com/doc/api/api-docs.json
x-provenance:
  method: derived
  derived_by: API Evangelist enrichment pipeline (Swagger 1.2 -> OpenAPI 3.1 conversion)
  source: openapi/_original/swagger-1.2/*.json (144 verbatim first-party Swagger 1.2 documents)
  source_url: https://canvas.instructure.com/doc/api/api-docs.json
  fetched: '2026-09-05'
  http_status: 200