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

# Add Team Member

> Invite a new team member

Invite a new member to join your team workspace. This endpoint sends an invitation email to the specified user, granting them access to your team's scans, assets, and configurations based on the assigned role.

## Use Cases

* **Team Expansion**: Add new security team members or collaborators
* **Onboarding**: Automate new employee access provisioning
* **Contractor Access**: Grant temporary access to external consultants
* **Cross-Functional Collaboration**: Invite stakeholders from other departments
* **Automated Provisioning**: Integrate with HR systems for access management

## Required Information

To invite a team member, provide:

* **Email Address**: Valid email of the user to invite (must be unique)
* **Role**: Member's role and permission level
* **Custom Message** (optional): Personalized invitation message

## Available Roles

<Tabs>
  <Tab title="Owner">
    **Full Control**

    * Complete administrative access
    * Can delete the team
    * Manage billing and subscriptions
    * Add/remove any members
    * *Only one owner per team*
  </Tab>

  <Tab title="Admin">
    **Administrative Access**

    * Manage team settings
    * Add/remove members (except owner)
    * Configure integrations
    * Manage scans and assets
    * Cannot delete team or change billing
  </Tab>

  <Tab title="Member">
    **Standard Access**

    * Create and run scans
    * View and manage assets
    * Create templates
    * View team results
    * Cannot modify team settings
  </Tab>

  <Tab title="Viewer">
    **Read-Only Access**

    * View scans and results
    * View assets and vulnerabilities
    * View templates
    * Cannot create or modify anything
    * Ideal for stakeholders and auditors
  </Tab>
</Tabs>

## Best Practices

1. **Principle of Least Privilege**: Assign the minimum role necessary for the user's responsibilities
2. **Verification**: Double-check email addresses before sending invitations
3. **Role Review**: Periodically audit member roles and adjust as responsibilities change
4. **Onboarding Documentation**: Provide new members with documentation about your team's scanning policies
5. **Monitor Pending**: Track invitation acceptance and follow up on pending invites


## OpenAPI

````yaml post /v1/user/team/member
openapi: 3.1.0
info:
  title: PDCP API
  version: '1.0'
  summary: ProjectDiscovery Cloud Platform
  description: >-
    For more details, checkout
    https://docs.projectdiscovery.io/api-reference/editor/scan
servers:
  - url: https://api.projectdiscovery.io
    description: Production
  - url: https://api.dev.projectdiscovery.io
    description: Development
  - url: http://localhost:8085
    description: Localhost
security:
  - X-API-Key: []
paths:
  /v1/user/team/member:
    post:
      tags:
        - internal
      summary: Add Team Member
      description: Invite a new team member
      operationId: post-v1-user-team-member
      parameters:
        - schema:
            type: string
          in: header
          description: >-
            Retrieve the Team ID from:
            https://cloud.projectdiscovery.io/settings/team
          name: X-Team-Id
      requestBody:
        $ref: '#/components/requestBodies/AddTeamMemberRequest'
      responses:
        '200':
          $ref: '#/components/responses/MessageResponse'
        '400':
          $ref: '#/components/responses/MessageResponse'
        '401':
          $ref: '#/components/responses/MessageResponse'
        '403':
          $ref: '#/components/responses/MessageResponse'
        '500':
          $ref: '#/components/responses/MessageResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
      security:
        - X-API-Key: []
components:
  requestBodies:
    AddTeamMemberRequest:
      content:
        application/json:
          schema:
            type: object
            properties:
              email:
                type: string
            required:
              - email
  responses:
    MessageResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
            required:
              - message
    ErrorResponse:
      description: Example response
      content:
        application/json:
          schema:
            type: object
            required:
              - message
            properties:
              message:
                type: string
              kind:
                type: string
              code:
                type: string
              error:
                type: string
              error_id:
                type: string
              param:
                type: string
              status:
                type: integer
  securitySchemes:
    X-API-Key:
      name: X-API-Key
      type: apiKey
      in: header

````