> For the complete documentation index, see [llms.txt](https://developer.perculus.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.perculus.com/services/participant-management/attandee-add/guests.md).

# Guests

{% hint style="danger" %}
**Important Note!**\
\
Constructor Groups’ V1 API has been retired and is no longer available to new customers. Please use the Groups V2 API going forward.\
\
Link to V2 API documentation: <https://developer.perculus.com/v2-en>
{% endhint %}

{% hint style="danger" %}
Adding a guest participant will deprive you from <mark style="color:red;">some</mark> functionalities as opposed to adding an existing user to a session as a participant.
{% endhint %}

External participants are attendees of a session that doesn't belong to an account. Below, you can see the parameters which you can send:

<table><thead><tr><th>Parameter</th><th width="161">Type</th><th width="158">Required</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td>name</td><td>string</td><td>Yes</td><td>n/a</td><td>Name of the participant</td></tr><tr><td>surname</td><td>string</td><td>Yes</td><td>n/a</td><td>Surname of the participant</td></tr><tr><td>email</td><td>string</td><td>Yes</td><td>n/a</td><td>Email address of the participant</td></tr><tr><td>mobile</td><td>string</td><td>No</td><td>null</td><td>Mobile of the participant</td></tr><tr><td>role</td><td>string</td><td>No</td><td>u</td><td>Role of the participant(<a href="/pages/s7xHSgEOsXGduC8JhoWN">see</a>)</td></tr></tbody></table>

{% hint style="danger" %}
`email` parameter is a unique constraint for a session, therefore, if there exists a participant with that email, the call will update the existing participant.
{% endhint %}

**Example Payload:**

{% tabs %}
{% tab title="CURL" %}

```bash
curl --location --request POST \
'https://<DOMAIN>/xapi/session/<SESSION_ID>/attendees' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'Content-Type: application/json' \
--data '[
    {
        "name": "John",
        "surname": "Doe",
        "email": "john.doe@example.com",
        "role" "a"
    }
]'
```

{% endtab %}

{% tab title="Python" %}

```python
from perculus_sdk.client import APIClient

# API client
client = APIClient()
...

# Add a Guest Attendee
attendee = client.attendees.add_attendee("<SESSION_ID>", {
    "name": "John",
    "surname": "Doe",
    "email": "john.doe@example.com",
    "role" "a"
})
print(attendee)

# Add Multiple Guest Attendees
attendees = client.attendees.add_multiple("<SESSION_ID>", [
    {
        "name": "John",
        "surname": "Doe",
        "email": "john.doe@example.com"
    },
    {
        "name": "John",
        "surname": "Doe2",
        "email": "john.doe2@example.com",
        "role" "a"
    }
])
print(attendees)
```

{% endtab %}

{% tab title="C#" %}

```
// ASAP :)
```

{% endtab %}

{% tab title="NodeJS" %}

```javascript
import APIClient from "perculus-sdk"

// API client
const client = new APIClient()
...

// Add an attendee
const attendee = client.attendees.addAttendee("<SESSION_ID>", "<USER_ID>")
console.log(attendee)

// Add Multiple Attendees
const attendees = client.attendees.addMultipleAttendees("<SESSION_ID>", [
    {
        "name": "John",
        "surname": "Doe",
        "email": "john.doe@example.com",
        "role" "a"
    }
])
console.log(attendees)
```

{% endtab %}

{% tab title="GO" %}

```
// ASAP :)
```

{% endtab %}
{% endtabs %}

### Creating an external participant
