# Creating attendees

There are two scopes that can be used to create Event Attendees:

* Admin scope (using the **System scope** access token);
* Anonymous scope (without using any access tokens);

### Admin scope

To create event attendees using the admin scope, you must have a **System scope** access token with full access to the company or event environment. You must have in hands the following query attributes: `tokenID` `eventID`, and the following body attributes: `name` and `username`.

* `name` is the Attendee name;
* `username` is an username, its value can be an email address -- recommended in case you have `username` disabled in your event settings;

#### Example

The endpoint that you should use is `event.person.bind` on RCP or `event/person/bind` on RESTful.

Here is how to create an attendee:

```sh
curl --request POST \
     --url 'https://api.inevent.com/?action=event.person.bind&eventID=YOUR_EVENT_ID' \
     --header 'Accept: application/json' \
     --header 'Content-Type: application/x-www-form-urlencoded' \
     --data name=Mauricio%20Giordano&username=mauriciogior&company=InEvent
```

You can also provide extra parameters to be added directly in the creation of the attendee (they are all optional):

| Field name    | Description                                                                                                                                                                                                                          |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| email         | The attendee email address. If you leave this field empty **and** the username is an email, it will be used the username as its value automatically.                                                                                 |
| role          | The attendee job title.                                                                                                                                                                                                              |
| company       | The attendee company.                                                                                                                                                                                                                |
| telephone     | The attendee telephone.                                                                                                                                                                                                              |
| origin        | The origin of the creation (can be any string -- "my-api-integration" for instance). Useful to track where attendees came from.                                                                                                      |
| createSpeaker | Should it create a speaker profile for this attendee (accepts boolean **0** or **1**, defaults to 0).                                                                                                                                |
| level         | A numeric representation of the attendee permission level within the event environment. Defaults to `LEVEL_USER`. You can find a mapping [here](https://developers.inevent.com/docs/permission-levels#permission-level-api-mapping). |

#### Response

Once you create the attendee, you will get a response similar to the following one:

```json
{
  "count": 1,
  "data": [
    {
      "username": "mauriciogior",
      "facebookID": "0",
      "linkedInID": "",
      "twitterID": "",
      "email": "",
      "telephone": "",
      "qrCode": "31cb6bbc7e13bb9b5e1d2eb4e403f59d77fda4b004da0c82fdf1ed5d71d97d8c",
      "ebQrCode": "",
      "nfc": "",
      "eventID": "5",
      "personID": "185",
      "firstName": "Mauricio",
      "lastName": "Giordano",
      "name": "Mauricio Giordano",
      "personName": "Mauricio Giordano",
      "role": "",
      "company": "InEvent",
      "summary": "",
      "image": "",
      "headline": " @ InEvent",
      "personHeadline": " @ InEvent",
      "city": "",
      "facebook": "",
      "linkedIn": "",
      "twitter": "",
      "instagram": "",
      "website": "",
      "position": "42",
      "level": "1",
      "ebUserID": "",
      "mkUserID": "0",
      "approved": "1",
      "paid": "0",
      "rsvp": "-1",
      "present": "0",
      "message": "",
      "private": "0",
      "meetingQuotaID": "0",
      "meetingAutoConfirm": "1",
      "engagement": "0",
      "language": "en",
      "personLanguage": "en",
      "origin": "panel",
      "salesforceID": "",
      "salesforceType": "",
      "hubspotID": "",
      "enrollmentDate": "1634691218",
      "updatedDate": "",
      "meetingQuotaName": "",
      "meetingQuotaAmount": "0",
      "device": "none",
      "downloaded": "0",
      "favorite": "0",
      "ally": "0",
      "isSponsor": "0",
      "prints": "0",
      "profileID": "",
      "ticketID": "",
      "assistantEmail": "",
      "ticketName": "",
      "ticketEntrance": "",
      "tags": [],
      "speakerID": ""
    }
  ]
}
```

### Anonymous scope

To create an attendee using the anonymous scope, you will need an event with proper settings that allows users to enroll without a **ticket** or an **invite** (although it's doable using the **invite** attribute as long as the email is on your Invitees List). You must have in hands the following query attribute: `eventID`, and the following body attributes: `firstName`, `lastName`, `email` and `feedbackContent`.

* `firstName` is the Attendee first name;
* `lastName` is the Attendee last name;
* `email` is the Attendee email;
* `feedbackContent` is an Array with custom fields (accepts empty array in case no required custom fields exist);

{% hint style="info" %}

### Custom fields

In case you have **required** custom fields, you must send them through the **feedbackContent** as an Array of Objects with the following attributes: *feedbackID* and *value*.

**Example:**\
`[ {"feedbackID": "1234", "value": "My answer 1"}, {"feedbackID": "2345", "value": "My answer 2"} ]`

In case you have an `API Field` key set for your custom field, you can use the following format:\
`{"f_question_1": "My answer 1", "f_question_2": "My answer 2"}`

Please note that in this case, it should be an Object instead of an Array.
{% endhint %}

#### Example

The endpoint that you should use is `form.respondRegistration` on RCP or `form/respondRegistration` on RESTful.

Here is how to create an attendee:

```sh
curl --request POST \
     --url 'https://api.inevent.com/?action=form.respondRegistration&eventID=YOUR_EVENT_ID' \
     --header 'Accept: application/json' \
     --header 'Content-Type: application/x-www-form-urlencoded' \
     --data firstName=Mauricio&lastName=Giordano&email=example@email.com&company=InEvent&feedbackContent=[]
```

You can also provide extra parameters to be added directly in the creation of the attendee (they are all optional):

| Field name | Description                                                                                                          |
| ---------- | -------------------------------------------------------------------------------------------------------------------- |
| username   | If you leave it blank, it will be the same as the email address.                                                     |
| invite     | In case you have the **Invite Requirement** setting enabled, you must send the email here as well.                   |
| image      | The URL of the attendee profile picture.                                                                             |
| password   | The attendee password to access the platform -- if you leave it blank, it will generate a random password.           |
| role       | The attendee job title.                                                                                              |
| company    | The attendee company.                                                                                                |
| telephone  | The attendee telephone.                                                                                              |
| rsvp       | A numeric boolean 0 or 1 (defaults to 0) to indicate if the attendee RSVPed to the event.                            |
| login      | A numeric boolean 0 or 1 (defaults to 0) to indicate if the response should contain the user access token `tokenID`. |
| tagIDs     | A list of `tagIDs` separated by comma (only Attendee-type tags are allowed).                                         |
| private    | A numeric boolean 0 or 1 (defaults to 0) to indicate if this user has its profile set as private.                    |

#### Response

Once you create the attendee, you will get a response similar to the following one:

```json
{
  "count": 1,
  "data": [
    {
      "username": "example@email.com",
      "facebookID": "0",
      "linkedInID": "",
      "twitterID": "",
      "email": "",
      "telephone": "",
      "qrCode": "31cb6bbc7e13bb9b5e1d2eb4e403f59d77fda4b004da0c82fdf1ed5d71d97d8c",
      "ebQrCode": "",
      "nfc": "",
      "eventID": "5",
      "personID": "185",
      "firstName": "Mauricio",
      "lastName": "Giordano",
      "name": "Mauricio Giordano",
      "personName": "Mauricio Giordano",
      "role": "",
      "company": "InEvent",
      "summary": "",
      "image": "",
      "headline": " @ InEvent",
      "personHeadline": " @ InEvent",
      "city": "",
      "facebook": "",
      "linkedIn": "",
      "twitter": "",
      "instagram": "",
      "website": "",
      "position": "42",
      "level": "1",
      "ebUserID": "",
      "mkUserID": "0",
      "approved": "1",
      "paid": "0",
      "rsvp": "-1",
      "present": "0",
      "message": "",
      "private": "0",
      "meetingQuotaID": "0",
      "meetingAutoConfirm": "1",
      "engagement": "0",
      "language": "en",
      "personLanguage": "en",
      "origin": "panel",
      "salesforceID": "",
      "salesforceType": "",
      "hubspotID": "",
      "enrollmentDate": "1634691218",
      "updatedDate": "",
      "meetingQuotaName": "",
      "meetingQuotaAmount": "0",
      "device": "none",
      "downloaded": "0",
      "favorite": "0",
      "ally": "0",
      "isSponsor": "0",
      "prints": "0",
      "profileID": "",
      "ticketID": "",
      "assistantEmail": "",
      "ticketName": "",
      "ticketEntrance": "",
      "tags": [],
      "speakerID": ""
    }
  ]
}
```
