Concord Custom Branding API

Custom branding related API

Operations 8

GET /organizations/{organizationId}/branding Get Branding Settings #
PUT /organizations/{organizationId}/branding/agreementview Enable custom branding #
POST /organizations/{organizationId}/branding/email Create Email Domain #
PUT /organizations/{organizationId}/branding/email Update Email Sender #
DELETE /organizations/{organizationId}/branding/email Delete Email Branding #

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/concord-com:concord-com-custom-branding-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

concord-com-custom-branding-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  x-logo:
    url: https://www.concord.app/wp-content/uploads/2025/01/Logo-full-color-16px-padding.svg
  title: Concord Custom Branding API
  description: '## Overview


    ### Basics


    Concord, https://www.concord.app/, is a cloud-based contract lifecycle management platform built for all types of businesses.

    It provides unlimited e-signatures and unlimited contract storage for any number of users.

    Concord saves time, money, and trees. It’s a smart way to get everyone to agree.


    This Concord API gives you access to features you see in Concord and lets you extend them for use in your own application.

    It strives to be RESTful and is organized around the main resources you’re familiar with from the Concord interface.


    Before you do anything, you should get a Concord account on our sandbox environment that you can test the API against

    and create an API Key so that you can make API calls.


    ### Format


    Both request body data and response data are formatted as JSON.


    ### Upcoming changes


    We are always maintaining, fixing, and enhancing our API. As such, you should expect new endpoints to show up, new fields to be added to responses and new error codes to appear.

    We recommend that you build your code to gracefully ignore things that you aren’t expecting, and to handle errors in standard HTTP-centric ways.


    ### Getting help


    To get in touch with our API experts directly, please send a message to support@concord.app.


    ## Environments


    The API is accessible from:


    + https://uat.concordnow.com/api/rest/1/ - sandbox


    + https://api.concordnow.com/api/rest/1/ - production


    ## Authentication


    To use this API, you need to be authenticated.


    ### With an API key


    Users authenticate themselves through the HTTP Header **X-API-KEY**.

    You can generate as many API Keys as needed from your Concord account.


    If the HTTP Header is missing or if the API Key is invalid,

    the HTTP Response will be 401 Unauthorized.


    ## Errors


    The API communicates errors through standard HTTP status codes paired with error objects. Generally, the following pattern will apply:


    + 2xx - The request was successfully received, understood, and accepted.


    + 4xx - An error in the request. Usually a bad parameter.


    + 5xx - The request is fine, but something is wrong on Concord''s end.


    ### 4xx errors definition


    The errors referenced here are valid for most (or even all) of our endpoints.

    They are standard error messages for things like "Not authenticated, but you should" or "You can''t access this".

    Depending on what you''re trying to access, you might get a bit more information in the response.


    + Response 400 (application/json)


    {

    "statusCode": 400,

    "restCode": "badRequest"

    }


    + Response 401 (application/json)


    {

    "statusCode": 401,

    "restCode": "authFailed"

    }


    + Response 403 (application/json)


    {

    "statusCode": 403,

    "restCode": "accessDenied"

    }


    + Response 404 (application/json)


    {

    "statusCode": 404,

    "restCode": "notFound"

    }


    + Response 409 (application/json)


    {

    "statusCode": 409,

    "restCode": "conflict"

    }


    ### HTTP status code


    + 200 success


    + 201 created


    + 202 accepted


    + 204 no_content


    + 400 bad_request


    + 401 unauthorized


    + 403 forbidden


    + 404 not_found


    + 405 method_not_allowed


    + 409 conflict


    + 415 unsupported_media_type


    + 500 internal_server_error


    + 502 bad_gateway


    + 503 unavailable


    + 504 gateway_timeout'
  contact:
    email: support@concord.app
    name: Support Concord
    url: https://help.concord.app/
  license:
    name: Terms of service
    url: https://www.concord.app/terms-of-service
  version: Concord API v1.0
servers:
- url: https://uat.concordnow.com/api/rest/1
  variables: {}
security:
- ApiKeyAuthentication: []
tags:
- name: Custom Branding
  description: Custom branding related API
paths:
  /organizations/{organizationId}/branding:
    parameters:
    - in: path
      name: organizationId
      description: Organization ID
      required: true
      schema:
        type: integer
        format: int64
    get:
      tags:
      - Custom Branding
      summary: Get Branding Settings
      description: Retrieves the branding settings for an organization, including custom email content, custom email sender, and custom agreement view settings. The customEmailSender object includes an isVerified property that indicates whether the domain's DKIM and ReturnPath are verified on Postmark.
      operationId: GetBrandingSettings
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBrandingSettingsresponse'
  /organizations/{organizationId}/branding/logo:
    parameters:
    - in: path
      name: organizationId
      description: Organization ID
      required: true
      schema:
        type: integer
        format: int64
    post:
      tags:
      - Custom Branding
      summary: Create a temporary logo
      description: ''
      operationId: CreateTemporaryLogo
      requestBody:
        description: ''
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
              required:
              - file
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Createatemporarylogoresponse'
    put:
      tags:
      - Custom Branding
      summary: Use a logo
      description: ''
      operationId: UseLogo
      responses:
        '204':
          description: ''
    delete:
      tags:
      - Custom Branding
      summary: Delete a logo
      description: ''
      operationId: Deletealogo
      responses:
        '204':
          description: ''
  /organizations/{organizationId}/branding/agreementview:
    parameters:
    - in: path
      name: organizationId
      description: Organization ID
      required: true
      schema:
        type: integer
        format: int64
    put:
      tags:
      - Custom Branding
      summary: Enable custom branding
      description: ''
      operationId: EnableCustomBranding
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Enablerequest'
        required: true
      responses:
        '204':
          description: ''
  /organizations/{organizationId}/branding/email:
    parameters:
    - in: path
      name: organizationId
      description: Organization ID
      required: true
      schema:
        type: integer
        format: int64
    post:
      tags:
      - Custom Branding
      summary: Create Email Domain
      description: Create a new domain in Postmark for email branding
      operationId: CreateEmailDomain
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                  description: The domain to create for email sending
                returnPathDomain:
                  type: string
                  description: Optional return path domain
              required:
              - domain
              - returnPathDomain
        required: true
      responses:
        '201':
          description: Domain created successfully with DKIM configuration information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomEmailSender'
    put:
      tags:
      - Custom Branding
      summary: Update Email Sender
      description: Configure a custom email sender after DNS configuration is complete
      operationId: UpdateEmailSender
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                senderName:
                  type: string
                  description: Name to display as sender
                senderEmail:
                  type: string
                  format: email
                  description: Email address to use as sender (must use the domain previously configured)
              required:
              - senderName
              - senderEmail
        required: true
      responses:
        '204':
          description: Email sender updated successfully
    delete:
      tags:
      - Custom Branding
      summary: Delete Email Branding
      description: Remove custom email branding configuration
      operationId: DeleteEmailBranding
      responses:
        '204':
          description: Email branding deleted successfully
components:
  schemas:
    Createatemporarylogoresponse:
      title: Createatemporarylogoresponse
      required:
      - filename
      - url
      type: object
      properties:
        filename:
          type: string
        url:
          type: string
      example:
        filename: tmpbb2e1b21-2430-4af9-8d0a-c93ac44504d96885226540406444680.png
        url: https://secure.concordnow.com/static/img/tmp/tmpbb2e1b21-2430-4af9-8d0a-c93ac44504d96885226540406444680.png
    GetBrandingSettingsresponse:
      title: GetBrandingSettingsresponse
      required:
      - customEmailContent
      - customAgreementView
      - customEmailSender
      - useForInternalEmails
      type: object
      properties:
        customEmailContent:
          $ref: '#/components/schemas/CustomEmailContent'
        customEmailSender:
          $ref: '#/components/schemas/CustomEmailSender'
        customAgreementView:
          $ref: '#/components/schemas/CustomAgreementView'
        useForInternalEmails:
          type: boolean
          description: Indicates whether the custom sender is used for internal emails.
          example: true
    Enablerequest:
      title: Enablerequest
      required:
      - enabled
      type: object
      properties:
        enabled:
          type: boolean
      example:
        enabled: true
    CustomEmailContent:
      title: CustomEmailContent
      oneOf:
      - type: object
        required:
        - enabled
        - url
        properties:
          enabled:
            type: boolean
            enum:
            - true
          url:
            type: string
      - type: object
        required:
        - enabled
        properties:
          enabled:
            type: boolean
            enum:
            - false
      example:
        enabled: true
        url: https://secure.concordnow.com/static/img/organizations/1
    CustomEmailSender:
      title: CustomEmailSender
      type: object
      required:
      - enabled
      properties:
        enabled:
          type: boolean
        senderName:
          type: string
          description: Name of the sender
          example: John Doe
        senderEmail:
          type: string
          description: Email address of the sender
          example: john.doe@company.com
        verified:
          type: boolean
          description: Indicates whether the domain's DKIM and ReturnPath are verified on Postmark
        senderDomain:
          type: string
          description: Domain of the sender (must be the same as the domain in the email address)
        dkimHost:
          type: string
          description: DKIM DNS record hostname
          example: dkim._domainkey.company.com
        dkimValue:
          type: string
          description: DKIM DNS record value
          example: v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+W6scd3XWwvC/hPRksfDYFi3ztgyS9OSqnnjtNQeDdTSD1DRx/xFar2wjmzxp2+SnJ5pspaF77VZveN3P/HVmXZVghr3asoV9WBx/uW1nDIUxU35L4juXiTwsMAbgMyh3NqIKTNKyMDy4P8vpEhtH1iv/BrwMdBjHDVCycB8WnwIDAQAB
        returnPathDomain:
          type: string
          description: Return path domain
          example: pm-bounces.company.com
        returnPathValue:
          type: string
          description: Return path CNAME value
          example: pm.mtasv.net
    CustomAgreementView:
      title: CustomAgreementView
      required:
      - enabled
      type: object
      properties:
        enabled:
          type: boolean
      example:
        enabled: true
  securitySchemes:
    ApiKeyAuthentication:
      type: apiKey
      in: header
      name: X-API-KEY
      description: 'Users authenticate themselves through the HTTP Header X-API-KEY. You can generate as many API Keys as needed from your Concord account.

        If the HTTP Header is missing or if the API Key is invalid, the HTTP Response will be 401 Unauthorized.'
x-provenance:
  method: harvested
  publisher: Concord
  source: https://api.doc.concordnow.com/concord-openapi-bundled.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)