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

# Create a signature request

> Uploads a PDF, places signature/text fields on it using normalized (0–1) coordinates, and returns a hosted signing link per signer. Signers open the link, sign in the browser, and meetergo returns a cryptographically signed (eIDAS) PDF with a tamper-evident audit page. No email is sent — use the returned signing links in your own flow.



## OpenAPI

````yaml /openapi.json post /v4/signatures
openapi: 3.0.0
info:
  title: meetergo Platform API
  description: >-
    Comprehensive scheduling API for creating users, managing availability,
    handling bookings, and connecting calendar providers. Enables seamless
    integration with external platforms and applications.
  version: version
  contact: {}
  termsOfService: https://www.meetergo.com/tos/
servers: []
security: []
tags:
  - name: User V4
    description: Create and manage users in your workspace
  - name: Meeting Type V4
    description: Configure meeting templates with durations, buffers, and conferencing
  - name: availability
    description: Manage weekly schedules and availability settings
  - name: Booking V4
    description: Create new bookings
  - name: Booking Availability V4
    description: Query available time slots for booking
  - name: Appointment V4
    description: Manage existing appointments
  - name: Attendee V4
    description: Manage attendee details and notes
  - name: Calendar Connections V4
    description: Connect and sync external calendars
  - name: Signatures V4
    description: >-
      Send PDFs for e-signature and download the signed, eIDAS-grade document
      (DocuSeal-compatible)
  - name: One Time Booking Link V4
    description: Create single-use booking links
  - name: availability-exception
    description: Override availability for specific dates
  - name: Booking Link V4
    description: Configure various booking page types
  - name: Personal Page V4
    description: Manage user profile pages
  - name: Handoff V4
    description: Reassign meetings to other hosts
  - name: Calendar Auth V4
    description: OAuth callbacks for calendar providers
  - name: CRM Deals
    description: >-
      Create, update, and track deals through pipeline stages (incl. per-deal
      activity history)
  - name: CRM Pipelines
    description: Manage pipelines and their stages
  - name: Queue V4
    description: Round-robin and queue-based routing (Beta)
  - name: Queue User Group V4
    description: Manage queue user groups (Beta)
  - name: Meeting Type Template V4
    description: Reusable meeting type configurations (Beta)
  - name: Attendee Pending V4
    description: Manage pending attendee approvals (Beta)
  - name: Provisional Booking V4
    description: Manage provisional/unconfirmed bookings (Beta)
paths:
  /v4/signatures:
    post:
      tags:
        - Signatures V4
      summary: Create a signature request
      description: >-
        Uploads a PDF, places signature/text fields on it using normalized (0–1)
        coordinates, and returns a hosted signing link per signer. Signers open
        the link, sign in the browser, and meetergo returns a cryptographically
        signed (eIDAS) PDF with a tamper-evident audit page. No email is sent —
        use the returned signing links in your own flow.
      operationId: create
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSignatureRequestDto'
      responses:
        '201':
          description: Signature request created with a signing link per signer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignatureRequestResponseDto'
        '403':
          description: Requires an active API Platform subscription.
      security:
        - ApiUserHeader: []
        - JWT: []
        - ApiKey: []
components:
  schemas:
    CreateSignatureRequestDto:
      type: object
      properties:
        name:
          type: string
          maxLength: 200
          description: Document / submission name.
          example: Order confirmation
        file:
          type: string
          description: The source PDF, base64-encoded (max 20 MB decoded).
          example: JVBERi0xLjcKJ...
        fields:
          minItems: 1
          description: >-
            Fields to place on the document. Areas use normalized (0–1)
            coordinates with a top-left origin and 1-indexed pages — the same
            model as DocuSeal.
          type: array
          items:
            $ref: '#/components/schemas/SignatureFieldDto'
        signers:
          minItems: 1
          description: Signers (at least one).
          type: array
          items:
            $ref: '#/components/schemas/SignerInputDto'
        expiresAt:
          type: string
          description: ISO-8601 timestamp after which signing links stop working.
          example: '2026-12-31T23:59:59.000Z'
        language:
          type: string
          enum:
            - en
            - de
          description: 'Signing-page language. Supported: "en", "de". Defaults to English.'
          example: de
        completedRedirectUrl:
          type: string
          format: uri
          description: >-
            URL the signer is sent to after completing (DocuSeal
            `completed_redirect_url`).
          example: https://app.example.com/contracts/123/signed
      required:
        - name
        - file
        - fields
        - signers
    SignatureRequestResponseDto:
      type: object
      properties:
        id:
          type: string
          description: Signature request id.
        name:
          type: string
          description: Document name.
        status:
          type: string
          description: Overall status.
          enum:
            - pending
            - completed
            - cancelled
        signers:
          description: The signers and their signing links.
          type: array
          items:
            $ref: '#/components/schemas/SignerResponseDto'
        signedDocumentUrl:
          type: string
          nullable: true
          description: >-
            Time-limited download URL for the signed (audit-paged,
            cryptographically signed) PDF. Present once status is "completed".
        completedAt:
          format: date-time
          type: string
          nullable: true
          description: When all signers completed.
        expiresAt:
          format: date-time
          type: string
          nullable: true
          description: When signing links expire (null = never).
        createdAt:
          format: date-time
          type: string
          description: Creation time.
      required:
        - id
        - name
        - status
        - signers
        - createdAt
    SignatureFieldDto:
      type: object
      properties:
        name:
          type: string
          maxLength: 120
          description: Field name.
          example: signature
        type:
          type: string
          enum:
            - signature
            - initials
            - text
            - date
            - number
          description: Field type. Defaults to "signature".
          example: signature
        areas:
          minItems: 1
          description: One or more placements of this field across the document pages.
          type: array
          items:
            $ref: '#/components/schemas/SignatureAreaDto'
      required:
        - name
        - areas
    SignerInputDto:
      type: object
      properties:
        email:
          type: string
          maxLength: 320
          description: Signer email address.
          example: john.doe@example.com
        name:
          type: string
          maxLength: 200
          description: Signer display name.
          example: John Doe
        role:
          type: string
          maxLength: 120
          description: Role label, e.g. "First Party".
          example: First Party
    SignerResponseDto:
      type: object
      properties:
        id:
          type: string
          description: Signer id.
        email:
          type: string
          nullable: true
          description: Signer email.
        name:
          type: string
          nullable: true
          description: Signer name.
        role:
          type: string
          nullable: true
          description: Role label.
        status:
          type: string
          description: Signer status.
          enum:
            - pending
            - completed
        signingUrl:
          type: string
          description: >-
            The hosted signing link to send to this signer (the DocuSeal
            `embed_src` equivalent).
          example: https://cal.meetergo.com/s/V1StGXR8_Z5jdHi6B-myT
        openedAt:
          format: date-time
          type: string
          nullable: true
          description: When the signer opened the link.
        completedAt:
          format: date-time
          type: string
          nullable: true
          description: When the signer completed signing.
      required:
        - id
        - status
        - signingUrl
    SignatureAreaDto:
      type: object
      properties:
        x:
          type: number
          minimum: 0
          maximum: 1
          description: Left edge as a fraction of page width (0–1).
          example: 0.1
        'y':
          type: number
          minimum: 0
          maximum: 1
          description: Top edge as a fraction of page height (0–1), from the top.
          example: 0.8
        w:
          type: number
          minimum: 0
          maximum: 1
          description: Width as a fraction of page width (0–1).
          example: 0.3
        h:
          type: number
          minimum: 0
          maximum: 1
          description: Height as a fraction of page height (0–1).
          example: 0.08
        page:
          type: number
          minimum: 1
          description: Page number, 1-indexed (page 1 is the first page).
          example: 1
      required:
        - x
        - 'y'
        - w
        - h
        - page
  securitySchemes:
    ApiUserHeader:
      type: apiKey
      in: header
      name: x-meetergo-api-user-id
      description: >-
        User ID to act on behalf of. Platform API Keys only (required with an
        API Key unless the endpoint states otherwise). Requests authenticated
        with a Personal Access Token are rejected if this header names another
        user.
    JWT:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: JWT Bearer token for standard user authentication
    ApiKey:
      scheme: bearer
      bearerFormat: API Key
      type: http
      description: >-
        Bearer token: a Platform API Key (format: ak_live:<uuid>:<secret>) or a
        Personal Access Token (format: rgo-...). PATs always act as the token
        owner.

````