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

# Add a Team Member

> Add an existing workspace user to a team by team ID. Useful for automating onboarding flows and team membership sync.



## OpenAPI

````yaml POST /teams/{teamId}/members
openapi: 3.0.0
info:
  title: Zeeg Public API
  description: >-
    Zeeg public API documentation.


    ## Authentication

    All endpoints require a Bearer token. You can generate an API token from
    [your Zeeg dashboard](https://app.zeeg.me/account/settings/api-access).


    Each token is scoped to specific permissions (e.g. `events:read`,
    `webhooks:write`). Make sure your token has the required scopes for the
    endpoints you want to use.


    ## Recommended Headers

    We recommend including the `Accept: application/json` header in all API
    requests to ensure you receive JSON responses.
  version: 2.0.0
  x-logo:
    url: https://app.zeeg.me/img/logo-dark.2ca83593.svg
    backgroundColor: '#f7f7f9'
    altText: zeeg
  contact:
    name: Zeeg Support
    email: support@zeeg.me
    url: https://zeeg.me/en/contact
  license:
    name: Proprietary
    url: https://zeeg.me/en/legal/terms
  termsOfService: https://zeeg.me/en/legal/terms
servers:
  - url: https://api.zeeg.me/v2
    description: Production
security:
  - bearer: []
tags:
  - name: Scheduled Events
    description: Management of events scheduled via Zeeg
  - name: Scheduling Pages
    description: Scheduling pages information and management
  - name: Availability Schedule
    description: Read and change availability for users
  - name: Webhooks
    description: Webhooks management
  - name: Notes
    description: Notes for scheduled events
  - name: Workspaces & Teams
    description: Workspace users and team member management
  - name: AI Agent
    description: AI Agent integration endpoints
  - name: Payloads
    description: Webhook payload schemas
  - name: CRM - Objects
    description: >-
      Discover the schema of CRM objects (standard and custom) including all
      attribute definitions
  - name: CRM - Companies
    description: Create, read, update, and delete CRM company records
  - name: CRM - People
    description: Create, read, update, and delete CRM person records
paths:
  /teams/{teamId}/members:
    post:
      tags:
        - Workspaces & Teams
      summary: Add a team member
      description: >-
        Adds an existing workspace user to a team. Identify the user by either
        their **email** or **slug** (provide one, not both).


        Targets are resolved within the team's organization; users that exist in
        another organization but not in this team's organization respond with
        `404 USER_NOT_FOUND`.


        Required scope: `teams:write`.
      operationId: post-teams-teamId-members
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: teamId
          required: true
          description: The UUID of the team.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  format: email
                  description: >-
                    Email of the user to add. Provide either email or slug, not
                    both.
                slug:
                  type: string
                  description: >-
                    Slug of the user to add. Provide either email or slug, not
                    both.
                role:
                  type: string
                  enum:
                    - member
                    - manager
                  description: Role to assign the user within the team.
              required:
                - role
            examples:
              Add by email:
                value:
                  email: marco.rossi@horizondigital.de
                  role: member
              Add by slug:
                value:
                  slug: marco-rossi
                  role: manager
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                      role:
                        type: string
                        enum:
                          - member
                          - manager
                      user:
                        type: object
                        properties:
                          uuid:
                            type: string
                            format: alphanumeric-id
                            description: Alphanumeric user identifier
                            example: QK566D4X49E8X78
                          firstName:
                            type: string
                          lastName:
                            type: string
                          email:
                            type: string
                            format: email
                          slug:
                            type: string
                      team:
                        type: object
                        properties:
                          uuid:
                            type: string
                            format: uuid
                            example: 73e4761b-5257-4e83-a807-974a3f2f3adc
                          title:
                            type: string
                          slug:
                            type: string
                      createdAt:
                        type: string
                        format: date-time
                      updatedAt:
                        type: string
                        format: date-time
              examples:
                Member added by email:
                  value:
                    success: true
                    data:
                      id: 17
                      role: member
                      user:
                        uuid: QK566D4X49E8X78
                        firstName: Marco
                        lastName: Rossi
                        email: marco.rossi@horizondigital.de
                        slug: marco-rossi
                      team:
                        uuid: 73e4761b-5257-4e83-a807-974a3f2f3adc
                        title: Customer Success
                        slug: customer-success
                      createdAt: '2026-04-10T09:00:00.000000Z'
                      updatedAt: '2026-04-10T09:00:00.000000Z'
                Member added by slug:
                  value:
                    success: true
                    data:
                      id: 18
                      role: manager
                      user:
                        uuid: QK566D4X49E8X78
                        firstName: Marco
                        lastName: Rossi
                        email: marco.rossi@horizondigital.de
                        slug: marco-rossi
                      team:
                        uuid: 73e4761b-5257-4e83-a807-974a3f2f3adc
                        title: Customer Success
                        slug: customer-success
                      createdAt: '2026-04-10T09:00:00.000000Z'
                      updatedAt: '2026-04-10T09:00:00.000000Z'
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: integer
              examples:
                Not authorized:
                  value:
                    success: false
                    message: >-
                      Only the team manager and the organization owner can add
                      members.
                    status: 403
        '404':
          description: User not found in the team's organization.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        example: USER_NOT_FOUND
                      message:
                        type: string
                        example: The user was not found.
              examples:
                User not found:
                  value:
                    success: false
                    error:
                      code: USER_NOT_FOUND
                      message: The user was not found.
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: integer
              examples:
                Already a member:
                  value:
                    success: false
                    message: The user is already a member of this team.
                    status: 409
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  errors:
                    type: object
              examples:
                Missing fields:
                  value:
                    message: Either email or slug is required.
                    errors:
                      email:
                        - Either email or slug is required.
                      slug:
                        - Either email or slug is required.
      security:
        - bearer: []
components:
  responses:
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Unauthenticated.
          examples:
            Unauthenticated:
              value:
                message: Unauthenticated.
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: ''

````