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

# Invite Members

> Invite one or more members to the organization. Optionally set role and default access (labels and orgPhones).




## OpenAPI

````yaml POST /members/invite
openapi: 3.0.3
info:
  title: API - Local
  description: >-
    #### Welcome to the official Postman collection of Periskope API


    Periskope APIs enable you automate actions on your WhatsApp phone, and the
    Periskope platform


    - Read more about the APIs & webhooks here -
    [https://docs.periskope.app/api-reference/introduction](https://docs.periskope.app/api-reference/introduction)
        
    - We encourage responsible usage of the APIs. Follow these best practices
    and recommendations for safe actions on WhatsApp -
    [https://docs.periskope.app/get-started/best-practices](https://docs.periskope.app/get-started/best-practices)
        

    #### Getting Started


    ##### Pre-requisites:


    1. **Sign up for a free account on Periskope:** To use the Periskope API,
    you need to have an active Periskope account. If you don’t have one, you can
    sign up for a 7-day free trial [here](https://console.periskope.app).
        
    2. **Scan the QR code from WhatsApp to connect your phone:** A connected
    phone is required to use the APIs
        
    3. **Go to** [Settings &gt;
    API](https://console.periskope.app/settings/api), and generate an API key
    for your organization - The API key is used to authenticate every request.
    Please keep this secure
        

    ##### Using Postman:


    1. **Fork the collection so you can edit values and test the APIs in your
    own postman environment:** To fork the collection, click on the three dots
    next to v1. Then click on create a fork (_shortcut: Ctrl + Alt + F)._
        
    2. **Update the value of the variables in the collection:**  
        \- Update the API key with the key generated in Step 3  
        \- Update the phone number with your connected number. This number will be added to the `x-phone` header across requests
        
        It must be in the format of country code+number, with no special characters or spaces _e.g. +91 98745 32456 becomes 919874532456_
        

    For any help or feedback, please contact us at
    [support@periskope.app](https://mailto:support@periskope.app), or ping us on
    [WhatsApp](https://what.sapp.link/periskope)
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.periskope.app/v1
security:
  - bearerAuth: []
tags:
  - name: contacts
  - name: tickets
  - name: tasks
  - name: phones
  - name: message
  - name: queue
  - name: chats
  - name: group
  - name: members
  - name: webhooks
paths:
  /members/invite:
    post:
      tags:
        - members
      summary: Invite Members
      description: >
        Invite one or more members to the organization. Optionally set role and
        default access (labels and orgPhones).
      operationId: inviteMembers
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - emails
              properties:
                emails:
                  type: array
                  items:
                    type: string
                  example:
                    - michael@dundermifflin.com
                    - dwight@dundermifflin.com
                  description: Array of email addresses to invite
                role:
                  type: string
                  example: member
                  description: >-
                    Role for invited users.  Allowed values are `admin` or
                    `member`. Defaults to `member`.
                labels:
                  type: array
                  items:
                    type: string
                  nullable: true
                  example:
                    - Sales
                    - Support
                  description: >-
                    Label names to grant access to a member(applies to `member`
                    role). You can provide the value as `null` if you want to
                    give access to all labels.
                orgPhones:
                  type: array
                  items:
                    type: string
                  nullable: true
                  example:
                    - '918824248940'
                  description: >-
                    Phone numbers (without @c.us) to grant access to a
                    member(applies to `member` role). You can provide the value
                    as `null` if you want to give access to all phone numbers.
            examples:
              Invite Members:
                value:
                  emails:
                    - test@example.com
                  role: member
                  labels:
                    - Sales
                  orgPhones:
                    - '918824248940'
      responses:
        '200':
          description: 200 OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  addedMember:
                    type: array
                    description: The list of added members
                    items:
                      type: object
                      properties:
                        created_at:
                          type: string
                          description: Timestamp when the member record was created
                          example: '2025-11-14T07:30:47.873008+00:00'
                        email:
                          type: string
                          description: Email address of the invited member
                          example: test@example.com
                        user_id:
                          type: string
                          nullable: true
                          description: User ID if the member has accepted the invite
                          example: null
                        invited_at:
                          type: string
                          description: Timestamp when the member was invited
                          example: '2025-11-14T07:30:47.873008+00:00'
                        invited_by:
                          type: string
                          nullable: true
                          description: ID of the user who sent the invitation
                          example: null
                        org_id:
                          type: string
                          description: Organization ID that the member belongs to
                          example: 03a52dbe-b8af-47c5-9fd1-e5a622680cad
                        role:
                          type: string
                          description: Role assigned to the member (admin or member)
                          example: member
                        member_image:
                          type: string
                          nullable: true
                          description: Profile image URL of the member
                          example: null
                        member_name:
                          type: string
                          nullable: true
                          description: Display name of the member
                          example: null
                        is_active:
                          type: boolean
                          description: Whether the member account is active
                          example: true
                        member_color:
                          type: string
                          nullable: true
                          description: Color code assigned to the member for UI display
                          example: '#DB2777'
                        label_ids:
                          type: array
                          items:
                            type: string
                          description: Array of label IDs the member has access to
                          example:
                            - label-uvzfbjfgwjuphhff
                        org_phones:
                          type: array
                          items:
                            type: string
                          description: Array of phone numbers the member has access to
                          example:
                            - 918824248940@c.us
                        is_owner:
                          type: boolean
                          nullable: true
                          description: Whether the member is an organization owner
                          example: null
                        preferences:
                          type: object
                          description: User interface preferences
                          properties:
                            left_sidebar_open:
                              type: boolean
                              description: Whether left sidebar is open by default
                              example: false
                            right_sidepanel_open:
                              type: boolean
                              description: Whether right sidepanel is open by default
                              example: true
                            sync_wa_unread_count:
                              type: boolean
                              description: Whether to sync WhatsApp unread count
                              example: true
                        is_online:
                          type: boolean
                          nullable: true
                          description: Whether the member is currently online
                          example: null
                        member_metadata:
                          type: object
                          additionalProperties: true
                          description: Additional custom metadata for the member
                          example: {}
              examples:
                200 OK:
                  value:
                    addedMembers:
                      - created_at: '2025-11-18T05:09:07.481252+00:00'
                        email: test@example.com
                        user_id: null
                        invited_at: '2025-11-18T05:09:07.481252+00:00'
                        invited_by: null
                        org_id: 03a52dbe-b8af-47c5-9fd1-e5a622680cad
                        role: member
                        member_image: null
                        member_name: null
                        is_active: true
                        member_color: '#25D366'
                        label_ids:
                          - label-uvzfbjfgwjuphhff
                        org_phones:
                          - 918824248940@c.us
                        is_owner: null
                        preferences:
                          left_sidebar_open: false
                          right_sidepanel_open: true
                          sync_wa_unread_count: true
                        is_online: null
                        member_metadata: {}
                      - created_at: '2025-11-16T11:38:10.43923+00:00'
                        email: test1@example.com
                        user_id: null
                        invited_at: '2025-11-16T11:38:10.43923+00:00'
                        invited_by: null
                        org_id: 03a52dbe-b8af-47c5-9fd1-e5a622680cad
                        role: member
                        member_image: null
                        member_name: null
                        is_active: true
                        member_color: '#FA6533'
                        label_ids:
                          - label-uvzfbjfgwjuphhff
                        org_phones:
                          - 918824248940@c.us
                        is_owner: null
                        preferences:
                          left_sidebar_open: false
                          right_sidepanel_open: true
                          sync_wa_unread_count: true
                        is_online: null
                        member_metadata: {}
                      - created_at: '2025-11-16T11:38:10.43923+00:00'
                        email: test2@example.com
                        user_id: null
                        invited_at: '2025-11-16T11:38:10.43923+00:00'
                        invited_by: null
                        org_id: 03a52dbe-b8af-47c5-9fd1-e5a622680cad
                        role: member
                        member_image: null
                        member_name: null
                        is_active: true
                        member_color: '#06CF9C'
                        label_ids:
                          - label-uvzfbjfgwjuphhff
                        org_phones:
                          - 918824248940@c.us
                        is_owner: null
                        preferences:
                          left_sidebar_open: false
                          right_sidepanel_open: true
                          sync_wa_unread_count: true
                        is_online: null
                        member_metadata: {}
                    errors: []
      x-codeSamples:
        - lang: TypeScript
          label: Node.js
          source: |-
            import { PeriskopeApi } from '@periskope/periskope-client';

            const client = new PeriskopeApi({
              authToken: 'YOUR_API_KEY',
            });

            async function inviteMembers() {
              const response = await client.members.invite({
                emails: ['test@example.com'],
                role: 'member',
                labels: ['Sales'],
                orgPhones: ['918824248940']
              });

              console.log(response);
            }

            inviteMembers();
        - lang: cURL
          label: cURL
          source: |-
            curl -X POST \
              https://api.periskope.app/v1/members/invite \
              -H 'Authorization: Bearer <token>' \
              -H 'Content-Type: application/json' \
              -d '{
                "emails": ["test@example.com"],
                "role": "member",
                "labels": ["Sales"],
                "orgPhones": ["918824248940"]
              }'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````