Vanilla Forums Theme Assets API

The Theme Assets API from Vanilla Forums — 12 operation(s) for theme assets.

OpenAPI Specification

vanilla-forums-theme-assets-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  description: API access to your community.
  title: Vanilla Addons Theme Assets API
  version: '2.0'
servers:
- url: https://open.vanillaforums.com/api/v2
tags:
- name: Theme Assets
paths:
  /themes/{themeID}/assets/footer:
    get:
      parameters:
      - description: Unique theme slug.
        in: path
        name: themeID
        required: true
        schema:
          type: string
      - name: fields
        in: query
        style: form
        description: Only return fields with these keys from the output. Use dot notation for nested fields.
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThemeFooterAsset'
          description: Success
        '404':
          description: JavaScript could not be found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  description:
                    description: Verbose description of the error.
                    nullable: true
                    type: string
                  message:
                    description: Short description of the error.
                    type: string
                  status:
                    description: Status code of the error response.
                    type: integer
                required:
                - description
                - message
                - status
      tags:
      - Theme Assets
      summary: Get the footer HTML of a theme.
      x-addon: dashboard
    put:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              description: An asset to be inserted.
              type: object
              properties:
                type:
                  description: The type of the asset.
                  type: string
                  example: html
                  enum:
                  - html
                  - css
                  - js
                data:
                  type: string
                  example: <header>Hello Footer<footer />
                  description: Contents of the asset. May require an expand parameter to retreive.
      responses:
        '200':
          content:
            application/json:
              schema:
                description: Contents of an asset.
                type: object
                properties:
                  type:
                    description: The type of the asset.
                    type: string
                    example: html
                    enum:
                    - html
                    - css
                    - js
                  data:
                    type: string
                    example: <header>Hello Footer<footer />
                    description: Contents of the asset. May require an expand parameter to retreive.
                  content-type:
                    description: The content-type of the asset.
                    type: string
                    example: text/html
                  url:
                    type: string
                    description: Absolute URL of the resource.
                    example: https://site.com/api/v2/themes/:themeID/assets/:assetName.ext?v=faasdf42d
          description: Success
      tags:
      - Theme Assets
      summary: Set theme asset or replace if already exists.
      x-addon: themingapi
    delete:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: Success
      tags:
      - Theme Assets
      summary: Delete theme asset.
      x-addon: themingapi
  /themes/{themeID}/assets/footer.html:
    get:
      parameters:
      - description: Unique theme slug.
        in: path
        name: themeID
        required: true
        schema:
          type: string
      - name: fields
        in: query
        style: form
        description: Only return fields with these keys from the output. Use dot notation for nested fields.
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          content:
            text/html:
              schema:
                type: string
          description: Success
        '404':
          description: JavaScript could not be found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  description:
                    description: Verbose description of the error.
                    nullable: true
                    type: string
                  message:
                    description: Short description of the error.
                    type: string
                  status:
                    description: Status code of the error response.
                    type: integer
                required:
                - description
                - message
                - status
      tags:
      - Theme Assets
      summary: Get the footer HTML of a theme.
      x-addon: dashboard
    put:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          text/html:
            schema:
              type: string
              description: HTML contents.
              example: <div>Hello HTML Asset!</div>
      responses:
        '200':
          content:
            text/html:
              schema:
                type: string
                description: HTML contents.
                example: <div>Hello HTML Asset!</div>
          description: Success
      tags:
      - Theme Assets
      summary: Set theme asset or replace if already exists.
      x-addon: themingapi
  /themes/{themeID}/assets/header:
    get:
      parameters:
      - description: Unique theme slug.
        in: path
        name: themeID
        required: true
        schema:
          type: string
      - name: fields
        in: query
        style: form
        description: Only return fields with these keys from the output. Use dot notation for nested fields.
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThemeHeaderAsset'
          description: Success
        '404':
          description: JavaScript could not be found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  description:
                    description: Verbose description of the error.
                    nullable: true
                    type: string
                  message:
                    description: Short description of the error.
                    type: string
                  status:
                    description: Status code of the error response.
                    type: integer
                required:
                - description
                - message
                - status
      tags:
      - Theme Assets
      summary: Get the header HTML of a theme.
      x-addon: dashboard
    put:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              description: An asset to be inserted.
              type: object
              properties:
                type:
                  description: The type of the asset.
                  type: string
                  example: html
                  enum:
                  - html
                  - css
                  - js
                data:
                  type: string
                  example: <header>Hello Footer<footer />
                  description: Contents of the asset. May require an expand parameter to retreive.
      responses:
        '200':
          content:
            application/json:
              schema:
                description: Contents of an asset.
                type: object
                properties:
                  type:
                    description: The type of the asset.
                    type: string
                    example: html
                    enum:
                    - html
                    - css
                    - js
                  data:
                    type: string
                    example: <header>Hello Footer<footer />
                    description: Contents of the asset. May require an expand parameter to retreive.
                  content-type:
                    description: The content-type of the asset.
                    type: string
                    example: text/html
                  url:
                    type: string
                    description: Absolute URL of the resource.
                    example: https://site.com/api/v2/themes/:themeID/assets/:assetName.ext?v=faasdf42d
          description: Success
      tags:
      - Theme Assets
      summary: Set theme asset or replace if already exists.
      x-addon: themingapi
    delete:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: Success
      tags:
      - Theme Assets
      summary: Delete theme asset.
      x-addon: themingapi
  /themes/{themeID}/assets/header.html:
    get:
      parameters:
      - description: Unique theme slug.
        in: path
        name: themeID
        required: true
        schema:
          type: string
      - name: fields
        in: query
        style: form
        description: Only return fields with these keys from the output. Use dot notation for nested fields.
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          content:
            text/html:
              schema:
                type: string
          description: Success
        '404':
          description: JavaScript could not be found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  description:
                    description: Verbose description of the error.
                    nullable: true
                    type: string
                  message:
                    description: Short description of the error.
                    type: string
                  status:
                    description: Status code of the error response.
                    type: integer
                required:
                - description
                - message
                - status
      tags:
      - Theme Assets
      summary: Get the header HTML of a theme.
      x-addon: dashboard
    put:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          text/html:
            schema:
              type: string
              description: HTML contents.
              example: <div>Hello HTML Asset!</div>
      responses:
        '200':
          content:
            text/html:
              schema:
                type: string
                description: HTML contents.
                example: <div>Hello HTML Asset!</div>
          description: Success
      tags:
      - Theme Assets
      summary: Set theme asset or replace if already exists.
      x-addon: themingapi
  /themes/{themeID}/assets/javascript:
    get:
      parameters:
      - description: Unique theme slug.
        in: path
        name: themeID
        required: true
        schema:
          type: string
      - name: fields
        in: query
        style: form
        description: Only return fields with these keys from the output. Use dot notation for nested fields.
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThemeJavascriptAsset'
          description: Success
        '404':
          description: JavaScript could not be found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  description:
                    description: Verbose description of the error.
                    nullable: true
                    type: string
                  message:
                    description: Short description of the error.
                    type: string
                  status:
                    description: Status code of the error response.
                    type: integer
                required:
                - description
                - message
                - status
      tags:
      - Theme Assets
      summary: Get JavaScript to be used as part of a theme.
      x-addon: dashboard
    put:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              description: An asset to be inserted.
              type: object
              properties:
                type:
                  description: The type of the asset.
                  type: string
                  example: html
                  enum:
                  - html
                  - css
                  - js
                data:
                  type: string
                  example: <header>Hello Footer<footer />
                  description: Contents of the asset. May require an expand parameter to retreive.
      responses:
        '200':
          content:
            application/json:
              schema:
                description: Contents of an asset.
                type: object
                properties:
                  type:
                    description: The type of the asset.
                    type: string
                    example: html
                    enum:
                    - html
                    - css
                    - js
                  data:
                    type: string
                    example: <header>Hello Footer<footer />
                    description: Contents of the asset. May require an expand parameter to retreive.
                  content-type:
                    description: The content-type of the asset.
                    type: string
                    example: text/html
                  url:
                    type: string
                    description: Absolute URL of the resource.
                    example: https://site.com/api/v2/themes/:themeID/assets/:assetName.ext?v=faasdf42d
          description: Success
      tags:
      - Theme Assets
      summary: Set theme asset or replace if already exists.
      x-addon: themingapi
    delete:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: Success
      tags:
      - Theme Assets
      summary: Delete theme asset.
      x-addon: themingapi
  /themes/{themeID}/assets/javascript.js:
    get:
      parameters:
      - description: Unique theme slug.
        in: path
        name: themeID
        required: true
        schema:
          type: string
      - name: fields
        in: query
        style: form
        description: Only return fields with these keys from the output. Use dot notation for nested fields.
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          content:
            application/javascript:
              schema:
                type: string
          description: Success
        '404':
          description: JavaScript could not be found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  description:
                    description: Verbose description of the error.
                    nullable: true
                    type: string
                  message:
                    description: Short description of the error.
                    type: string
                  status:
                    description: Status code of the error response.
                    type: integer
                required:
                - description
                - message
                - status
      tags:
      - Theme Assets
      summary: Get JavaScript to be used as part of a theme.
      x-addon: dashboard
    put:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/javascript:
            schema:
              type: string
              description: HTML contents.
              example: console.log('Hello Javascript')
      responses:
        '200':
          content:
            application/javascript:
              schema:
                type: string
                description: HTML contents.
                example: console.log('Hello Javascript')
          description: Success
      tags:
      - Theme Assets
      summary: Set theme asset or replace if already exists.
      x-addon: themingapi
  /themes/{themeID}/assets/scripts:
    get:
      parameters:
      - description: Unique theme slug.
        in: path
        name: themeID
        required: true
        schema:
          type: string
      - name: fields
        in: query
        style: form
        description: Only return fields with these keys from the output. Use dot notation for nested fields.
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThemeScriptsAsset'
          description: Success
        '404':
          description: JavaScript could not be found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  description:
                    description: Verbose description of the error.
                    nullable: true
                    type: string
                  message:
                    description: Short description of the error.
                    type: string
                  status:
                    description: Status code of the error response.
                    type: integer
                required:
                - description
                - message
                - status
      tags:
      - Theme Assets
      summary: Get additional script files of a theme.
      x-addon: dashboard
    put:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              description: An asset to be inserted.
              type: object
              properties:
                type:
                  type: string
                  example: json
                data:
                  type: object
                  description: JSON content of the asset.
                  example:
                    global:
                      mainColors:
                        primary: '#5cc530'
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    example: json
                  data:
                    type: object
                    description: JSON content of the asset.
                    example:
                      global:
                        mainColors:
                          primary: '#5cc530'
                  content-type:
                    description: The content-type of the asset.
                    type: string
                    example: application/json
                  url:
                    type: string
                    description: Absolute URL of the resource.
                    example: https://site.com/api/v2/themes/:themeID/assets/:assetName.ext?v=faasdf42d
          description: Success
      tags:
      - Theme Assets
      summary: Set theme asset or replace if already exists.
      x-addon: themingapi
    delete:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: Success
      tags:
      - Theme Assets
      summary: Delete theme asset.
      x-addon: themingapi
  /themes/{themeID}/assets/scripts.json:
    get:
      parameters:
      - description: Unique theme slug.
        in: path
        name: themeID
        required: true
        schema:
          type: string
      - name: fields
        in: query
        style: form
        description: Only return fields with these keys from the output. Use dot notation for nested fields.
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ThemeScript'
                type: array
          description: Success
        '404':
          description: JavaScript could not be found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  description:
                    description: Verbose description of the error.
                    nullable: true
                    type: string
                  message:
                    description: Short description of the error.
                    type: string
                  status:
                    description: Status code of the error response.
                    type: integer
                required:
                - description
                - message
                - status
      tags:
      - Theme Assets
      summary: Get additional script files of a theme.
      x-addon: dashboard
    put:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: JSON contents of the asset.
              example:
                hello:
                  json:
                    asset: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                description: JSON contents of the asset.
                example:
                  hello:
                    json:
                      asset: true
          description: Success
      tags:
      - Theme Assets
      summary: Set theme asset or replace if already exists.
      x-addon: themingapi
  /themes/{themeID}/assets/styles:
    get:
      parameters:
      - description: Unique theme slug.
        in: path
        name: themeID
        required: true
        schema:
          type: string
      - name: fields
        in: query
        style: form
        description: Only return fields with these keys from the output. Use dot notation for nested fields.
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThemeCssAsset'
          description: Success
        '404':
          description: JavaScript could not be found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  description:
                    description: Verbose description of the error.
                    nullable: true
                    type: string
                  message:
                    description: Short description of the error.
                    type: string
                  status:
                    description: Status code of the error response.
                    type: integer
                required:
                - description
                - message
                - status
      tags:
      - Theme Assets
      summary: Get theme styles.
      x-addon: dashboard
    put:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              description: An asset to be inserted.
              type: object
              properties:
                type:
                  description: The type of the asset.
                  type: string
                  example: html
                  enum:
                  - html
                  - css
                  - js
                data:
                  type: string
                  example: <header>Hello Footer<footer />
                  description: Contents of the asset. May require an expand parameter to retreive.
      responses:
        '200':
          content:
            application/json:
              schema:
                description: Contents of an asset.
                type: object
                properties:
                  type:
                    description: The type of the asset.
                    type: string
                    example: html
                    enum:
                    - html
                    - css
                    - js
                  data:
                    type: string
                    example: <header>Hello Footer<footer />
                    description: Contents of the asset. May require an expand parameter to retreive.
                  content-type:
                    description: The content-type of the asset.
                    type: string
                    example: text/html
                  url:
                    type: string
                    description: Absolute URL of the resource.
                    example: https://site.com/api/v2/themes/:themeID/assets/:assetName.ext?v=faasdf42d
          description: Success
      tags:
      - Theme Assets
      summary: Set theme asset or replace if already exists.
      x-addon: themingapi
    delete:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: Success
      tags:
      - Theme Assets
      summary: Delete theme asset.
      x-addon: themingapi
  /themes/{themeID}/assets/styles.css:
    get:
      parameters:
      - description: Unique theme slug.
        in: path
        name: themeID
        required: true
        schema:
          type: string
      - name: fields
        in: query
        style: form
        description: Only return fields with these keys from the output. Use dot notation for nested fields.
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          content:
            text/css:
              schema:
                type: string
          description: Success
        '404':
          description: JavaScript could not be found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  description:
                    description: Verbose description of the error.
                    nullable: true
                    type: string
                  message:
                    description: Short description of the error.
                    type: string
                  status:
                    description: Status code of the error response.
                    type: integer
                required:
                - description
                - message
                - status
      tags:
      - Theme Assets
      summary: Get theme styles.
      x-addon: dashboard
    put:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          text/css:
            schema:
              type: string
              description: HTML contents.
              example: ".class {\n   color: orange;\n}\n"
      responses:
        '200':
          content:
            text/css:
              schema:
                type: string
                description: HTML contents.
                example: ".class {\n   color: orange;\n}\n"
          description: Success
      tags:
      - Theme Assets
      summary: Set theme asset or replace if already exists.
      x-addon: themingapi
  /themes/{themeID}/assets/variables:
    get:
      parameters:
      - description: Unique theme slug.
        in: path
        name: themeID
        required: true
        schema:
          type: string
      - name: fields
        in: query
        style: form
        description: Only return fields with these keys from the output. Use dot notation for nested fields.
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThemeVariablesAsset'
          description: Success
        '404':
          description: JavaScript could not be found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  description:
                    description: Verbose description of the error.
                    nullable: true
                    type: string
                  message:
                    description: Short description of the error.
                    type: string
                  status:
                    description: Status code of the error response.
                    type: integer
                required:
                - description
                - message
                - status
      tags:
      - Theme Assets
      summary: Get theme variables.
      x-addon: dashboard
    put:
      parameters:
      - description: Unique themeID.
        in: path
        name: themeID
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              description: An asset to be inserted.
              type: object
              properties:
                type:
                  type: string
                  example: json
                data:
                  type: object
                  description: JSON content of the asset.
                  example:
                    global:
                      mainColors:
                        primary: '#5cc530'
      responses:
        '200':
          content:
            application/json:
              schema:
                

# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vanilla-forums/refs/heads/main/openapi/vanilla-forums-theme-assets-api-openapi.yml