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

# Invite Project Members

> Invite people to the project by email, as a viewer or an owner. Each person gets the same invitation email as an invite from the app. An email that already has a Peec account gets access right away; anyone else gets access once they sign up from the email. An email that already has access or an open invitation lands in `skipped`, and the request never fails as a whole because of one item. Returns 403 when the company has turned off email invitations.



## OpenAPI

````yaml https://api.peec.ai/customer/v1/openapi/json post /members/invite
openapi: 3.0.3
info:
  title: Peec AI Customer API
  description: Development documentation
  version: 1.0.0
  contact:
    name: Peec AI Team
    email: support@peec.ai
servers:
  - url: https://api.peec.ai/customer/v1
security: []
paths:
  /members/invite:
    post:
      tags:
        - Project
      summary: Invite Project Members
      description: >-
        Invite people to the project by email, as a viewer or an owner. Each
        person gets the same invitation email as an invite from the app. An
        email that already has a Peec account gets access right away; anyone
        else gets access once they sign up from the email. An email that already
        has access or an open invitation lands in `skipped`, and the request
        never fails as a whole because of one item. Returns 403 when the company
        has turned off email invitations.
      operationId: postMembersInvite
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  description: Required if using a company api key
                  example: or_f45b94ba-5e35-4982-93ed-285e72ee14eb
                  type: string
                members:
                  minItems: 1
                  maxItems: 50
                  type: array
                  items:
                    type: object
                    properties:
                      email:
                        type: string
                        format: email
                        pattern: >-
                          ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                        description: Email address to send the invitation to.
                        example: jane.doe@example.com
                      role:
                        default: VIEWER
                        description: Role in the project. Defaults to `VIEWER`.
                        type: string
                        enum:
                          - OWNER
                          - VIEWER
                        example: VIEWER
                    required:
                      - email
                  description: Up to 50 people to invite.
              required:
                - members
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                project_id:
                  description: Required if using a company api key
                  example: or_f45b94ba-5e35-4982-93ed-285e72ee14eb
                  type: string
                members:
                  minItems: 1
                  maxItems: 50
                  type: array
                  items:
                    type: object
                    properties:
                      email:
                        type: string
                        format: email
                        pattern: >-
                          ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                        description: Email address to send the invitation to.
                        example: jane.doe@example.com
                      role:
                        default: VIEWER
                        description: Role in the project. Defaults to `VIEWER`.
                        type: string
                        enum:
                          - OWNER
                          - VIEWER
                        example: VIEWER
                    required:
                      - email
                  description: Up to 50 people to invite.
              required:
                - members
          multipart/form-data:
            schema:
              type: object
              properties:
                project_id:
                  description: Required if using a company api key
                  example: or_f45b94ba-5e35-4982-93ed-285e72ee14eb
                  type: string
                members:
                  minItems: 1
                  maxItems: 50
                  type: array
                  items:
                    type: object
                    properties:
                      email:
                        type: string
                        format: email
                        pattern: >-
                          ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                        description: Email address to send the invitation to.
                        example: jane.doe@example.com
                      role:
                        default: VIEWER
                        description: Role in the project. Defaults to `VIEWER`.
                        type: string
                        enum:
                          - OWNER
                          - VIEWER
                        example: VIEWER
                    required:
                      - email
                  description: Up to 50 people to invite.
              required:
                - members
      responses:
        '200':
          description: Per-item results, `index` naming the position in the request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  invited:
                    type: array
                    items:
                      type: object
                      properties:
                        index:
                          type: number
                        email:
                          type: string
                        role:
                          type: string
                          enum:
                            - OWNER
                            - VIEWER
                          description: >-
                            `VIEWER` can see the project's data. `OWNER` can
                            also change the project and manage its members.
                          example: VIEWER
                        access:
                          type: string
                          enum:
                            - granted
                            - pending
                          description: >-
                            `granted` when the email already has a Peec account
                            and can open the project now. `pending` until the
                            invitee signs up from the invitation email.
                      required:
                        - index
                        - email
                        - role
                        - access
                  skipped:
                    type: array
                    items:
                      type: object
                      properties:
                        index:
                          type: number
                        email:
                          type: string
                        reason:
                          type: string
                          enum:
                            - already_member
                            - already_invited
                            - duplicate
                          description: >-
                            `already_member` has access to the project,
                            `already_invited` has an open invitation to it, and
                            `duplicate` repeats an earlier email in the same
                            request.
                      required:
                        - index
                        - email
                        - reason
                  rejected:
                    type: array
                    items:
                      type: object
                      properties:
                        index:
                          type: number
                        email:
                          type: string
                        message:
                          type: string
                      required:
                        - index
                        - email
                        - message
                required:
                  - invited
                  - skipped
                  - rejected
                description: Per-item results, `index` naming the position in the request.
        '403':
          description: Response for status 403
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                required:
                  - message
      security:
        - APIKeyHeader: []
        - APIKeyQuery: []
        - BearerAuth: []
components:
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
    APIKeyQuery:
      type: apiKey
      in: query
      name: api_key
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.