> ## Documentation Index
> Fetch the complete documentation index at: https://developers.podero.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Post Branding

> Save the branding: one ``payload`` form field with the JSON document, and the asset files.



## OpenAPI

````yaml https://app.podero.com/api/partners/v2.0/openapi.json post /api/partners/v2.0/org/{org_id}/branding
openapi: 3.1.0
info:
  title: Podero Partner API
  version: '2.0'
  description: >-
    This API provides a unified interaction point for Podero's partner
    companies.


    The goal of this API is to give partners easily integratable endpoints that
    don't require extensive software

    development. For this reason, the endpoints focus around user and device
    management, setting of preferences

    and high level device controls.


    While direct control of devices is implemented for special use cases such as
    pause power, we abstract away low level

    direct device steering so developers and partners can focus on delivering
    maximum value to end users.


    ## Authentication


    Send an OAuth2 access token in the `Authorization: Bearer <access_token>`
    header of each request.

    A token request must have a JSON body. The token endpoints do not read a
    form-encoded body.


    Server-to-server integrations use the client credentials grant:


    ```http

    POST /oauth2/token/

    Authorization: Basic base64(<client_id>:<client_secret>)

    Content-Type: application/json


    {"grant_type": "client_credentials"}

    ```


    The response does not contain a refresh token. The access token expires
    after `expires_in` seconds (one hour).

    To renew it, send the same request again. Use one token for all requests
    until shortly before it expires.

    Do not request a new token for each request. If a request returns `401`, get
    one new token and send the request

    again once. If it returns `401` again, the token is valid but the
    application has no access to that resource,

    and a new token does not change that.


    Apps where a person signs in use the password grant at `POST
    /api/partners/v2.0/auth/token`, and renew the

    session with the `refresh_token` grant at the same endpoint.
  termsOfService: https://www.podero.com/terms-and-conditions
servers: []
security: []
paths:
  /api/partners/v2.0/org/{org_id}/branding:
    post:
      tags:
        - Organization Configuration
      summary: Post Branding
      description: >-
        Save the branding: one ``payload`` form field with the JSON document,
        and the asset files.
      operationId: >-
        integrations_api_api_v2_organizations_configuration_branding_router_post_branding
      parameters:
        - in: path
          name: org_id
          schema:
            format: uuid
            title: Org Id
            type: string
          required: true
      requestBody:
        content:
          multipart/form-data:
            schema:
              title: MultiPartBodyParams
              type: object
              properties:
                payload:
                  description: The BrandingInput document as JSON.
                  title: Payload
                  type: string
                logo_file:
                  anyOf:
                    - format: binary
                      type: string
                    - type: 'null'
                  title: Logo File
                favicon_file:
                  anyOf:
                    - format: binary
                      type: string
                    - type: 'null'
                  title: Favicon File
                regular_font_file:
                  anyOf:
                    - format: binary
                      type: string
                    - type: 'null'
                  title: Regular Font File
                bold_font_file:
                  anyOf:
                    - format: binary
                      type: string
                    - type: 'null'
                  title: Bold Font File
              required:
                - payload
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandingOutput'
      security:
        - OAuth2: []
components:
  schemas:
    BrandingOutput:
      properties:
        revision:
          title: Revision
          type: string
        settings:
          $ref: '#/components/schemas/BrandingSettingsOutput'
        assets:
          $ref: '#/components/schemas/BrandingAssets'
        readonly:
          $ref: '#/components/schemas/BrandingReadonly'
        permissions:
          $ref: '#/components/schemas/BrandingPermissions'
        options:
          $ref: '#/components/schemas/BrandingOptions'
      required:
        - revision
        - settings
        - assets
        - readonly
        - permissions
        - options
      title: BrandingOutput
      type: object
    BrandingSettingsOutput:
      properties:
        product_name:
          title: Product Name
          type: string
        default_seo_title:
          title: Default Seo Title
          type: string
        support_email:
          title: Support Email
          type: string
        terms_and_conditions_url:
          title: Terms And Conditions Url
          type: string
        default_language:
          title: Default Language
          type: string
        allowed_languages:
          items:
            type: string
          title: Allowed Languages
          type: array
        theming_data:
          $ref: '#/components/schemas/StoredTheme'
      required:
        - product_name
        - default_seo_title
        - support_email
        - terms_and_conditions_url
        - default_language
        - allowed_languages
        - theming_data
      title: BrandingSettingsOutput
      type: object
    BrandingAssets:
      properties:
        logo_file:
          $ref: '#/components/schemas/AssetOutput'
        favicon_file:
          $ref: '#/components/schemas/AssetOutput'
        regular_font_file:
          $ref: '#/components/schemas/AssetOutput'
        bold_font_file:
          $ref: '#/components/schemas/AssetOutput'
      required:
        - logo_file
        - favicon_file
        - regular_font_file
        - bold_font_file
      title: BrandingAssets
      type: object
    BrandingReadonly:
      properties:
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        organization_id:
          title: Organization Id
          type: string
        organization_name:
          title: Organization Name
          type: string
        created_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Created At
        updated_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Updated At
        text_overrides:
          additionalProperties: true
          title: Text Overrides
          type: object
      required:
        - id
        - organization_id
        - organization_name
        - created_at
        - updated_at
        - text_overrides
      title: BrandingReadonly
      type: object
    BrandingPermissions:
      properties:
        can_edit:
          title: Can Edit
          type: boolean
      required:
        - can_edit
      title: BrandingPermissions
      type: object
    BrandingOptions:
      properties:
        languages:
          items:
            $ref: '#/components/schemas/Choice'
          title: Languages
          type: array
      required:
        - languages
      title: BrandingOptions
      type: object
    StoredTheme:
      description: >-
        The stored theme. A key the organization never set is absent: the app
        uses its own default.
      properties:
        fontFamily:
          anyOf:
            - type: string
            - type: 'null'
          title: Fontfamily
        brandColor:
          anyOf:
            - type: string
            - type: 'null'
          title: Brandcolor
        accentColor:
          anyOf:
            - type: string
            - type: 'null'
          title: Accentcolor
        accentTextColor:
          anyOf:
            - type: string
            - type: 'null'
          title: Accenttextcolor
        infoColor:
          anyOf:
            - type: string
            - type: 'null'
          title: Infocolor
        contrastColor:
          anyOf:
            - type: string
            - type: 'null'
          title: Contrastcolor
        contrastFontColor:
          anyOf:
            - type: string
            - type: 'null'
          title: Contrastfontcolor
        backgroundColor:
          anyOf:
            - type: string
            - type: 'null'
          title: Backgroundcolor
        buttonColor:
          anyOf:
            - type: string
            - type: 'null'
          title: Buttoncolor
        buttonTextColor:
          anyOf:
            - type: string
            - type: 'null'
          title: Buttontextcolor
        fontSizes:
          anyOf:
            - additionalProperties:
                type: string
              type: object
            - type: 'null'
          title: Fontsizes
      title: StoredTheme
      type: object
    AssetOutput:
      properties:
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Url
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
      required:
        - url
        - name
      title: AssetOutput
      type: object
    Choice:
      properties:
        id:
          title: Id
          type: string
        label:
          title: Label
          type: string
      required:
        - id
        - label
      title: Choice
      type: object
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        password:
          tokenUrl: /api/partners/v2.0/auth/token
          scopes: {}
        clientCredentials:
          tokenUrl: /oauth2/token/
          scopes: {}

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.