Concord Signature API

Signature configuration related endpoints like auto-request and signature slots configuration. You can, for instance, add/remove slots, update their assignation, change orders.

Operations 6

GET /organizations/{organizationId}/agreements/{agreementUid}/signature Get agreement signature metadata #
PATCH /organizations/{organizationId}/agreements/{agreementUid}/signature Modify agreement signature metadata #
DELETE /organizations/{organizationId}/agreements/{agreementUid}/signature Revoke all signatures on an agreement #
PUT /organizations/{organizationId}/agreements/{agreementUid}/signature Finish signing #
PUT /organizations/{organizationId}/agreements/{agreementUid}/signature/slots Replace signature slots configuration #
POST /organizations/{organizationId}/agreements/{agreementUid}/signature/request Request signature #

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-signature-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-signature-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 Signature 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: Signature
  description: Signature configuration related endpoints like auto-request and signature slots configuration. You can, for instance, add/remove slots, update their assignation, change orders.
paths:
  /organizations/{organizationId}/agreements/{agreementUid}/signature:
    parameters:
    - name: organizationId
      in: path
      description: Organization ID.
      required: true
      schema:
        type: integer
        format: int64
    - name: agreementUid
      in: path
      description: Agreement UID.
      required: true
      schema:
        $ref: '#/components/schemas/AgreementUid'
    get:
      tags:
      - Signature
      summary: Get agreement signature metadata
      description: Get agreement signature metadata with slots information.
      operationId: SignatureGet
      responses:
        '200':
          description: Agreement signature metadata
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignatureMetadataGet'
    patch:
      tags:
      - Signature
      summary: Modify agreement signature metadata
      description: Modify agreement signature metadata.
      operationId: SignatureUpdate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SignatureMetadataPatch'
      responses:
        '204':
          description: Signature metadata updated.
    delete:
      tags:
      - Signature
      summary: Revoke all signatures on an agreement
      description: Revokes all signatures on the agreement and moves it back to the review.
      operationId: SignatureRevoke
      responses:
        '204':
          description: Signatures revoked successfully.
    put:
      tags:
      - Signature
      summary: Finish signing
      description: Finish signing and move the agreement to the next status.
      operationId: FinishSigning
      responses:
        '200':
          description: Agreement successfully finished signing
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Agreement ID
                  uid:
                    $ref: '#/components/schemas/AgreementUid'
                  status:
                    type: string
                    description: Agreement status
  /organizations/{organizationId}/agreements/{agreementUid}/signature/slots:
    parameters:
    - name: organizationId
      in: path
      description: Organization ID.
      required: true
      schema:
        type: integer
        format: int64
    - name: agreementUid
      in: path
      description: Agreement UID.
      required: true
      schema:
        $ref: '#/components/schemas/AgreementUid'
    put:
      tags:
      - Signature
      summary: Replace signature slots configuration
      operationId: SignatureSlotsUpdate
      requestBody:
        description: Agreement signature metadata
        content:
          application/json:
            schema:
              description: Signature slots details.
              type: array
              items:
                $ref: '#/components/schemas/SignatureInfoSlotPatch'
      responses:
        '204':
          description: Signature slots updated.
  /organizations/{organizationId}/agreements/{agreementUid}/signature/request:
    post:
      tags:
      - Signature
      summary: Request signature
      description: 'Requests signers to sign.

        If the signer is not yet a member of the agreement, it will either:

        - add the signer to the agreement and request the signature (if the signer is a colleague in the organization that created the agreement)

        - send an email invitation to the signer (if the signer is external to the creator''s organization)

        If signing order is enabled, the request will be sent to the next signer in the signing order.'
      operationId: RequestSignature
      parameters:
      - in: path
        name: organizationId
        description: Organization ID
        required: true
        schema:
          type: integer
          format: int64
          example: 1
      - in: path
        name: agreementUid
        description: Agreement UID
        required: true
        schema:
          $ref: '#/components/schemas/AgreementUid'
      responses:
        '200':
          description: Successfully requested signatures.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestSignaturesResponse'
components:
  schemas:
    UserPicturesDto:
      title: UserPicturesDto
      required:
      - small
      - normal
      type: object
      properties:
        small:
          type: string
          example: /static/img/users/b0c8b9d2-2944-49d3-af3a-c216ddf089ca/small.jpg
        normal:
          type: string
          example: /static/img/users/b0c8b9d2-2944-49d3-af3a-c216ddf089ca/normal.jpg
        special:
          type: string
          example: /static/img/users/b0c8b9d2-2944-49d3-af3a-c216ddf089ca/special.jpg
    SignatureMetadataPatch:
      description: Agreement signature metadata
      type: object
      properties:
        enforceOrder:
          type: boolean
          description: If true, will force signers to respect the signing order.
        autoRequest:
          type: boolean
          description: If true, will automatically send a request signature to all members able to sign when somebody signs.
        slots:
          type: array
          items:
            $ref: '#/components/schemas/SignatureInfoSlotPatch'
          description: Signature slots details.
        signatureBlockEnabled:
          type: boolean
          description: If true, will enable pre-set signature blocks.
        signatureProvider:
          $ref: '#/components/schemas/SignatureProvider'
          description: Provider used for signature processing.
    AgreementUid:
      oneOf:
      - type: string
        minLength: 22
        maxLength: 22
        description: Concord agreement unique identifier. (new format)
      - type: string
        minLength: 6
        maxLength: 6
        description: Concord agreement unique identifier. (old format)
      examples:
      - 01sp9L4YEZNcLHaSV8447N
      - G4VIX7
    SignatureInfoSlotGet:
      title: SignatureInfoSlot
      description: Details of a signature slot.
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: slot id
          example: 33
        reservation:
          $ref: '#/components/schemas/SlotReservationGet'
        signature:
          type: object
          properties:
            date:
              type: string
              format: date-time
            type:
              description: Type of signature
              type: string
              enum:
              - TEXT
              - DRAWN_IMAGE
            info:
              description: Details on signatory.
              type: object
              properties:
                name:
                  description: Signatory name.
                  type: string
                  example: John Smith
                organization:
                  description: Signatory organization name.
                  type: string
                  example: Acme Corp
                job:
                  description: Signatory job.
                  type: string
                  example: Lawyer
                email:
                  description: Signatory user email.
                  type: string
                  format: email
                image:
                  description: Signature image when directly drawing signature.
                  type: string
                  example: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkwAAABMCAYAAACf...
                font:
                  description: Signature font.
                  type: string
                  example: daniel
                signature:
                  description: Signature text.
                  type: string
                  example: John Smith
                timezone:
                  description: Timezone used at signature time (IANA identifier)
                  type: string
                  example: America/Chicago
    RequestSignaturesResponse:
      title: RequestSignaturesResponse
      type: object
      properties:
        id:
          type: string
          minLength: 22
          maxLength: 22
          description: Concord agreement unique identifier.
          example: 01sp9L4YEZNcLHaSV8447N
        uid:
          $ref: '#/components/schemas/AgreementUid'
    SignatureProvider:
      title: SignatureProvider
      description: Provider used for signature processing
      type: string
      enum:
      - CONCORD
      - DOCUSIGN
      example: CONCORD
    SlotReservationPatch:
      title: Reservation
      description: Who can sign on a signature slot.
      type: object
      properties:
        type:
          $ref: '#/components/schemas/SlotReservationType'
        user:
          type: object
          properties:
            id:
              type: integer
              format: int64
        organization:
          type: object
          properties:
            id:
              type: integer
              format: int64
        email:
          type: object
          properties:
            email:
              type: string
              format: email
        group:
          type: object
          properties:
            id:
              type: integer
              format: int64
    SignatureMetadataGet:
      description: Agreement signature metadata
      type: object
      properties:
        enforceOrder:
          type: boolean
          description: If true, will force signers to respect the signing order.
        autoRequest:
          type: boolean
          description: If true, will automatically send a request signature to all members able to sign when somebody signs.
        signatureProvider:
          $ref: '#/components/schemas/SignatureProvider'
          description: Provider used for signature processing.
        slots:
          type: array
          items:
            $ref: '#/components/schemas/SignatureInfoSlotGet'
          description: Signature slots details.
    SignatureInfoSlotPatch:
      title: SignatureInfoSlot
      required:
      - reservation
      description: Details of a signature slot.
      type: object
      properties:
        id:
          type: integer
          format: int64
        reservation:
          $ref: '#/components/schemas/SlotReservationPatch'
    SlotReservationGet:
      title: Reservation
      description: Who can sign on a signature slot.
      type: object
      properties:
        type:
          $ref: '#/components/schemas/SlotReservationType'
        user:
          type: object
          properties:
            id:
              type: integer
              format: int64
            name:
              type: string
              example: John Smith
            email:
              type: string
              format: email
            hasPicture:
              type: boolean
            pictures:
              $ref: '#/components/schemas/UserPicturesDto'
        organization:
          type: object
          properties:
            id:
              type: integer
              format: int64
            name:
              type: string
              example: Acme corp
        email:
          type: object
          properties:
            email:
              type: string
              format: email
        group:
          type: object
          properties:
            id:
              type: integer
              format: int64
            deleted:
              type: boolean
            name:
              type: string
              example: Legal dept.
    SlotReservationType:
      description: Reservation type.
      type: string
      enum:
      - NONE
      - NOT_ORGANIZATION
      - ORGANIZATION
      - GROUP
      - EMAIL
      - USER
  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)