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

> ## Agent Instructions
> Flowsign is one word with a lowercase s.
> The REST API base URL is https://my.flowsign.app and every endpoint lives under /api/v1.
> When answering API questions, cite the HTTP method and endpoint path.
> API access needs the Enterprise plan and an API key with the API access permission.

# Add signing group members

> Adds workspace members to a signing group by user id, email, or both. Requires canManageSigningGroups.



## OpenAPI

````yaml /api-reference/openapi.json post /api/v1/signing-groups/{groupId}/members
openapi: 3.0.3
info:
  title: Flowsign API
  version: 1.0.0
  description: >-
    Public v1 API for Flowsign. Every endpoint is authenticated with a Bearer
    API key (prefix `fsk_`). Errors use `{ error, details? }`; success responses
    wrap payload data as `{ data }`.


    An organisation is divided into workspaces. A key is issued for one
    workspace and acts there on every request (see `GET /api/v1/workspaces`);
    `X-Workspace-Id` is optional and may only name that workspace. Packages,
    templates, contacts and members are scoped to the key's workspace.
servers:
  - url: https://my.flowsign.app
    description: Production
security:
  - ApiKey: []
paths:
  /api/v1/signing-groups/{groupId}/members:
    post:
      tags:
        - Signing groups
      summary: Add signing group members
      description: >-
        Adds workspace members to a signing group by user id, email, or both.
        Requires canManageSigningGroups.
      operationId: postSigning-groupsByGroupIdMembers
      parameters:
        - schema:
            type: string
          required: true
          name: groupId
          in: path
        - schema:
            type: string
            description: >-
              The workspace the key was issued for, as returned by `GET
              /api/v1/workspaces`. Optional: omitting it acts in the key's
              workspace, and any other id is rejected with 401.
          required: false
          name: x-workspace-id
          in: header
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                userIds:
                  type: array
                  items:
                    type: string
                    minLength: 1
                    description: A workspace member's user id.
                  maxItems: 100
                  description: >-
                    User ids of workspace members to add. Combined with
                    `emails`, at most 100 per call.
                emails:
                  type: array
                  items:
                    type: string
                    format: email
                    description: >-
                      A workspace member's email address. Matched
                      case-insensitively.
                  maxItems: 100
                  description: >-
                    Email addresses of workspace members to add. Combined with
                    `userIds`, at most 100 per call.
              description: >-
                Choose people by user id, email address, or both. At least one
                is required and at most 100 per call across both lists. Each
                person must be an active member of the workspace: if anyone is
                not, the call fails and nobody is added.
              example:
                userIds:
                  - 3f9d2c1e-7b4a-4e8f-9c21-5a6b7d8e9f01
                emails:
                  - tom.rangi@example.co.nz
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      added:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: The person's user id.
                              example: 3f9d2c1e-7b4a-4e8f-9c21-5a6b7d8e9f01
                            email:
                              type: string
                              description: The person's email address.
                              example: jane.ahu@example.co.nz
                            displayName:
                              type: string
                              nullable: true
                              description: >-
                                The person's display name. Null when they have
                                not set one.
                              example: Jane Ahu
                          required:
                            - id
                            - email
                            - displayName
                        description: People added to the group by this call.
                      alreadyMembers:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: The person's user id.
                              example: 3f9d2c1e-7b4a-4e8f-9c21-5a6b7d8e9f01
                            email:
                              type: string
                              description: The person's email address.
                              example: jane.ahu@example.co.nz
                            displayName:
                              type: string
                              nullable: true
                              description: >-
                                The person's display name. Null when they have
                                not set one.
                              example: Jane Ahu
                          required:
                            - id
                            - email
                            - displayName
                        description: >-
                          People in the request who were already members. Left
                          unchanged.
                    required:
                      - added
                      - alreadyMembers
                required:
                  - data
        '400':
          description: >-
            The request body is not valid JSON, or someone in it is not an
            active member of the workspace
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Caller's plan does not include this feature (publicApi / webhooks)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: API key present but caller lacks the required permission
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No signing group with that id in the workspace
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Request failed schema validation; details keyed by field
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded; see `Retry-After`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
          description: What went wrong, in plain words.
          example: 'Missing permission: canSendPackages'
        details:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Validation problems keyed by field path. Present only on 422
            responses.
          example:
            recipients.0.email:
              - Invalid email
      required:
        - error
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      bearerFormat: fsk_*

````