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

# Add a contract approver

> Adds one organization member, identified by email, to the approvers of the contract. Call it once per approver: each call adds to the list and never replaces it. The member must be an admin or a manager. The approvers apply to the next send only, for review or for signature: add them again to get an approval at a later send. Accepted on draft or negotiating contracts whose contract type does not apply its own approval workflow before review. Returns the approvers of the contract after the change. See [How contract approvers work](/api-reference/contract-approvers).



## OpenAPI

````yaml /openapi-2025-01-29.alpha.json post /contracts/{id}/approvers
openapi: 3.0.0
info:
  title: Tomorro API
  description: >
    The Tomorro Public API enables you to programmatically manage contracts,
    members, and counterparties. Build powerful integrations that automate your
    contract management workflows.


    ## API Version: 2025-01-29.alpha


    This documentation is for API version `2025-01-29.alpha`.


    ### Using this version

    ```

    curl -X GET https://api.tomorro.com/members \
      -H "x-api-key: YOUR_API_KEY" \
      -H "tomorro-version: 2025-01-29.alpha"
    ```
  version: 2025-01-29.alpha
  contact: {}
servers:
  - url: https://api.tomorro.com/v2
    description: Production
  - url: https://api.demo.tomorro.com/v2
    description: Demo
  - url: http://localhost:3015
    description: Local Development
security: []
tags: []
paths:
  /contracts/{id}/approvers:
    post:
      tags:
        - Contracts
      summary: Add a contract approver
      description: >-
        Adds one organization member, identified by email, to the approvers of
        the contract. Call it once per approver: each call adds to the list and
        never replaces it. The member must be an admin or a manager. The
        approvers apply to the next send only, for review or for signature: add
        them again to get an approval at a later send. Accepted on draft or
        negotiating contracts whose contract type does not apply its own
        approval workflow before review. Returns the approvers of the contract
        after the change. See [How contract approvers
        work](/api-reference/contract-approvers).
      operationId: ContractController_addApprover
      parameters:
        - name: id
          required: true
          in: path
          description: The unique identifier (UUID) of the contract
          schema:
            example: 550e8400-e29b-41d4-a716-446655440000
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContractApproverRequestDto'
      responses:
        '200':
          description: Approver added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAdditionalApproversResponseDto'
        '400':
          description: >-
            The member is not an admin or a manager, the contract is in signing,
            signed or canceled, or its contract type applies its own approval
            workflow before review.
        '401':
          description: Unauthorized - Invalid or missing API key
        '403':
          description: Forbidden - Insufficient permissions
        '404':
          description: No organization member has this email
        '429':
          description: Too Many Requests - Rate limit exceeded
      security:
        - X-API-KEY: []
components:
  schemas:
    ContractApproverRequestDto:
      type: object
      properties:
        email:
          type: string
          format: email
          description: >-
            Email of the organization member. The email identifies one member,
            so a name is never accepted. To add an approver, the member must be
            an admin or a manager.
          example: manager@acme.com
      required:
        - email
      additionalProperties: false
    ListAdditionalApproversResponseDto:
      type: object
      properties:
        additionalApprovers:
          description: Custom additional approvers configured on the contract preferences.
          example:
            - memberId: 550e8400-e29b-41d4-a716-446655440000
              email: manager@acme.com
              firstname: Morgan
              lastname: Lee
          type: array
          items:
            $ref: '#/components/schemas/AdditionalApproverDto'
        customApproversAllowed:
          type: boolean
          description: >-
            True when no type-level BEFORE_SEND_FOR_REVIEW workflow applies, so
            custom approvers can be added (same gate as the product UI).
          example: true
      required:
        - additionalApprovers
        - customApproversAllowed
    AdditionalApproverDto:
      type: object
      properties:
        memberId:
          type: string
          description: Member id of the custom approver.
          example: 550e8400-e29b-41d4-a716-446655440000
        email:
          type: string
          description: Approver email address.
          example: manager@acme.com
        firstname:
          type: string
          description: Approver first name when available.
          example: Morgan
          nullable: true
        lastname:
          type: string
          description: Approver last name when available.
          example: Lee
          nullable: true
      required:
        - memberId
        - email
  securitySchemes:
    X-API-KEY:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API key for authentication. Get your key at
        https://app.tomorro.com/settings/integrations?integration=api-key

````

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