openapi: 3.1.0
info:
  title: Embeddable Builder API
  description: >
    #### Authentication


    All endpoints in this API require Bearer authentication using an API key.
    Include the API key obtained from the customer portal in the Authorization
    header of each request, formatted as follows:


    ```

    Authorization: Bearer <api_key>

    ```
  version: 0.1.0
  contact:
    email: eb-support@docue.com
    url: https://docue.com
servers:
  - url: https://api.builder.docue.com
    description: Production
security:
  - APIKey: []
paths:
  /api/workspaces/current:
    get:
      summary: Get current workspace
      operationId: getCurrentWorkspace
      tags:
        - Workspaces
      parameters:
        - $ref: '#/components/parameters/AcceptHeader'
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: >-
                      #/components/schemas/Api.Workspace.Data.WorkspaceData.WorkspaceData
              example:
                data:
                  id: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
                  name: Acme Inc.
  /api/templates:
    get:
      summary: List available templates
      operationId: getTemplates
      tags:
        - Templates
      parameters:
        - $ref: '#/components/parameters/AcceptHeader'
        - $ref: '#/components/parameters/PaginationPerPage'
        - $ref: '#/components/parameters/PaginationPage'
        - $ref: '#/components/parameters/TemplatesInclude'
      responses:
        '200':
          description: Successful response with a list of templates.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: >-
                        #/components/schemas/App.Data.Template.TemplateData.TemplateData
                  meta:
                    $ref: '#/components/schemas/PaginationData'
              example:
                data:
                  - id: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
                    title:
                      _type: translatable
                      en-GB: Employment Agreement
                    description:
                      _type: translatable
                      en-GB: Description
                    short_description:
                      _type: translatable
                      en-GB: Short description
                    default_document_name:
                      _type: translatable
                      en-GB: Employment Agreement
                    created_at: '2025-03-22T14:30:00Z'
                    updated_at: '2025-03-22T14:30:00Z'
                    languages:
                      - id: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
                        code: en-GB
                    jurisdictions:
                      - id: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
                        code: FI
                meta:
                  current_page: 1
                  first_page_url: https://api.builder.docue.com/api/templates?page=1
                  from: 1
                  last_page: 2
                  last_page_url: https://api.builder.docue.com/api/templates?page=2
                  next_page_url: https://api.builder.docue.com/api/templates?page=2
                  path: https://api.builder.docue.com/api/templates
                  per_page: 15
                  prev_page_url: null
                  to: 15
                  total: 30
  /api/templates/{template_id}:
    get:
      summary: Get a single template
      operationId: getTemplateById
      tags:
        - Templates
      parameters:
        - $ref: '#/components/parameters/AcceptHeader'
        - $ref: '#/components/parameters/TemplatesInclude'
        - name: template_id
          in: path
          required: true
          description: The UUID of the template to retrieve.
          schema:
            type: string
            format: uuid
            example: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
      responses:
        '200':
          description: Successfully retrieved the template.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: >-
                      #/components/schemas/App.Data.Template.TemplateData.TemplateData
              example:
                data:
                  id: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
                  title:
                    _type: translatable
                    en-GB: Employment Agreement
                  description:
                    _type: translatable
                    en-GB: Description
                  short_description:
                    _type: translatable
                    en-GB: Short description
                  default_document_name:
                    _type: translatable
                    en-GB: Employment Agreement
                  created_at: '2025-03-22T14:30:00Z'
                  updated_at: '2025-03-22T14:30:00Z'
                  languages:
                    - id: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
                      code: en-GB
                  jurisdictions:
                    - id: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
                      code: FI
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                data: null
                meta:
                  status:
                    code: 404
                    text: Not Found
                  error:
                    text: Resource not found
  /api/browser/sessions:
    post:
      summary: Create a new browser session
      description: >
        To use our template browser for selecting the correct template, create a
        new browser session and redirect the end user to our app. Our app will
        then redirect the user back to your app to the URL defined in the
        handlers.


        By creating a new browser session, you receive a redirect URL to send
        the end user. You also obtain a browser session ID, which allows you to
        retrieve the selected template, language, and the document title
        provided by the end user.


        The redirect URL is a secure link to our hosted app. It contains a
        one-time authorization token to authenticate the end user securely. Our
        app exchanges the token for a session cookie, granting access to this
        specific browser session only.


        The session expires after 15 minutes if the user has not been redirected
        to the URL.


        #### Handlers


        When creating a browser session, you must provide handler URLs.


        **Success handler**

        The user is redirected to this URL after successfully selecting the
        template and other details. Please note that the user may be redirected
        to this URL multiple times if they navigate back to the session using
        the browser's history.


        **Cancel handler**

        The user is redirected to this URL when they intentionally cancel the
        template selection by clicking the "back button" in the header. They can
        continue using the template browser if they navigate back to the session
        using the browser's history; therefore, this may be called multiple
        times.


        **Delete handler**

        The user is redirected to this URL when the browser session expires or
        is deleted via the API. In many cases, it is acceptable to use the same
        endpoint as in the cancel handler. This may be called multiple times.


        **Error handler**

        The user is redirected to this URL when something unexpected occurs.


        #### Handler url parameters


        The handler URL is appended (existing query parameters will remain
        intact) with the following query parameters:

        | Parameter       |
        Description                                                    |

        | --------------- |
        -------------------------------------------------------------- |

        | `session_id`    | Template browser session
        ID                                   |

        | `template_id`   | ID of the selected template (only on
        success)                  |

        | `document_name` | Name the end-user choosed for the document (only on
        success)   |

        | `languages[0]`  | Primary language of the document    (only on
        success)          |

        | `languages[1]`  | Secondary language of the document (only on success,
        optional) |



        For example, if you have defined success handler:

        ```json

        "success_handler": {
          "endpoint": "https://example.com?handler=success",
          "method": "GET"
        }

        ```

        The user will be redirected to URL:
          ```
          https://example.com?handler=success&session_id=0195c6eb-99ae-73c1-94f0-1763b872735d&template_id=0195c6eb-99ae-73c1-cc3a-1763b8743333d&language[0]=en-GB&document_name=Employment%20Agreement
          ```

        In most cases, you want to immediately start a new **builder session**
        using the provided data and redirect the user back to our UI.
      operationId: createBrowserSession
      tags:
        - Template browser
      parameters:
        - $ref: '#/components/parameters/AcceptHeader'
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/Api.BrowserSession.Payload.CreateBrowserSessionPayload.CreateBrowserSessionPayload
            example:
              ui_language: en-GB
              handlers:
                success_handler:
                  url: https://example.com
                  method: GET
                error_handler:
                  url: https://example.com
                  method: GET
                delete_handler:
                  url: https://example.com
                  method: GET
                cancel_handler:
                  url: https://example.com
                  method: GET
      responses:
        '201':
          description: Successful response with details about the browser session.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: >-
                      #/components/schemas/Api.BrowserSession.Data.BrowserSessionCreatedData.BrowserSessionCreatedData
              example:
                data:
                  id: 0195c6eb-99ae-73c1-94f0-1763b872735d
                  url: >-
                    https://app.builder.docue.com/browser-session/0195c6eb-99ae-73c1-94f0-1763b872735d#pREXDkBmZSOnl29EzmoICcfx9S19ix6u
  /api/browser/sessions/{session_id}:
    get:
      summary: Retrieve details of existing browser session
      description: >
        Returns details of the existing browser session. This information can
        serve as the source of truth when the user is redirected to your success
        handler.
      operationId: getBrowserSession
      tags:
        - Template browser
      parameters:
        - $ref: '#/components/parameters/AcceptHeader'
        - name: session_id
          in: path
          required: true
          description: The UUID of the session to retrieve.
          schema:
            type: string
            format: uuid
            example: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
      responses:
        '200':
          description: Successfully retrieved the session.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: >-
                      #/components/schemas/Api.BrowserSession.Data.BrowserSessionData.BrowserSessionData
              example:
                data:
                  id: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
                  status: completed
                  state:
                    template_id: 0195c6eb-99ae-73c1-cc3a-1763b8743333d
                    languages:
                      - en-GB
                    document_name: Employment Agreement
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                data: null
                meta:
                  status:
                    code: 404
                    text: Not Found
                  error:
                    text: Resource not found
    delete:
      summary: Delete browser session
      description: >
        Invalidates the browser session. The session remains accessible through
        the API for a limited time before it is permanently deleted. If the end
        user is still viewing the page, they will be redirected to the delete
        handler URL you specified.


        > There is no need to delete completed sessions; they will be
        automatically pruned after a certain period.
      operationId: deleteBrowserSession
      tags:
        - Template browser
      parameters:
        - $ref: '#/components/parameters/AcceptHeader'
        - name: session_id
          in: path
          required: true
          description: The UUID of the session to delete.
          schema:
            type: string
            format: uuid
            example: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
      responses:
        '200':
          description: Successfully deleted the session.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: >-
                      #/components/schemas/Api.BrowserSession.Data.BrowserSessionData.BrowserSessionData
              example:
                data:
                  id: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
                  status: deleted
                  state: null
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                data: null
                meta:
                  status:
                    code: 404
                    text: Not Found
                  error:
                    text: Resource not found
  /api/builder/sessions:
    post:
      summary: Create a new builder session
      description: >
        A builder session is required to start drafting a document with the
        Embeddable Builder (EB). Each session is isolated and contains all
        document-related data. Once the session ends, all data is deleted from
        our servers.


        **To create a session, you need:**

        - A template ID - Get this from our Template Listing API or let the
        end-user pick one via the hosted Template Browser UI.

        - A list of languages - The languages must match the languages available
        for the selected template. The language determines the final document's
        language that the end-user drafts. Currently, only one language can be
        provided.

        - A document name - Acts like a file name. It's shown in the builder UI
        and can be edited by the end-user.


        **Participant details**


        You can provide end-user details, such as display name and email, for
        your reference. These will be required later for collaboration features
        like commenting, but they are not currently in use. You can use the
        External ID field to store your internal user ID, which you can later
        use to match our participants with your users if needed.


        **Redirect URL**


        After creating a session, you'll get a one-time URL to send the end-user
        to our hosted builder UI. Opening the link creates a secure session with
        access to that document only.


        The redirect URL is valid for 15 minutes.


        #### Handlers

        You need to provide handlers that redirect the end user back to your
        service after drafting.


        **Success handler**

        The user is redirected to this URL after completing the drafting session
        and filling in all the required information. The document is then
        considered "ready" and cannot be altered. Please note that the endpoint
        may be called multiple times if users navigates back to our builder via
        browser history.


        **Cancel handler**

        The user is redirected to this URL after canceling the drafting session.
        The builder session remains intact. If the user navigates back to our UI
        using browser history, they can resume drafting. Therefore, it is
        possible for this handler to be called multiple times.


        **Delete handler**

        The user is redirected to this URL after the document is deleted.
        Document can be deleted via API and end-users can delete the document
        through the UI. Once deleted, the document cannot be altered, but it
        remains accessible via the API for a certain period before being
        permanently deleted. If the user navigates back to the builder after
        deletion, they will be automatically redirected to this handler.
        Consequently, this endpoint may be called multiple times.


        **Error handler**

        The user is redirected to this URL when an unexpected error occurs.


        #### Handler url parameters


        Handler URLs are appended (existing parameters will remain unchanged)
        with the following query parameters:

        | Parameter       | Description                                         
        |

        | --------------- | ----------------------------------------------------
        |

        | `session_id`    | Builder session ID                                  
        |

        | `participant_id`| Builder participant ID                              
        |
      operationId: createBuilderSession
      tags:
        - Builder
      parameters:
        - $ref: '#/components/parameters/AcceptHeader'
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/Api.BuilderSession.Payload.CreateBuilderSessionPayload.CreateBuilderSessionPayload
            example:
              contract:
                template_id: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
                document_name: Employment agreement
                languages:
                  - en-GB
              participant:
                email: john.doe@example.org
                display_name: John Doe
              ui_language: en-GB
              handlers:
                success_handler:
                  url: https://example.com
                  method: GET
                error_handler:
                  url: https://example.com
                  method: GET
                delete_handler:
                  url: https://example.com
                  method: GET
                cancel_handler:
                  url: https://example.com
                  method: GET
      responses:
        '201':
          description: Successful response with details about the builder session.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: >-
                      #/components/schemas/Api.BuilderSession.Data.BuilderSessionCreatedData.BuilderSessionCreatedData
              example:
                data:
                  id: 0195c6eb-99ae-73c1-94f0-1763b872735d
                  url: >-
                    https://app.builder.docue.com/browser-session/0195c6eb-99ae-73c1-94f0-1763b872735d#pREXDkBmZSOnl29EzmoICcfx9S19ix6u
                  participant:
                    id: 0195c6eb-99ae-73c1-94f0-1763b872735d
                    display_name: null
                    external_id: null
                    email: null
  /api/builder/sessions/{session_id}:
    get:
      summary: Retrieve details of existing builder session
      description: |
        Returns details of the existing builder session.
      operationId: getBuilderSession
      tags:
        - Builder
      parameters:
        - $ref: '#/components/parameters/AcceptHeader'
        - name: session_id
          in: path
          required: true
          description: The UUID of the session to retrieve.
          schema:
            type: string
            format: uuid
            example: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
      responses:
        '200':
          description: Successfully retrieved the session.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: >-
                      #/components/schemas/Api.BuilderSession.Data.BuilderSessionData.BuilderSessionData
              example:
                data:
                  id: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
                  status: completed
                  participants:
                    - id: 123e4567-e89b-12d3-a456-426614174000
                      display_name: null
                      email: null
                      external_id: null
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                data: null
                meta:
                  status:
                    code: 404
                    text: Not Found
                  error:
                    text: Resource not found
    delete:
      summary: Delete builder session
      description: >
        Invalidates the builder session. The session is no longer accessible via
        the API after deletion. If the end user is still in the builder, they
        are redirected to the delete handler URL you provided when creating the
        session.
      operationId: deleteBuilderSession
      tags:
        - Builder
      parameters:
        - $ref: '#/components/parameters/AcceptHeader'
        - name: session_id
          in: path
          required: true
          description: The UUID of the session to delete.
          schema:
            type: string
            format: uuid
            example: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
      responses:
        '204':
          description: Successfully deleted the session. No content is returned.
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                data: null
                meta:
                  status:
                    code: 404
                    text: Not Found
                  error:
                    text: Resource not found
  /api/builder/sessions/{session_id}/contract:
    get:
      summary: Get contract state and signees
      description: |
        Get contract's state and list of signees.
      operationId: getBuilderSessionContract
      tags:
        - Builder
      parameters:
        - name: session_id
          in: path
          required: true
          description: The UUID of the session
          schema:
            type: string
            format: uuid
            example: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
      responses:
        '200':
          description: Successfully retrieved contract
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractState'
              example:
                data:
                  state:
                    id: 0196ae5b-2e9d-729f-aba5-fa4db6f881fd
                    status: draft
                    document_name: Testing document
                    jurisdiction: FI
                    languages:
                      - en-GB
                    value:
                      _type: value
                      _id: 0196ae5b-2e9d-729f-aba5-fca3d9d646a4
                      basic:
                        _type: value
                        _id: 0196ae5b-2e9d-729f-aba6-03235f09a720
                        title:
                          _type: translatable
                          en-GB: Non-Disclosure Agreement
                      parties:
                        - _type: value
                          _id: 0196ae5b-2e9d-729f-aba6-07fd964cae09
                          type: company
                          company_name: Docue
                          company_id: '1212'
                          first_name: John
                          last_name: Doe
                          job_title: ''
                        - _type: value
                          _id: 0196ae5c-3d2e-7005-9c0d-746605183d92
                          type: person
                          company_name: ''
                          company_id: ''
                          first_name: Richard
                          last_name: Roe
                          job_title: ''
                      place_and_date:
                        _type: value
                        _id: 0196ae5b-2e9e-706c-aa37-3327550c36ee
                        place: Helsinki
                        date: '2025-05-01'
                    sections:
                      - _type: contract-section
                        id: 0196623c-5d00-7ff8-9528-5187dc2fe5d9
                        title:
                          _type: translatable
                          en-GB: Basic information
                        name: ''
                        is_included: true
                        type: template
                        template_section_id: 0196623c-5d00-7ff8-9528-5187dc2fe5d9
                        content: null
                      - _type: contract-section
                        id: 0196ae74-b492-700e-a824-9899cb125a3b
                        title:
                          _type: translatable
                          en-GB: Background
                        name: ''
                        is_included: true
                        type: custom
                        content:
                          _type: translatable
                          en-GB: >-
                            <p>Background for this contract is to just test the
                            builder.</p>
                      - _type: contract-section
                        id: 0196623c-8461-7ff8-9528-740c187c94cc
                        title:
                          _type: translatable
                          en-GB: Contracting parties
                        name: ''
                        is_included: true
                        type: template
                        template_section_id: 0196623c-8461-7ff8-9528-740c187c94cc
                        content: null
                      - _type: contract-section
                        id: 01966243-fe05-7ff8-9529-572ead0c674b
                        title:
                          _type: translatable
                          en-GB: Place and date
                        name: ''
                        is_included: true
                        type: template
                        template_section_id: 01966243-fe05-7ff8-9529-572ead0c674b
                        content: null
                    appearance:
                      logo:
                        enabled: false
                        content: null
                        scale: 50
                      footer:
                        enabled: false
                        content: ''
                      heading1:
                        family: arial
                        color: '#000000'
                        size: '20'
                        weight: bold
                        alignment: left
                        transform: none
                      heading2:
                        family: arial
                        color: '#000000'
                        size: '13'
                        weight: bold
                        alignment: left
                        transform: none
                      heading3:
                        family: arial
                        color: '#000000'
                        size: '12'
                        weight: bold
                        alignment: left
                        transform: none
                      heading4:
                        family: arial
                        color: '#000000'
                        size: '11'
                        weight: bold
                        alignment: left
                        transform: none
                      heading5:
                        family: arial
                        color: '#000000'
                        size: '11'
                        weight: regular
                        alignment: left
                        transform: none
                      heading6:
                        family: arial
                        color: '#000000'
                        size: '11'
                        weight: regular
                        alignment: left
                        transform: none
                      paragraph:
                        family: arial
                        color: '#000000'
                        size: '11'
                        weight: regular
                        alignment: justify
                        transform: none
                      table:
                        family: arial
                        size: '11'
                        color: '#000000'
                        bgColor: '#ffffff'
                        headerBgColor: '#e7e5e4'
                        headerColor: '#000000'
                        borderColorEnabled: true
                        borderColor: '#ffffff'
                        alternatingRowBgColorEnabled: true
                        alternatingRowBgColor: '#fafaf9'
                  signees:
                    - _type: signature
                      id: 0196ae5b-2e9d-729f-aba6-07fd964cae09
                      first_name: John
                      last_name: Doe
                      job_title: ''
                      fieldset_name: parties
                      page: 1
                      x: 0.15219702338766833
                      'y': 0.3558135326624073
                      width: 0.31498543192377354
                      height: 0.10690274355869211
                    - _type: signature
                      id: 0196ae5c-3d2e-7005-9c0d-746605183d92
                      first_name: Richard
                      last_name: Roe
                      job_title: ''
                      fieldset_name: parties
                      page: 1
                      x: 0.5040357508465233
                      'y': 0.3558135326624073
                      width: 0.31498543192377354
                      height: 0.10690274355869211
    patch:
      summary: Update contract state and appearance
      description: >
        Update the contract's state values and appearance using [JSON Patch (RFC
        6902)](https://datatracker.ietf.org/doc/html/rfc6902) operations.

        The available operations depend on the path, as does the value.


        See more detailed description and examples
        [here](/embeddable-builder-api#update-document-state-and-appearance-using-api).
      operationId: patchBuilderSessionContract
      tags:
        - Builder
      parameters:
        - name: session_id
          in: path
          required: true
          description: The UUID of the session
          schema:
            type: string
            format: uuid
            example: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
        - name: X-Participant
          in: header
          required: true
          description: >-
            The participant ID for the builder session. This header is required
            for updating the contract state.
          schema:
            type: string
            format: uuid
            example: 123e4567-e89b-12d3-a456-426614174000
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                operations:
                  type: array
                  items:
                    type: object
                    properties:
                      op:
                        type: string
                        enum:
                          - replace
                          - remove
                          - add
                        example: replace
                      path:
                        type: string
                        example: /document_name
                      value:
                        example: My document
            example:
              operations:
                - op: replace
                  path: /document_name
                  value: Employment agreement, John Doe
      responses:
        '200':
          description: Successfully patched contract
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractState'
              example:
                data:
                  state:
                    id: 0196ae5b-2e9d-729f-aba5-fa4db6f881fd
                    status: draft
                    document_name: Employment agreement, John Doe
                    jurisdiction: FI
                    languages:
                      - en-GB
                    value:
                      _type: value
                      _id: 0196ae5b-2e9d-729f-aba5-fca3d9d646a4
                      basic:
                        _type: value
                        _id: 0196ae5b-2e9d-729f-aba6-03235f09a720
                        title:
                          _type: translatable
                          en-GB: Non-Disclosure Agreement
                      parties:
                        - _type: value
                          _id: 0196ae5b-2e9d-729f-aba6-07fd964cae09
                          type: company
                          company_name: Docue
                          company_id: '1212'
                          first_name: John
                          last_name: Doe
                          job_title: ''
                        - _type: value
                          _id: 0196ae5c-3d2e-7005-9c0d-746605183d92
                          type: person
                          company_name: ''
                          company_id: ''
                          first_name: Richard
                          last_name: Roe
                          job_title: ''
                      place_and_date:
                        _type: value
                        _id: 0196ae5b-2e9e-706c-aa37-3327550c36ee
                        place: Helsinki
                        date: '2025-05-01'
                    sections:
                      - _type: contract-section
                        id: 0196623c-5d00-7ff8-9528-5187dc2fe5d9
                        title:
                          _type: translatable
                          en-GB: Basic information
                        name: ''
                        is_included: true
                        type: template
                        template_section_id: 0196623c-5d00-7ff8-9528-5187dc2fe5d9
                        content: null
                      - _type: contract-section
                        id: 0196ae74-b492-700e-a824-9899cb125a3b
                        title:
                          _type: translatable
                          en-GB: Background
                        name: ''
                        is_included: true
                        type: custom
                        content:
                          _type: translatable
                          en-GB: >-
                            <p>Background for this contract is to just test the
                            builder.</p>
                      - _type: contract-section
                        id: 0196623c-8461-7ff8-9528-740c187c94cc
                        title:
                          _type: translatable
                          en-GB: Contracting parties
                        name: ''
                        is_included: true
                        type: template
                        template_section_id: 0196623c-8461-7ff8-9528-740c187c94cc
                        content: null
                      - _type: contract-section
                        id: 01966243-fe05-7ff8-9529-572ead0c674b
                        title:
                          _type: translatable
                          en-GB: Place and date
                        name: ''
                        is_included: true
                        type: template
                        template_section_id: 01966243-fe05-7ff8-9529-572ead0c674b
                        content: null
                    appearance:
                      logo:
                        enabled: false
                        content: null
                        scale: 50
                      footer:
                        enabled: false
                        content: ''
                      heading1:
                        family: arial
                        color: '#000000'
                        size: '20'
                        weight: bold
                        alignment: left
                        transform: none
                      heading2:
                        family: arial
                        color: '#000000'
                        size: '13'
                        weight: bold
                        alignment: left
                        transform: none
                      heading3:
                        family: arial
                        color: '#000000'
                        size: '12'
                        weight: bold
                        alignment: left
                        transform: none
                      heading4:
                        family: arial
                        color: '#000000'
                        size: '11'
                        weight: bold
                        alignment: left
                        transform: none
                      heading5:
                        family: arial
                        color: '#000000'
                        size: '11'
                        weight: regular
                        alignment: left
                        transform: none
                      heading6:
                        family: arial
                        color: '#000000'
                        size: '11'
                        weight: regular
                        alignment: left
                        transform: none
                      paragraph:
                        family: arial
                        color: '#000000'
                        size: '11'
                        weight: regular
                        alignment: justify
                        transform: none
                      table:
                        family: arial
                        size: '11'
                        color: '#000000'
                        bgColor: '#ffffff'
                        headerBgColor: '#e7e5e4'
                        headerColor: '#000000'
                        borderColorEnabled: true
                        borderColor: '#ffffff'
                        alternatingRowBgColorEnabled: true
                        alternatingRowBgColor: '#fafaf9'
                  signees:
                    - _type: signature
                      id: 0196ae5b-2e9d-729f-aba6-07fd964cae09
                      first_name: John
                      last_name: Doe
                      job_title: ''
                      fieldset_name: parties
                      page: 1
                      x: 0.15219702338766833
                      'y': 0.3558135326624073
                      width: 0.31498543192377354
                      height: 0.10690274355869211
                    - _type: signature
                      id: 0196ae5c-3d2e-7005-9c0d-746605183d92
                      first_name: Richard
                      last_name: Roe
                      job_title: ''
                      fieldset_name: parties
                      page: 1
                      x: 0.5040357508465233
                      'y': 0.3558135326624073
                      width: 0.31498543192377354
                      height: 0.10690274355869211
  /api/builder/sessions/{session_id}/contract/finalize:
    post:
      summary: Finalize contract
      description: >
        Finalize the current builder session contract. Once finalized, the
        document becomes read-only and can no longer be patched. The document
        PDF and HTML can still be downloaded.
      operationId: finalizeBuilderSessionContract
      tags:
        - Builder
      parameters:
        - name: session_id
          in: path
          required: true
          description: The UUID of the session to finalize.
          schema:
            type: string
            format: uuid
            example: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
        - name: X-Participant
          in: header
          required: true
          description: >-
            The participant ID for the builder session performing the finalize
            action.
          schema:
            type: string
            format: uuid
            example: 123e4567-e89b-12d3-a456-426614174000
      responses:
        '200':
          description: Successfully finalized contract
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractState'
        '409':
          description: Contract already finalized.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: 'null'
                    description: Always null for error responses.
                  meta:
                    type: object
                    properties:
                      status:
                        type: object
                        properties:
                          code:
                            type: integer
                            example: 409
                          text:
                            type: string
                            example: Conflict
                        required:
                          - code
                          - text
                      error:
                        type: object
                        properties:
                          text:
                            type: string
                            example: Only a pending session can be finalized
                        required:
                          - text
                    required:
                      - status
                      - error
                required:
                  - data
                  - meta
              example:
                data: null
                meta:
                  status:
                    code: 409
                    text: Conflict
                  error:
                    text: Only a pending session can be finalized
  /api/builder/sessions/{session_id}/html:
    get:
      summary: Get HTML
      description: >
        Retrieve the rendered HTML of the builder session document. This matches
        the PDF contents but in HTML format for previewing or custom rendering
        flows.
      operationId: getBuilderSessionHtml
      tags:
        - Builder
      parameters:
        - name: session_id
          in: path
          required: true
          description: The UUID of the session.
          schema:
            type: string
            format: uuid
            example: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
      responses:
        '200':
          description: Successfully retrieved HTML
          content:
            text/html:
              schema:
                type: string
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                data: null
                meta:
                  status:
                    code: 404
                    text: Not Found
                  error:
                    text: Resource not found
  /api/builder/sessions/{session_id}/pdf:
    get:
      summary: Get PDF
      description: |
        Get rendered PDF for the builder session.
      operationId: getBuilderSessionPdf
      tags:
        - Builder
      parameters:
        - name: session_id
          in: path
          required: true
          description: The UUID of the session
          schema:
            type: string
            format: uuid
            example: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
  /api/builder/sessions/{session_id}/participants/{participant_id}/authenticate:
    post:
      summary: Re-authenticate existing participant
      description: >
        If you want to re-authenticate an existing participant in an ongoing
        Builder session, you can use this endpoint.


        See details about the url in [create builder
        session](#operation/createBuilderSession).
      operationId: reauthenticateParticipant
      tags:
        - Builder
      parameters:
        - $ref: '#/components/parameters/AcceptHeader'
        - name: session_id
          in: path
          required: true
          description: The UUID of the session.
          schema:
            type: string
            format: uuid
            example: 7f3f5f62-2c69-7d4e-8a3d-9c0f0e2c5f3a
        - name: participant_id
          in: path
          required: true
          description: The UUID of the participant to authenticate.
          schema:
            type: string
            format: uuid
            example: 123e4567-e89b-12d3-a456-426614174000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticateParticipantPayload'
            example:
              ui_language: en-GB
      responses:
        '201':
          description: >-
            Successful response with details about the authenticated
            participant.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: >-
                      #/components/schemas/Api.BuilderSession.Participant.Data.ParticipantAuthenticatedData.ParticipantAuthenticatedData
              example:
                data:
                  id: 0195c6eb-99ae-73c1-94f0-1763b872735d
                  url: >-
                    https://app.builder.docue.com/browser-session/0195c6eb-99ae-73c1-94f0-1763b872735d#pREXDkBmZSOnl29EzmoICcfx9S19ix6u
                  participant:
                    id: 0195c6eb-99ae-73c1-94f0-1763b872735d
                    display_name: null
                    external_id: null
                    email: null
components:
  parameters:
    AcceptHeader:
      name: Accept
      in: header
      required: true
      schema:
        type: string
        enum:
          - application/json
      description: Specify the response format.
    PaginationPerPage:
      name: per_page
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 200
        default: 15
        example: 20
      description: Number of items per page.
    PaginationPage:
      name: page
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        default: 1
        example: 1
      description: Page number to retrieve. Defaults to 1.
    TemplatesInclude:
      in: query
      name: include
      schema:
        type: string
      required: false
      description: >-
        Comma delimited list of relationships to include. <br>Available
        includes: `jurisdictions`, `languages`
      example: languages,jurisdictions
  securitySchemes:
    APIKey:
      description: API authentication using bearer token.
      type: http
      scheme: bearer
      bearerFormat: API Key
  schemas:
    CreateBrowserSessionPayload:
      $ref: >-
        #/components/schemas/Api.BrowserSession.Payload.CreateBrowserSessionPayload.CreateBrowserSessionPayload
    BrowserSessionCreatedData:
      $ref: >-
        #/components/schemas/Api.BrowserSession.Data.BrowserSessionCreatedData.BrowserSessionCreatedData
    BrowserSessionData:
      $ref: >-
        #/components/schemas/Api.BrowserSession.Data.BrowserSessionData.BrowserSessionData
    CreateBuilderSessionPayload:
      $ref: >-
        #/components/schemas/Api.BuilderSession.Payload.CreateBuilderSessionPayload.CreateBuilderSessionPayload
    AuthenticateParticipantPayload:
      type: object
      properties:
        ui_language:
          $ref: '#/components/schemas/App.Enums.UiLanguage'
    ParticipantAuthenticatedData:
      $ref: >-
        #/components/schemas/Api.BuilderSession.Participant.Data.ParticipantAuthenticatedData.ParticipantAuthenticatedData
    BuilderSessionCreatedData:
      $ref: >-
        #/components/schemas/Api.BuilderSession.Data.BuilderSessionCreatedData.BuilderSessionCreatedData
    BuilderSessionData:
      $ref: >-
        #/components/schemas/Api.BuilderSession.Data.BuilderSessionData.BuilderSessionData
    WorkspaceData:
      $ref: '#/components/schemas/Api.Workspace.Data.WorkspaceData.WorkspaceData'
    ContractState:
      type: object
      properties:
        data:
          type: object
          properties:
            state:
              type: object
              properties:
                id:
                  type: string
                status:
                  type: string
                  enum:
                    - draft
                    - finalized
                  description: If document is finalized, it cannot be edited.
                document_name:
                  type: string
                  description: >-
                    Name of the document. End-users can edit this. This is not
                    visible on the document itself.
                jurisdiction:
                  type: string
                  description: Jurisdiction of the agreement.
                  example: FI
                languages:
                  type: array
                  items:
                    type: string
                  description: >-
                    Languages in which the document is drafted. It usually
                    contains just one.
                  example:
                    - en-GB
                value:
                  type: object
                  description: >-
                    Values filled in to the form. The schema varies in every
                    template. See
                    [this](/embeddable-builder-api#update-document-field-values)
                    for more information.
                sections:
                  type: array
                  items:
                    type: object
                  description: >-
                    List of sections included in the document. It contains
                    templates and custom sections added by end-users. The
                    sections are presented in the same order as they appear in
                    the document.
                appearance:
                  type: object
                  properties:
                    logo:
                      type: object
                      properties:
                        enabled:
                          type: boolean
                          example: false
                        content:
                          type:
                            - string
                            - 'null'
                          example: null
                          description: Data URI with base64 encoded JPG,PNG or SVG image.
                        scale:
                          type: number
                          example: 50
                          description: >-
                            Size of the logo, scale 20-100 where 20 is the
                            smallest and 100 is the largest.
                    footer:
                      type: object
                      properties:
                        enabled:
                          type: boolean
                          example: false
                        content:
                          type: string
                          example: ''
                    heading1:
                      type: object
                      properties:
                        family:
                          type: string
                          example: arial
                        color:
                          type: string
                          example: '#000000'
                        size:
                          type: string
                          example: '20'
                        weight:
                          type: string
                          example: bold
                        alignment:
                          type: string
                          example: left
                        transform:
                          type: string
                          example: none
                    heading2:
                      type: object
                      properties:
                        family:
                          type: string
                          example: arial
                        color:
                          type: string
                          example: '#000000'
                        size:
                          type: string
                          example: '13'
                        weight:
                          type: string
                          example: bold
                        alignment:
                          type: string
                          example: left
                        transform:
                          type: string
                          example: none
                    heading3:
                      type: object
                      properties:
                        family:
                          type: string
                          example: arial
                        color:
                          type: string
                          example: '#000000'
                        size:
                          type: string
                          example: '12'
                        weight:
                          type: string
                          example: bold
                        alignment:
                          type: string
                          example: left
                        transform:
                          type: string
                          example: none
                    heading4:
                      type: object
                      properties:
                        family:
                          type: string
                          example: arial
                        color:
                          type: string
                          example: '#000000'
                        size:
                          type: string
                          example: '11'
                        weight:
                          type: string
                          example: bold
                        alignment:
                          type: string
                          example: left
                        transform:
                          type: string
                          example: none
                    heading5:
                      type: object
                      properties:
                        family:
                          type: string
                          example: arial
                        color:
                          type: string
                          example: '#000000'
                        size:
                          type: string
                          example: '11'
                        weight:
                          type: string
                          example: regular
                        alignment:
                          type: string
                          example: left
                        transform:
                          type: string
                          example: none
                    heading6:
                      type: object
                      properties:
                        family:
                          type: string
                          example: arial
                        color:
                          type: string
                          example: '#000000'
                        size:
                          type: string
                          example: '11'
                        weight:
                          type: string
                          example: regular
                        alignment:
                          type: string
                          example: left
                        transform:
                          type: string
                          example: none
                    paragraph:
                      type: object
                      properties:
                        family:
                          type: string
                          example: arial
                        color:
                          type: string
                          example: '#000000'
                        size:
                          type: string
                          example: '11'
                        weight:
                          type: string
                          example: regular
                        alignment:
                          type: string
                          example: justify
                        transform:
                          type: string
                          example: none
                    table:
                      type: object
                      properties:
                        family:
                          type: string
                          example: arial
                        size:
                          type: string
                          example: '11'
                        color:
                          type: string
                          example: '#000000'
                        bgColor:
                          type: string
                          example: '#ffffff'
                        headerBgColor:
                          type: string
                          example: '#e7e5e4'
                        headerColor:
                          type: string
                          example: '#000000'
                        borderColorEnabled:
                          type: boolean
                          example: true
                        borderColor:
                          type: string
                          example: '#ffffff'
                        alternatingRowBgColorEnabled:
                          type: boolean
                          example: true
                        alternatingRowBgColor:
                          type: string
                          example: '#fafaf9'
              description: Contract current state
            signees:
              type: array
              description: List of signees found from the document.
              items:
                properties:
                  _type:
                    type: string
                    const: signature
                  id:
                    type: string
                    format: uuid
                    description: Unique ID for the signature.
                  first_name:
                    type: string
                  last_name:
                    type: string
                  job_title:
                    type: string
                  company_name:
                    type: string
                  fieldset_name:
                    type: string
                    description: Name of the fieldset from which this signee originates.
                  page:
                    type: integer
                    description: >-
                      Number of the page where the signature area of this signee
                      is located. It is 1-based.
                  x:
                    type: number
                    format: float
                    description: >-
                      X position of the signature area's location. The value is
                      % of the page's width. For e.g. 0.10 means it is 10% of
                      the page width.
                    example: 0.1
                  'y':
                    type: number
                    format: float
                    description: >-
                      Y position of the signature area's location. The value is
                      % of the page's height. For e.g. 0.10 means it is 10% of
                      the page height.
                    example: 0.1
                  width:
                    type: number
                    format: float
                    description: >-
                      Width of the signature area. The value is % of the page's
                      width. For e.g. 0.10 means it is 10% of the page width.
                    example: 0.1
                  height:
                    type: number
                    format: float
                    description: >-
                      Height of the signature area. The value is % of the page's
                      height. For e.g. 0.10 means it is 10% of the page height.
                    example: 0.1
                required:
                  - id
                  - first_name
                  - last_name
                  - fieldset_name
                  - page
                  - x
                  - 'y'
                  - width
                  - height
    ErrorResponse:
      type: object
      description: Standard error response payload.
      properties:
        data:
          type: 'null'
          description: Always null for error responses.
        meta:
          type: object
          properties:
            status:
              type: object
              properties:
                code:
                  type: integer
                text:
                  type: string
              required:
                - code
                - text
            error:
              type: object
              properties:
                text:
                  type: string
              required:
                - text
          required:
            - status
            - error
      required:
        - data
        - meta
    TemplateData:
      $ref: '#/components/schemas/App.Data.Template.TemplateData.TemplateData'
    PaginationData:
      type: object
      properties:
        current_page:
          type: integer
          minimum: 1
          example: 1
        first_page_url:
          type: string
          format: uri
          example: https://api.builder.docue.com/api/templates?page=1
        from:
          type: integer
          minimum: 0
          example: 1
        last_page:
          type: integer
          minimum: 1
          example: 2
        last_page_url:
          type: string
          format: uri
          example: https://api.builder.docue.com/api/templates?page=2
        next_page_url:
          oneOf:
            - type: string
              format: uri
            - type: 'null'
          example: null
        path:
          type: string
          format: uri
          example: https://api.builder.docue.com/api/templates
        per_page:
          type: integer
          minimum: 1
          example: 15
        prev_page_url:
          oneOf:
            - type: string
              format: uri
            - type: 'null'
          example: null
        to:
          type: integer
          minimum: 0
          example: 15
        total:
          type: integer
          minimum: 0
          example: 30
      required:
        - current_page
        - first_page_url
        - from
        - last_page
        - last_page_url
        - path
        - per_page
        - to
        - total
    Api.Workspace.Data.WorkspaceData.WorkspaceData:
      additionalProperties: false
      properties:
        id:
          type: string
        name:
          type: string
      required:
        - id
        - name
      type: object
    App.Data.Template.JurisdictionData.JurisdictionData:
      additionalProperties: false
      properties:
        code:
          type: string
        id:
          type: string
      required:
        - id
        - code
      type: object
    App.Data.Template.LanguageData.LanguageData:
      additionalProperties: false
      properties:
        code:
          type: string
        id:
          type: string
      required:
        - id
        - code
      type: object
    App.Data.Template.TemplateData.TemplateData:
      additionalProperties: false
      properties:
        created_at:
          type: string
        default_document_name:
          additionalProperties:
            type: string
          type: object
        description:
          additionalProperties:
            type: string
          type: object
        id:
          type: string
        jurisdictions:
          items:
            $ref: >-
              #/components/schemas/App.Data.Template.JurisdictionData.JurisdictionData
          type: array
        languages:
          items:
            $ref: '#/components/schemas/App.Data.Template.LanguageData.LanguageData'
          type: array
        short_description:
          additionalProperties:
            type: string
          type: object
        title:
          additionalProperties:
            type: string
          type: object
        updated_at:
          type: string
      required:
        - id
        - title
        - short_description
        - description
        - default_document_name
        - created_at
        - updated_at
      type: object
    App.Enums.HttpMethod:
      const: GET
      type: string
    App.Payload.Primitives.HandlerPayload.HandlerPayload:
      additionalProperties: false
      properties:
        method:
          $ref: '#/components/schemas/App.Enums.HttpMethod'
        url:
          type: string
      required:
        - url
        - method
      type: object
    App.Payload.Primitives.HandlersPayload.HandlersPayload:
      additionalProperties: false
      properties:
        cancel_handler:
          $ref: >-
            #/components/schemas/App.Payload.Primitives.HandlerPayload.HandlerPayload
        delete_handler:
          $ref: >-
            #/components/schemas/App.Payload.Primitives.HandlerPayload.HandlerPayload
        error_handler:
          $ref: >-
            #/components/schemas/App.Payload.Primitives.HandlerPayload.HandlerPayload
        success_handler:
          $ref: >-
            #/components/schemas/App.Payload.Primitives.HandlerPayload.HandlerPayload
      required:
        - success_handler
        - cancel_handler
        - delete_handler
        - error_handler
      type: object
    App.Enums.UiLanguage:
      enum:
        - en-GB
        - fi
        - de
        - pl
        - sv
      type: string
    Api.BrowserSession.Payload.CreateBrowserSessionPayload.CreateBrowserSessionPayload:
      additionalProperties: false
      properties:
        handlers:
          $ref: >-
            #/components/schemas/App.Payload.Primitives.HandlersPayload.HandlersPayload
        ui_language:
          $ref: '#/components/schemas/App.Enums.UiLanguage'
      required:
        - handlers
      type: object
    Api.BrowserSession.Data.BrowserSessionCreatedData.BrowserSessionCreatedData:
      additionalProperties: false
      properties:
        id:
          type: string
        url:
          type: string
      required:
        - id
        - url
      type: object
    App.Data.BrowserSession.BrowserSessionStateData.BrowserSessionStateData:
      additionalProperties: false
      properties:
        document_name:
          type: string
        languages:
          items:
            type: string
          type: array
        template_id:
          type: string
      required:
        - template_id
        - languages
        - document_name
      type: object
    App.Enums.BrowserSessionStatus:
      enum:
        - pending
        - completed
        - deleted
      type: string
    Api.BrowserSession.Data.BrowserSessionData.BrowserSessionData:
      additionalProperties: false
      properties:
        id:
          type: string
        state:
          anyOf:
            - $ref: >-
                #/components/schemas/App.Data.BrowserSession.BrowserSessionStateData.BrowserSessionStateData
            - type: 'null'
        status:
          $ref: '#/components/schemas/App.Enums.BrowserSessionStatus'
      required:
        - id
        - status
        - state
      type: object
    Api.BuilderSession.Payload.ContractPayload.ContractPayload:
      additionalProperties: false
      properties:
        document_name:
          type: string
        languages:
          items:
            type: string
          type: array
        template_id:
          type: string
      required:
        - template_id
        - document_name
        - languages
      type: object
    App.Payload.Primitives.ParticipantPayload.ParticipantPayload:
      additionalProperties: false
      properties:
        display_name:
          type: string
        email:
          type: string
        external_id:
          type: string
      required: []
      type: object
    Api.BuilderSession.Payload.CreateBuilderSessionPayload.CreateBuilderSessionPayload:
      additionalProperties: false
      properties:
        contract:
          $ref: >-
            #/components/schemas/Api.BuilderSession.Payload.ContractPayload.ContractPayload
        handlers:
          $ref: >-
            #/components/schemas/App.Payload.Primitives.HandlersPayload.HandlersPayload
        participant:
          $ref: >-
            #/components/schemas/App.Payload.Primitives.ParticipantPayload.ParticipantPayload
        ui_language:
          $ref: '#/components/schemas/App.Enums.UiLanguage'
      required:
        - contract
        - handlers
      type: object
    App.Data.Primitives.ParticipantData.ParticipantData:
      additionalProperties: false
      properties:
        display_name:
          type:
            - string
            - 'null'
        email:
          type:
            - string
            - 'null'
        external_id:
          type:
            - string
            - 'null'
        _data_type:
          type:
            - string
            - 'null'
        id:
          type: string
        token:
          type: string
      required:
        - id
        - email
        - display_name
        - external_id
      type: object
    Api.BuilderSession.Data.BuilderSessionCreatedData.BuilderSessionCreatedData:
      additionalProperties: false
      properties:
        id:
          type: string
        participant:
          $ref: >-
            #/components/schemas/App.Data.Primitives.ParticipantData.ParticipantData
        url:
          type: string
      required:
        - id
        - url
        - participant
      type: object
    App.Enums.BuilderSessionStatus:
      enum:
        - pending
        - completed
        - deleted
      type: string
    Api.BuilderSession.Data.BuilderSessionData.BuilderSessionData:
      additionalProperties: false
      properties:
        id:
          type: string
        participants:
          items:
            $ref: >-
              #/components/schemas/App.Data.Primitives.ParticipantData.ParticipantData
          type: array
        _data_type:
          type: string
        status:
          $ref: '#/components/schemas/App.Enums.BuilderSessionStatus'
      required:
        - id
        - status
        - participants
      type: object
    Api.BuilderSession.Participant.Data.ParticipantAuthenticatedData.ParticipantAuthenticatedData:
      additionalProperties: false
      properties:
        id:
          type: string
        participant:
          $ref: >-
            #/components/schemas/App.Data.Primitives.ParticipantData.ParticipantData
        url:
          type: string
      required:
        - id
        - url
        - participant
      type: object
tags:
  - name: Workspaces
    description: >-
      Endpoint for fetching information about the authenticated workspace. It
      can be used to test if the API authentication works.
  - name: Templates
    description: >-
      Fetch a list of all available templates. Use this if you want to create a
      fully customized UI for selecting templates. If you prefer to use our
      ready-made UI, you can use the Template Browser instead.
  - name: Template browser
    description: >-
      Hosted UI for end users to select the appropriate template. Use this if
      you want to take advantage of our UI.
  - name: Builder
    description: Hosted UI for end users to draft their document.
