Introduction
Welcome to the InvitePeople API Docs! You can use the InvitePeople API to access your organization's data in InvitePeople.
Getting started
Get your Client ID and secret
To get your Client ID and generate a Client secret log in as a Supervisor Administrator and go to the API Authentication section.
Click on Generate client secret
to generate a new Client secret. Please note that any previously generated client secrets will be revoked.
Authentication
Get API token
curl "https://invitepeople.com/api/v2/authentication/token" \
-X POST \
-F "client_id=$CLIENT_ID" \
-F "client_secret=$CLIENT_SECRET"
The above command returns JSON structured like this:
{
"token": "eyJhbGciOiIUI1NiJ9.eyJjbDllbnRfaWQi8I3NzVlNWQzC0zMTNkLTRkZItYj5ZS1iMUTAwNdZjY2YiLCJleHAiOjE2NzzMTQwMDV1.FzoyxZ5CbLB61hijd53L3wC-JFIJS7UTHpbw"
}
Use this endpoint to retrieve an API token. The token is valid for 24 hours.
HTTP Request
POST https://invitepeople.com/api/v2/authentication/token
Query Parameters
Parameter | Description |
---|---|
client_id required |
Your organization's Client ID. |
client_secret required |
Your organization's generated Client secret. |
Authorize
curl "https://invitepeople.com/api/v2/endpoint" \
-H "Authorization: Bearer $TOKEN"
InvitePeople expects for the API token to be included in all API requests to the server in a header that looks like the following:
Authorization: Bearer TOKEN
Filters and pagination
Filter Get all
endpoints
Example code for retriveing all records from a
Get all
endpoint.
require 'httparty'
def get_records(id_before: nil)
response = HTTParty.get(
"https://invitepeople.com/api/v2/#{@endpoint}",
headers: {
'Authorization': "Bearer #{@token}"
},
body: {
id_before: id_before
}
)
response.parsed_response
end
def get_all_records
all_records = records = get_records
while records.any?
records = get_records(id_before: records.last['id'])
all_records += records
end
all_records
end
All Get all
endpoints can be called with the same query parameters to filter and paginate the results. Results are always sorted descending by id
. The max number records in a single request is 1000.
Query Parameters
Property | Type | Description |
---|---|---|
limit optional |
integer |
The max number of records retrieved. Defaults to 1000 , which is the max number of records in a single request. |
id_before optional |
integer |
Get all records with a lower id . |
updated_after optional |
string |
Get all records that have been updated after some point in time. Should be a time string in ISO 8601 format. |
Organizations
Organization
The Organization object represents an organization in InvitePeople. When calling the API you will authenticate on behalf of an Organization and will get access to all Events and Participants under that Organization.
Properties
Property | Type | Description |
---|---|---|
name | string |
The name of the Organization. |
description | string |
A description of the Organization. |
client_id | string |
The ID used for API authentication of the Organization. |
custom_event_fields | object |
Custom fields that can be entered when a new Event is created. |
Get your Organization
curl "https://invitepeople.com/api/v2/organizations/me" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
{
"id": 1,
"name": "Dolor Ligula",
"description": "Etiam porta sem malesuada magna mollis euismod.",
"created_at": "2021-04-06T08:51:21.996+02:00",
"client_id": "20e8a24d-c69f-4c3b-9c2e-e22941c119a8",
"custom_event_fields" : [
{
"kind": "text_field",
"mandatory": true,
"name": "ut_enim_ad",
"title": "Ut enim ad"
},
{
"kind": "select",
"name": "nemo_enim_ipsam",
"title": "Nemo enim ipsam",
"values": [
"Accusantium",
"Laudantium",
"Doloremque"
]
}
]
}
Use this endpoint to retrieve your own organization.
HTTP Request
GET https://invitepeople.com/api/v2/organizations/me
Events
Event
The Event object represents an event with a name, time and place. An Event has many Participants.
Properties
Property | Type | Description |
---|---|---|
slug | string |
The URL slug of the Event. |
name | string |
The name of the Event. |
country | string |
The country of the Event's location represented by an ISO 3166-1 alpha-2 code. |
address | string |
The address of the Event. |
zip | string |
The zip code of the Event. |
city | string |
The city of the Event. |
place | string |
The name of the Event's place or location. |
description | object |
The description of the Event for the registration page. An object with the Event's language codes as keys and the translated descriptions as values. |
start_time | string |
The start time of the Event in ISO 8601 format. |
end_time | string |
The end time of the Event in ISO 8601 format. |
published | boolean |
Indicates if the Event is published or not. |
lang | string |
The default language of the Event represented by an ISO 639-1 code. |
statistics | object |
Sums up the number of Participants per status. Not included in the Get all Events endpoint. |
custom_event_fields_data | object |
Custom field values that can be entered when a new Event is created. |
data_minimization_status | string |
The data minimization status of the Event. Possible values are null , pending_anonymization , pending_deletion , anonymized , and exempted . |
Get all Events
curl "https://invitepeople.com/api/v2/events" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
[
{
"id": 1,
"slug": "ff361767ffe2",
"name": "Sollicitudin Lorem",
"created_at": "2017-11-20T13:55:42.425+01:00",
"updated_at": "2018-02-14T13:15:36.789+01:00",
"country": "SE",
"address": "Lorem Dolor 36",
"zip": "123 45",
"city": "Sollicitudin",
"place": "Condimentum Vulputate",
"published": true,
"description": {
"sv": "<p>Maecenas faucibus mollis interdum. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>",
"en": "<p>Curabitur blandit tempus porttitor. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.</p>"
},
"start_time": "2017-05-31T00:00:00.000+02:00",
"end_time": "2017-06-02T23:59:00.000+02:00",
"lang": "sv",
"organizer": {
"id": 1,
"name": "Magna",
"description": {
"sv": "Vulputate Elit Cras Tristique Quam",
"en": "Nibh Sollicitudin Egestas Risus Bibendum"
},
"email": "sollicitudin@invitepeople.com",
"website": "https://invitepeople.com/sollicitudin/"
},
"custom_event_fields_data" : {
"ut_enim_ad": "Qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non."
"nemo_enim_ipsam": "Laudantium",
},
"data_minimization_status" : null,
"department" : {
"id": 1,
"external_id": null,
"name": "Perspiciatis"
},
"event_template" : {
"id": 1,
"name": "Voluptas nulla"
},
"event_images" : [
{
"kind": "share_image",
"url": "http://storage.invitepeople.com/000/000/share_image.png"
}
]
},
{
"id": 2,
"slug": "dd761347ee72",
"name": "Vestibulum Bibendum",
"created_at": "2017-11-20T13:55:42.425+01:00",
"updated_at": "2018-02-14T13:15:36.789+01:00",
"country": "SE",
"address": "Dapibus Quam 36",
"zip": "123 45",
"city": "Ullamcorper",
"place": "Mollis Sem",
"published": true,
"description": {
"sv": "<p>Nulla vitae elit libero, a pharetra augue. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>",
"en": "<p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Fusce dapibus, tellus ac.</p>"
},
"start_time": "2017-05-31T00:00:00.000+02:00",
"end_time": "2017-06-02T23:59:00.000+02:00",
"lang": "sv",
"organizer": {
"id": 2,
"name": "Ipsum",
"description": {
"sv": "Venenatis Pharetra Sit Ornare Cras",
"en": "Purus Commodo Mollis Dolor Condimentum"
},
"email": "vestibulum@invitepeople.com",
"website": "https://invitepeople.com/vestibulum/"
},
"custom_event_fields_data": {},
"data_minimization_status": null,
"event_images": []
}
]
Use this endpoint to retrieve all Events in your organization.
HTTP Request
GET https://invitepeople.com/api/v2/events
Query Parameters
Property | Type | Description |
---|---|---|
limit optional |
integer |
The max number of records retrieved. Defaults to 1000 , which is the max number of records in a single request. |
id_before optional |
integer |
Get all records with a lower id . |
updated_after optional |
string |
Get all records that have been updated after some point in time. Should be a time string in ISO 8601 format. |
Read more about filters and pagination here
Get a specific Event
curl "https://invitepeople.com/api/v2/events/1" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
{
"id": 1,
"slug": "ff361767ffe2",
"name": "Sollicitudin Lorem",
"created_at": "2017-11-20T13:55:42.425+01:00",
"updated_at": "2018-02-14T13:15:36.789+01:00",
"country": "SE",
"address": "Lorem Dolor 36",
"zip": "123 45",
"city": "Sollicitudin",
"place": "Condimentum Vulputate",
"published": true,
"description": {
"sv": "<p>Maecenas faucibus mollis interdum. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>",
"en": "<p>Curabitur blandit tempus porttitor. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.</p>"
},
"start_time": "2017-05-31T00:00:00.000+02:00",
"statistics": {
"participants": {
"admin_disabled": 10,
"confirmed": 1235,
"new": 567
}
},
"end_time": "2017-06-02T23:59:00.000+02:00",
"lang": "sv",
"organizer": {
"id": 1,
"name": "Magna",
"description": {
"sv": "Vulputate Elit Cras Tristique Quam",
"en": "Nibh Sollicitudin Egestas Risus Bibendum"
},
"email": "sollicitudin@invitepeople.com",
"website": "https://invitepeople.com/sollicitudin/"
},
"custom_event_fields_data" : {
"ut_enim_ad": "Qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non."
"nemo_enim_ipsam": "Laudantium",
},
"data_minimization_status" : null,
"department" : {
"id": 1,
"external_id": null,
"name": "Perspiciatis"
},
"event_template" : {
"id": 1,
"name": "Voluptas nulla"
},
"event_images" : [
{
"kind": "share_image",
"url": "http://storage.invitepeople.com/000/000/share_image.png"
}
]
}
Use this endpoint to retrieve a specific Event.
HTTP Request
GET https://invitepeople.com/api/v2/events/<ID>
URL Parameters
Parameter | Description |
---|---|
ID required |
The ID of the Event. |
Ticket Types
Ticket Type
The Ticket Type object represents a Ticket category for an Event. The Ticket Type can connect Tickets to the Event or to a specific Seminar.
Properties
Property | Type | Description |
---|---|---|
description | object |
The name of the Ticket Type. An object with the Event's language codes as keys and the translated names as values. |
kind | string |
Possible values are entrance (Entrance ticket), exhibitor_card (Exhibitor card), speaker_card (Speaker card), addon (Additional ticket), and null (Seminar ticket). |
external_id | string |
An external ID from another system. |
price | string |
Price in the in the Event's currency. The value is formatted as a decimal number. |
selling_start_time | string |
Date and time sale starts for this Ticket Type. The value should be in ISO 8601 format. |
selling_end_time | string |
Date and time sales end for this Ticket Type. The value should be in ISO 8601 format. |
min_purchase_amount | integer |
Minimum number of tickets per Order. |
max_purchase_amount | integer |
Maximum number of tickets per Order. |
amount | integer |
Number of available Tickets of this Ticket Type. |
vat_percentage | string |
VAT rate (percentage) for this Ticket Type. The value is formatted as a decimal number. |
visibility | string |
Indicates the visibility of this Ticket type. Possible values are Public , Private , and null . |
caption | object |
A header used to categorise the Ticket Type. An object with the Events language codes as keys and the translated names as values. |
personal_addon | boolean |
Indicates if this Ticket Type can be added to individuals in the purchase process. Only applies to Ticket Types with kind other (Additional ticket). |
statistics | object |
Sums up the number of Ticket's per status of the Ticket Type. Not included in Get All Ticket Types endpoint. |
Get all Ticket Types
curl "https://invitepeople.com/api/v2/events/1/ticket_types" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
[
{
"id": 1,
"description": {
"sv": "Mattis Purus",
"en": "Sollicitudin Ullamcorper"
},
"created_at": "2021-04-06T07:37:21.996+02:00",
"updated_at": "2021-04-06T07:37:22.064+02:00",
"kind": "entrance"
},
{
"id": 2,
"description": {
"sv": "Ridiculus Venenatis Fusce",
"en": "Ridiculus Venenatis Fusce"
},
"created_at": "2021-04-06T08:51:21.996+02:00",
"updated_at": "2021-04-06T08:51:22.064+02:00",
"kind": null,
"external_id": "214322",
"price": "123.45",
"selling_start_time": "2021-04-06T07:37:21.996+02:00",
"selling_end_time": "2021-04-07T07:37:21.996+02:00",
"min_purchase_amount": 0,
"max_purchase_amount": 5,
"amount": 500,
"vat_percentage": "25.0",
"visibility": "Public",
"caption": {
"sv": "Captionus Astartes",
"en": "Captionus Astartes"
},
"personal_addon": false,
"seminar": {
"id": 1,
"slug": "ee74234991fe",
"name": "Ridiculus Venenatis Fusce",
"location": "Condimentum Inceptos",
"start_time": "2018-10-11T14:05:00.000+02:00",
"end_time": "2018-10-11T14:30:00.000+02:00",
"code": "001"
}
},
{
"id": 3,
"description": {
"sv": "Ullamcorper Sit Tellus",
"en": "Ullamcorper Sit Tellus"
},
"created_at": "2021-04-09T10:30:01.996+02:00",
"updated_at": "2021-04-09T10:30:01.064+02:00",
"kind": null,
"external_id": "214323",
"price": "110.15",
"selling_start_time": "2021-04-06T07:37:21.996+02:00",
"selling_end_time": "2021-04-07T07:37:21.996+02:00",
"min_purchase_amount": 0,
"max_purchase_amount": 5,
"amount": 250,
"vat_percentage": "25.0",
"visibility": "Public",
"caption": {
"sv": "Captionus Astartes",
"en": "Captionus Astartes"
},
"personal_addon": false,
"seminar": {
"id": 2,
"slug": "fe741fc771dd",
"name": "Ullamcorper Sit Tellus",
"location": "Mattis Pellentesque",
"start_time": "2018-10-11T15:35:00.000+02:00",
"end_time": "2018-10-11T16:00:00.000+02:00",
"code": "002"
}
}
]
Use this endpoint to retrieve all Ticket Types for an Event.
HTTP Request
GET https://invitepeople.com/api/v2/events/<EVENT_ID>/ticket_types
URL Parameters
Parameter | Description |
---|---|
EVENT_ID required |
The ID of the Event. |
Query Parameters
Property | Type | Description |
---|---|---|
limit optional |
integer |
The max number of records retrieved. Defaults to 1000 , which is the max number of records in a single request. |
id_before optional |
integer |
Get all records with a lower id . |
updated_after optional |
string |
Get all records that have been updated after some point in time. Should be a time string in ISO 8601 format. |
Read more about filters and pagination here
Get a specific Ticket Type
curl "https://invitepeople.com/api/v2/ticket_types/1" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
{
"id": 1,
"description": {
"sv": "Mattis Purus",
"en": "Sollicitudin Ullamcorper"
},
"created_at": "2021-04-06T07:37:21.996+02:00",
"updated_at": "2021-04-06T07:37:22.064+02:00",
"kind": "entrance",
"external_id": "214322",
"price": "123.45",
"selling_start_time": "2021-04-06T07:37:21.996+02:00",
"selling_end_time": "2021-04-07T07:37:21.996+02:00",
"min_purchase_amount": 0,
"max_purchase_amount": 5,
"amount": 500,
"vat_percentage": "25.0",
"visibility": "Public",
"caption": {
"sv": "Captionus Astartes",
"en": "Captionus Astartes"
},
"personal_addon": false,
"statistics": {
"Paid": 154,
"Reserved": 11
}
}
Use this endpoint to retrieve a specific Ticket Type.
HTTP Request
GET https://invitepeople.com/api/v2/ticket_types/<ID>
URL Parameters
Parameter | Description |
---|---|
ID required |
The ID of the Ticket Type. |
Partner Codes
Partner Code
The Partner Code object represents a promo code for an Event. A Partner Code connects to Ticket Types through the Partner Code Ticket Type object.
Properties
Property | Type | Description |
---|---|---|
code | string |
The code of the Partner Code. |
header | string |
The header of the Partner Code. An object with the Event's language codes as keys and the translated headers as values. |
description | string |
The description of the Partner Code. An object with the Event's language codes as keys and the translated descriptions as values. |
ticket_header | string |
The headline for the ticket section of the Partner Code. An object with the Event's language codes as keys and the translated ticket headers as values. |
show_regular_price | boolean |
Indicates if regular prices are shown on the promo code page. |
include_eventsite_description | boolean |
Indicates if the eventsite description is shown on the promo code page. |
invited_only | boolean |
Indicates if only invited participants are allowed to register. |
force_min_purchase_amount | boolean |
Indicates if buyers are forced to select the minimum allowed amount of tickets. |
max_sold_tickets_limit | integer |
The total allowed number of tickets. |
Get all Partner Codes
curl "https://invitepeople.com/api/v2/events/1/partner_codes" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
[
{
"code" : "promo4561",
"created_at" : "2022-08-31T09:14:13.682+02:00",
"description" : {
"en" : ""
},
"force_min_purchase_amount" : false,
"header" : {
"en" : ""
},
"id" : 1,
"include_eventsite_description" : false,
"invited_only" : false,
"max_sold_tickets_limit" : null,
"partner_code_ticket_types" : [
{
"amount" : null,
"id" : 1,
"max_purchase_amount" : 1,
"max_purchase_amount_per_person" : 1,
"min_purchase_amount" : 1,
"price" : "0.0",
"selling_end_time" : null,
"selling_start_time" : null,
"ticket_type" : {
"description" : {
"en" : "Coffee"
},
"id" : 1,
"kind" : "addon"
}
},
{
"amount" : null,
"id" : 2,
"max_purchase_amount" : 1,
"max_purchase_amount_per_person" : 1,
"min_purchase_amount" : 1,
"price" : "0.0",
"selling_end_time" : null,
"selling_start_time" : null,
"ticket_type" : {
"description" : {
"en" : "Lunch"
},
"id" : 2,
"kind" : "addon"
}
}
],
"show_regular_price" : true,
"ticket_header" : {
"en" : ""
},
"updated_at" : "2024-08-16T10:38:56.441+02:00"
},
{
"code" : "vip37",
"created_at" : "2022-05-06T15:41:32.383+02:00",
"description" : {
"en" : "<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.</p>"
},
"force_min_purchase_amount" : false,
"header" : {
"en" : ""
},
"id" : 2,
"include_eventsite_description" : false,
"invited_only" : true,
"max_sold_tickets_limit" : 100,
"partner_code_ticket_types" : [
{
"amount" : null,
"id" : 3,
"max_purchase_amount" : 1,
"max_purchase_amount_per_person" : 1,
"min_purchase_amount" : 1,
"price" : "0.0",
"selling_end_time" : null,
"selling_start_time" : null,
"ticket_type" : {
"description" : {
"en" : "VIP"
},
"id" : 3,
"kind" : "entrance"
}
}
],
"show_regular_price" : false,
"ticket_header" : {
"en" : ""
},
"updated_at" : "2024-05-10T05:43:42.787+02:00"
}
]
Use this endpoint to retrieve all Partner Codes for an Event.
HTTP Request
GET https://invitepeople.com/api/v2/events/<EVENT_ID>/partner_codes
URL Parameters
Parameter | Description |
---|---|
EVENT_ID required |
The ID of the Event. |
Query Parameters
Property | Type | Description |
---|---|---|
limit optional |
integer |
The max number of records retrieved. Defaults to 1000 , which is the max number of records in a single request. |
id_before optional |
integer |
Get all records with a lower id . |
updated_after optional |
string |
Get all records that have been updated after some point in time. Should be a time string in ISO 8601 format. |
Read more about filters and pagination here
Get a specific Partner Code
curl "https://invitepeople.com/api/v2/partner_codes/1" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
{
"code" : "promo4561",
"created_at" : "2022-08-31T09:14:13.682+02:00",
"description" : {
"en" : ""
},
"force_min_purchase_amount" : false,
"header" : {
"en" : ""
},
"id" : 1,
"include_eventsite_description" : false,
"invited_only" : false,
"max_sold_tickets_limit" : null,
"partner_code_ticket_types" : [
{
"amount" : null,
"id" : 1,
"max_purchase_amount" : 1,
"max_purchase_amount_per_person" : 1,
"min_purchase_amount" : 1,
"price" : "0.0",
"selling_end_time" : null,
"selling_start_time" : null,
"ticket_type" : {
"description" : {
"en" : "Coffee"
},
"id" : 1,
"kind" : "addon"
}
},
{
"amount" : null,
"id" : 2,
"max_purchase_amount" : 1,
"max_purchase_amount_per_person" : 1,
"min_purchase_amount" : 1,
"price" : "0.0",
"selling_end_time" : null,
"selling_start_time" : null,
"ticket_type" : {
"description" : {
"en" : "Lunch"
},
"id" : 2,
"kind" : "addon"
}
}
],
"show_regular_price" : true,
"ticket_header" : {
"en" : ""
},
"updated_at" : "2024-08-16T10:38:56.441+02:00"
}
Use this endpoint to retrieve a specific Partner Code.
HTTP Request
GET https://invitepeople.com/api/v2/partner_codes/<ID>
URL Parameters
Parameter | Description |
---|---|
ID required |
The ID of the Partner Code. |
Profile Fields
Profile Field
The Profile Field object represents a custom field type for an Event.
Properties
Property | Type | Description |
---|---|---|
name | string |
A generated name for the Profile Field. |
kind | string |
Possible values are text_field , text_area , select , radio_buttons , multi_select , integer , boolean and date_field . |
values | array |
The values set up for Profile Fields of kind select , radio_buttons or multi_select . |
translated_name | object |
The name of the Profile Field. An object with the Event's language codes as keys and the translated names as values. |
statistics | object |
Sums up the number of Profile Field Values per value of the Profile Field. Applicable to Profile Fields of kind select , radio_buttons , multi_select and boolean . Not included in the Get all Profile Fields endpoint. |
Get all Profile Fields
curl "https://invitepeople.com/api/v2/events/1/profile_fields" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
[
{
"id": 1,
"name": "fusce-ultricies-vestibulum-fermentum-pharetra-fringilla",
"kind": "select",
"values": [
"Malesuada Sit Quam",
"Tortor Mattis",
"Vehicula Tellus Magna"
],
"created_at": "2021-04-09T10:30:01.996+02:00",
"updated_at": "2021-04-09T10:30:01.064+02:00",
"translated_name": {
"sv": "Fusce Ultricies Vestibulum",
"en": "Fermentum Pharetra Fringilla"
}
},
{
"id": 2,
"name": "bibendum-tellus-mollis-fermentum",
"kind": "text_field",
"values": [],
"created_at": "2021-04-06T08:51:21.996+02:00",
"updated_at": "2021-04-06T08:51:22.064+02:00",
"translated_name": {
"sv": "Bibendum Tellus",
"en": "Mollis Fermentum"
}
}
]
Use this endpoint to retrieve all Profile Fields for an Event.
HTTP Request
GET https://invitepeople.com/api/v2/events/<EVENT_ID>/profile_fields
URL Parameters
Parameter | Description |
---|---|
EVENT_ID required |
The ID of the Event. |
Query Parameters
Property | Type | Description |
---|---|---|
limit optional |
integer |
The max number of records retrieved. Defaults to 1000 , which is the max number of records in a single request. |
id_before optional |
integer |
Get all records with a lower id . |
updated_after optional |
string |
Get all records that have been updated after some point in time. Should be a time string in ISO 8601 format. |
Read more about filters and pagination here
Get a specific Profile Field
curl "https://invitepeople.com/api/v2/profile_fields/1" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
{
"id": 1,
"name": "fusce-ultricies-vestibulum-fermentum-pharetra-fringilla",
"kind": "select",
"values": [
"Malesuada Sit Quam",
"Tortor Mattis",
"Vehicula Tellus Magna"
],
"created_at": "2021-04-09T10:30:01.996+02:00",
"updated_at": "2021-04-09T10:30:01.064+02:00",
"translated_name": {
"sv": "Fusce Ultricies Vestibulum",
"en": "Fermentum Pharetra Fringilla"
},
"statistics": {
"Malesuada Sit Quam": 100,
"Tortor Mattis": 50
}
}
Use this endpoint to retrieve a specific Profile Field.
HTTP Request
GET https://invitepeople.com/api/v2/profile_fields/<ID>
URL Parameters
Parameter | Description |
---|---|
ID required |
The ID of the Profile Field. |
Users
User
The User object represents an InvitePeople User.
Properties
Property | Type | Description |
---|---|---|
string |
The email of the User. | |
mobile | string |
The mobile phone number of the User in international format, eg. 46700000000 . |
lang | string |
The language code of the User. Eg. en , de , se , fr , nb . |
time_zone | string |
A string representing the time zone of the User, eg. Stockholm . |
Get a User
curl "https://invitepeople.com/api/v2/users/1" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
{
"id": 1,
"email": "amet@invitepeople.com",
"lang": "en",
"time_zone": "Berlin",
"mobile": "46700000000",
"participants": [
{
"id": 1,
"created_at": "2018-04-11T14:56:28.719+02:00",
"updated_at": "2019-09-30T08:46:37.416+02:00",
"status": "confirmed",
"visible": true,
"bookable": true,
"checked_in": true,
"external_id": "134",
"login_link": "https://invitepeople.com/40f010e3-f04a-47be-9531-7857892f557a/login/c599085e-fd53-4a7a-9354-893502bc5f22",
"profile": {
"id": 1,
"address": "Condimentum 1",
"zip": "000 00",
"city": "Berlin",
"country": "DE",
"phone": "000 - 00 00 00",
"company_name": "InvitePeople",
"title": "Vehicula",
"first_name": "Amet",
"last_name": "Risus Porta",
"honorific_title": null,
"additional_title": null,
"profile_field_values": [
{
"id": 1,
"value": "Malesuada Sit Quam",
"profile_field": {
"id": 1,
"name": "fusce-ultricies-vestibulum-fermentum-pharetra-fringilla",
"kind": "select",
"translated_name": {
"sv": "Fusce Ultricies Vestibulum",
"en": "Fermentum Pharetra Fringilla"
}
}
},
{
"id": 2,
"value": "Adipiscing Egestas Sollicitudin Condimentum",
"profile_field": {
"id": 2,
"name": "bibendum-tellus-mollis-fermentum",
"kind": "text_field",
"translated_name": {
"sv": "Bibendum Tellus",
"en": "Mollis Fermentum"
}
}
}
]
},
"company": {
"id": 2,
"slug": "ef4473f13dfe",
"name": "InvitePeople"
},
"tickets": [
{
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "Paid",
"checked_in": true,
"code": "00000001",
"partner_code_id": null,
"paid_price": "0.0",
"vat": "0.0",
"external_id": null,
"order": {
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 1,
"description": {
"sv": "Mattis Purus",
"en": "Sollicitudin Ullamcorper"
},
"kind": "entrance"
}
},
{
"id": 2,
"created_at": "2018-08-21T16:10:23.969+02:00",
"updated_at": "2018-10-11T14:00:16.147+02:00",
"status": "Paid",
"checked_in": true,
"code": "00000002",
"partner_code_id": null,
"paid_price": "0.0",
"vat": "0.0",
"external_id": null,
"order": {
"id": 2,
"created_at": "2018-08-21T16:10:23.969+02:00",
"updated_at": "2018-10-11T14:00:16.147+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 2,
"description": {
"sv": "Ridiculus Venenatis Fusce",
"en": "Ridiculus Venenatis Fusce"
},
"kind": null,
"seminar": {
"id": 1,
"slug": "ee74234991fe",
"name": "Ridiculus Venenatis Fusce",
"location": "Condimentum Inceptos",
"start_time": "2018-10-11T14:05:00.000+02:00",
"end_time": "2018-10-11T14:30:00.000+02:00",
"code": "001"
}
}
},
{
"id": 3,
"created_at": "2018-08-21T16:17:40.098+02:00",
"updated_at": "2018-10-11T15:36:33.921+02:00",
"status": "Paid",
"checked_in": false,
"code": "00000003",
"partner_code_id": 1,
"paid_price": "0.0",
"vat": "0.0",
"external_id": null,
"order": {
"id": 3,
"created_at": "2018-08-21T16:17:40.098+02:00",
"updated_at": "2018-10-11T15:36:33.921+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 3,
"description": {
"sv": "Ullamcorper Sit Tellus",
"en": "Ullamcorper Sit Tellus"
},
"kind": null,
"seminar": {
"id": 2,
"slug": "fe741fc771dd",
"name": "Ullamcorper Sit Tellus",
"location": "Mattis Pellentesque",
"start_time": "2018-10-11T15:35:00.000+02:00",
"end_time": "2018-10-11T16:00:00.000+02:00",
"code": "002"
}
}
}
],
"event": {
"id": 1,
"slug": "ff361767ffe2",
"name": "Sollicitudin Lorem",
"created_at": "2017-11-20T13:55:42.425+01:00",
"updated_at": "2018-02-14T13:15:36.789+01:00",
"country": "SE",
"address": "Lorem Dolor 36",
"zip": "123 45",
"city": "Sollicitudin",
"place": "Condimentum Vulputate",
"description": {
"sv": "<p>Maecenas faucibus mollis interdum. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>",
"en": "<p>Curabitur blandit tempus porttitor. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.</p>"
},
"start_time": "2017-05-31T00:00:00.000+02:00",
"statistics": {
"participants": {
"admin_disabled": 10,
"confirmed": 1235,
"new": 567
}
},
"end_time": "2017-06-02T23:59:00.000+02:00",
"lang": "sv",
"organizer": {
"id": 1,
"name": "Magna",
"description": {
"sv": "Vulputate Elit Cras Tristique Quam",
"en": "Nibh Sollicitudin Egestas Risus Bibendum"
},
"email": "sollicitudin@invitepeople.com",
"website": "https://invitepeople.com/sollicitudin/"
},
"custom_event_fields_data" : {
"ut_enim_ad": "Qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non."
"nemo_enim_ipsam": "Laudantium",
},
"data_minimization_status" : null,
"department" : {
"id": 1,
"external_id": null,
"name": "Perspiciatis"
},
"event_template" : {
"id": 1,
"name": "Voluptas nulla"
},
"event_images" : [
{
"kind": "share_image",
"url": "http://storage.invitepeople.com/000/000/share_image.png"
}
]
}
}
]
}
Use this endpoint to retrieve a specific User, having Participants for Events within the Organization.
Call with either User ID
or email
.
HTTP Request
GET https://invitepeople.com/api/v2/users/<ID>
GET https://invitepeople.com/api/v2/users/<EMAIL>
URL Parameters
Parameter | Description |
---|---|
ID mutually exclusive |
The ID of the User. |
EMAIL mutually exclusive |
The email address of the User. |
Participants
Participant
The Participant object represents a User's connection to an Event.
Properties
Property | Type | Description |
---|---|---|
status | string |
Possible values are confirmed , admin_disabled , and destroyed . A destroyed Participant has been completely removed from the Event. |
visible | boolean |
Will return true if the Participant is visible in the participant list. |
bookable | boolean |
Will return true if the Participant is bookable for meetings and available for messages. |
checked_in | boolean |
Will return true if the Participant has any checked in tickets. |
external_id | string |
An external ID from another system. |
login_link | string |
A link that can be sent to the participant letting them log in automatically, without choosing a password. |
Create a Participant
curl "https://invitepeople.com/api/v2/events/1/participants" \
-X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"user": {
"email": "pharetra@invitepeople.com"
},
"profile": {
"first_name": "Pharetra",
"last_name": "Quam"
}
}'
The above command returns JSON structured like this:
{
"id": 3,
"created_at": "2021-04-06T07:37:21.996+02:00",
"updated_at": "2021-04-06T07:37:22.064+02:00",
"status": "confirmed",
"visible": true,
"bookable": true,
"checked_in": false,
"external_id": "123",
"login_link": "https://invitepeople.com/40f010e3-f04a-47af-9531-7857892f557a/login/c599085e-fd53-4a7a-9354-893502bc5f22",
"user": {
"id": 3,
"email": "pharetra@invitepeople.com",
"lang": "en",
"time_zone": "Stockholm",
"mobile": null
},
"profile": {
"id": 3,
"company_name": null,
"title": null,
"address": null,
"zip": null,
"city": null,
"phone": null,
"first_name": "Pharetra",
"last_name": "Quam",
"country": "SE",
"honorific_title": null,
"additional_title": null,
"profile_field_values": []
},
"tickets": []
}
If an error occurs, it returns JSON structured like this:
{
"error": "participant already exists"
}
Use this endpoint to create a Participant for an Event.
HTTP Request
POST https://invitepeople.com/api/v2/events/<EVENT_ID>/participants
Content-Type: application/json
URL Parameters
Parameter | Description |
---|---|
EVENT_ID required |
The ID of the Event. |
Parameters
Parameter | Type | Description |
---|---|---|
user required |
object |
The User for the new Participant. |
profile optional |
object |
The Profile for the new Participant. |
external_id optional |
string |
Any string identifying the participant in an external system. |
visible optional |
boolean |
Set to false if the Participant should not be visible in the participant list. Defaults to true . |
bookable optional |
boolean |
Set to false if the Participant should not be bookable for meetings or available for messages. Defaults to true . |
User Parameters
Parameter | Type | Description |
---|---|---|
email required |
string |
The email address for the User. |
mobile optional |
string |
The mobile phone number for the User. The mobile phone number should be in international format with a valid country prefix and without any special characters or spaces, for example 4670123456. |
Profile Parameters
Parameter | Type | Description |
---|---|---|
first_name optional |
string |
The first name for the Profile. |
last_name optional |
string |
The last name for the Profile. |
country optional |
string |
The country for the Profile. Should be an ISO 3166-1 alpha-2 code. |
company_name optional |
string |
The company name for the Profile. |
title optional |
string |
The title for the Profile. |
address optional |
string |
The postal address for the Profile. |
zip optional |
string |
The zip code for the Profile. |
city optional |
string |
The city for the Profile. |
phone optional |
string |
The phone number for the Profile. |
Returns
If successfull it should return the created Participant object.
Errors
Error | Description |
---|---|
invalid email | The provided email address is invalid. |
participant already exists | A Participant for this User and Event already exists. |
provided external_id already exists | External ids must be unique across Events. |
Get all Participants
curl "https://invitepeople.com/api/v2/events/1/participants" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
[
{
"id": 1,
"created_at": "2018-04-11T14:56:28.719+02:00",
"updated_at": "2019-09-30T08:46:37.416+02:00",
"status": "confirmed",
"visible": true,
"bookable": true,
"checked_in": true,
"external_id": "123",
"login_link": "https://invitepeople.com/40f010e3-f04a-47af-9531-7857892f557a/login/c599085e-fd53-4a7a-9354-893502bc5f22",
"user": {
"id": 1,
"email": "amet@invitepeople.com",
"lang": "en",
"time_zone": "Berlin",
"mobile": "46700000000"
},
"profile": {
"id": 1,
"address": "Condimentum 1",
"zip": "000 00",
"city": "Berlin",
"country": "DE",
"phone": "000 - 00 00 00",
"company_name": "InvitePeople",
"title": "Vehicula",
"first_name": "Amet",
"last_name": "Risus Porta",
"honorific_title": null,
"additional_title": null,
"profile_field_values": [
{
"id": 1,
"value": "Malesuada Sit Quam",
"profile_field": {
"id": 1,
"name": "fusce-ultricies-vestibulum-fermentum-pharetra-fringilla",
"kind": "select",
"translated_name": {
"sv": "Fusce Ultricies Vestibulum",
"en": "Fermentum Pharetra Fringilla"
}
}
},
{
"id": 2,
"value": "Adipiscing Egestas Sollicitudin Condimentum",
"profile_field": {
"id": 2,
"name": "bibendum-tellus-mollis-fermentum",
"kind": "text_field",
"translated_name": {
"sv": "Bibendum Tellus",
"en": "Mollis Fermentum"
}
}
}
]
},
"company": {
"id": 2,
"slug": "ef4473f13dfe",
"name": "InvitePeople"
},
"tickets": [
{
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "Paid",
"checked_in": true,
"code": "00000001",
"partner_code_id": null,
"paid_price": "0.0",
"vat": "0.0",
"external_id": null,
"order": {
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 1,
"description": {
"sv": "Mattis Purus",
"en": "Sollicitudin Ullamcorper"
},
"kind": "entrance"
}
},
{
"id": 2,
"created_at": "2018-08-21T16:10:23.969+02:00",
"updated_at": "2018-10-11T14:00:16.147+02:00",
"status": "Paid",
"checked_in": true,
"code": "00000002",
"partner_code_id": null,
"paid_price": "0.0",
"vat": "0.0",
"external_id": null,
"order": {
"id": 2,
"created_at": "2018-08-21T16:10:23.969+02:00",
"updated_at": "2018-10-11T14:00:16.147+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 2,
"description": {
"sv": "Ridiculus Venenatis Fusce",
"en": "Ridiculus Venenatis Fusce"
},
"kind": null,
"seminar": {
"id": 1,
"slug": "ee74234991fe",
"name": "Ridiculus Venenatis Fusce",
"location": "Condimentum Inceptos",
"start_time": "2018-10-11T14:05:00.000+02:00",
"end_time": "2018-10-11T14:30:00.000+02:00",
"code": "001"
}
}
},
{
"id": 3,
"created_at": "2018-08-21T16:17:40.098+02:00",
"updated_at": "2018-10-11T15:36:33.921+02:00",
"status": "Paid",
"checked_in": false,
"code": "00000003",
"partner_code_id": 1,
"paid_price": "0.0",
"vat": "0.0",
"external_id": null,
"order": {
"id": 3,
"created_at": "2018-08-21T16:17:40.098+02:00",
"updated_at": "2018-10-11T15:36:33.921+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 3,
"description": {
"sv": "Ullamcorper Sit Tellus",
"en": "Ullamcorper Sit Tellus"
},
"kind": null,
"seminar": {
"id": 2,
"slug": "fe741fc771dd",
"name": "Ullamcorper Sit Tellus",
"location": "Mattis Pellentesque",
"start_time": "2018-10-11T15:35:00.000+02:00",
"end_time": "2018-10-11T16:00:00.000+02:00",
"code": "002"
}
}
}
]
},
{
"id": 2,
"created_at": "2018-04-11T14:56:28.719+02:00",
"updated_at": "2019-12-08T16:24:56.440+01:00",
"status": "destroyed",
"visible": false,
"bookable": true,
"checked_in": false,
"external_id": "134",
"login_link": "https://invitepeople.com/40f010e3-f04a-47be-9531-7857892f557a/login/c599085e-fd53-4a7a-9354-893502bc5f22",
"user": {
"id": 2,
"email": "adipiscing@invitepeople.com",
"lang": "sv",
"time_zone": "Stockholm",
"mobile": "46700000000"
}
}
]
Use this endpoint to retrieve all Participants for an Event.
HTTP Request
GET https://invitepeople.com/api/v2/events/<EVENT_ID>/participants
URL Parameters
Parameter | Description |
---|---|
EVENT_ID required |
The ID of the Event. |
Query Parameters
Property | Type | Description |
---|---|---|
limit optional |
integer |
The max number of records retrieved. Defaults to 1000 , which is the max number of records in a single request. |
id_before optional |
integer |
Get all records with a lower id . |
updated_after optional |
string |
Get all records that have been updated after some point in time. Should be a time string in ISO 8601 format. |
Read more about filters and pagination here
Get a specific Participant
curl "https://invitepeople.com/api/v2/participants/1" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
{
"id": 1,
"created_at": "2018-04-11T14:56:28.719+02:00",
"updated_at": "2019-09-30T08:46:37.416+02:00",
"status": "confirmed",
"visible": true,
"bookable": true,
"checked_in": true,
"external_id": "134",
"login_link": "https://invitepeople.com/40f010e3-f04a-47be-9531-7857892f557a/login/c599085e-fd53-4a7a-9354-893502bc5f22",
"user": {
"id": 1,
"email": "amet@invitepeople.com",
"lang": "en",
"time_zone": "Berlin",
"mobile": "46700000000"
},
"profile": {
"id": 1,
"address": "Condimentum 1",
"zip": "000 00",
"city": "Berlin",
"country": "DE",
"phone": "000 - 00 00 00",
"company_name": "InvitePeople",
"title": "Vehicula",
"first_name": "Amet",
"last_name": "Risus Porta",
"honorific_title": null,
"additional_title": null,
"profile_field_values": [
{
"id": 1,
"value": "Malesuada Sit Quam",
"profile_field": {
"id": 1,
"name": "fusce-ultricies-vestibulum-fermentum-pharetra-fringilla",
"kind": "select",
"translated_name": {
"sv": "Fusce Ultricies Vestibulum",
"en": "Fermentum Pharetra Fringilla"
}
}
},
{
"id": 2,
"value": "Adipiscing Egestas Sollicitudin Condimentum",
"profile_field": {
"id": 2,
"name": "bibendum-tellus-mollis-fermentum",
"kind": "text_field",
"translated_name": {
"sv": "Bibendum Tellus",
"en": "Mollis Fermentum"
}
}
}
]
},
"company": {
"id": 2,
"slug": "ef4473f13dfe",
"name": "InvitePeople"
},
"tickets": [
{
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "Paid",
"checked_in": true,
"code": "00000001",
"partner_code_id": null,
"paid_price": "0.0",
"vat": "0.0",
"external_id": null,
"order": {
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 1,
"description": {
"sv": "Mattis Purus",
"en": "Sollicitudin Ullamcorper"
},
"kind": "entrance"
}
},
{
"id": 2,
"created_at": "2018-08-21T16:10:23.969+02:00",
"updated_at": "2018-10-11T14:00:16.147+02:00",
"status": "Paid",
"checked_in": true,
"code": "00000002",
"partner_code_id": null,
"paid_price": "0.0",
"vat": "0.0",
"external_id": null,
"order": {
"id": 2,
"created_at": "2018-08-21T16:10:23.969+02:00",
"updated_at": "2018-10-11T14:00:16.147+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 2,
"description": {
"sv": "Ridiculus Venenatis Fusce",
"en": "Ridiculus Venenatis Fusce"
},
"kind": null,
"seminar": {
"id": 1,
"slug": "ee74234991fe",
"name": "Ridiculus Venenatis Fusce",
"location": "Condimentum Inceptos",
"start_time": "2018-10-11T14:05:00.000+02:00",
"end_time": "2018-10-11T14:30:00.000+02:00",
"code": "001"
}
}
},
{
"id": 3,
"created_at": "2018-08-21T16:17:40.098+02:00",
"updated_at": "2018-10-11T15:36:33.921+02:00",
"status": "Paid",
"checked_in": false,
"code": "00000003",
"partner_code_id": 1,
"paid_price": "0.0",
"vat": "0.0",
"external_id": null,
"order": {
"id": 3,
"created_at": "2018-08-21T16:17:40.098+02:00",
"updated_at": "2018-10-11T15:36:33.921+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 3,
"description": {
"sv": "Ullamcorper Sit Tellus",
"en": "Ullamcorper Sit Tellus"
},
"kind": null,
"seminar": {
"id": 2,
"slug": "fe741fc771dd",
"name": "Ullamcorper Sit Tellus",
"location": "Mattis Pellentesque",
"start_time": "2018-10-11T15:35:00.000+02:00",
"end_time": "2018-10-11T16:00:00.000+02:00",
"code": "002"
}
}
}
]
}
Use this endpoint to retrieve a specific Participant.
HTTP Request
GET https://invitepeople.com/api/v2/participants/<ID>
URL Parameters
Parameter | Description |
---|---|
ID required |
The ID of the Participant. |
Update a Participant
curl "https://invitepeople.com/api/v2/participants/1" \
-X PATCH \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
visible: false,
bookable: false,
status: "confirmed",
profile: {
first_name: "Steven",
last_name: "Jones",
zip: 12472,
city: "CityVille",
address: "Streetstreet",
country: "CH"
}
}'
The above command returns JSON structured like this:
{
"id": 1,
"created_at": "2018-04-11T14:56:28.719+02:00",
"updated_at": "2019-09-30T08:46:37.416+02:00",
"status": "confirmed",
"visible": false,
"bookable": false,
"checked_in": true,
"external_id": "134",
"login_link": "https://invitepeople.com/40f010e3-f04a-47be-9531-7857892f557a/login/c599085e-fd53-4a7a-9354-893502bc5f22",
"user": {
"id": 1,
"email": "amet@invitepeople.com",
"lang": "en",
"time_zone": "Berlin",
"mobile": "46700000000"
},
"profile": {
"id": 1,
"address": "Condimentum 1",
"zip": "000 00",
"city": "Berlin",
"country": "DE",
"phone": "000 - 00 00 00",
"company_name": "InvitePeople",
"title": "Vehicula",
"first_name": "Steven",
"last_name": "Jones",
"honorific_title": null,
"additional_title": null,
"profile_field_values": [
{
"id": 1,
"value": "Malesuada Sit Quam",
"profile_field": {
"id": 1,
"name": "fusce-ultricies-vestibulum-fermentum-pharetra-fringilla",
"kind": "select",
"translated_name": {
"sv": "Fusce Ultricies Vestibulum",
"en": "Fermentum Pharetra Fringilla"
}
}
},
{
"id": 2,
"value": "Adipiscing Egestas Sollicitudin Condimentum",
"profile_field": {
"id": 2,
"name": "bibendum-tellus-mollis-fermentum",
"kind": "text_field",
"translated_name": {
"sv": "Bibendum Tellus",
"en": "Mollis Fermentum"
}
}
}
]
},
"company": {
"id": 2,
"slug": "ef4473f13dfe",
"name": "New Company Name"
},
"tickets": [
{
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "Paid",
"checked_in": true,
"code": "00000001",
"partner_code_id": null,
"paid_price": "0.0",
"vat": "0.0",
"external_id": null,
"order": {
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 1,
"description": {
"sv": "Mattis Purus",
"en": "Sollicitudin Ullamcorper"
},
"kind": "entrance"
}
},
{
"id": 2,
"created_at": "2018-08-21T16:10:23.969+02:00",
"updated_at": "2018-10-11T14:00:16.147+02:00",
"status": "Paid",
"checked_in": true,
"code": "00000002",
"partner_code_id": null,
"paid_price": "0.0",
"vat": "0.0",
"external_id": null,
"order": {
"id": 2,
"created_at": "2018-08-21T16:10:23.969+02:00",
"updated_at": "2018-10-11T14:00:16.147+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 2,
"description": {
"sv": "Ridiculus Venenatis Fusce",
"en": "Ridiculus Venenatis Fusce"
},
"kind": null,
"seminar": {
"id": 1,
"slug": "ee74234991fe",
"name": "Ridiculus Venenatis Fusce",
"location": "Condimentum Inceptos",
"start_time": "2018-10-11T14:05:00.000+02:00",
"end_time": "2018-10-11T14:30:00.000+02:00",
"code": "001"
}
}
},
{
"id": 3,
"created_at": "2018-08-21T16:17:40.098+02:00",
"updated_at": "2018-10-11T15:36:33.921+02:00",
"status": "Paid",
"checked_in": false,
"code": "00000003",
"partner_code_id": 1,
"paid_price": "0.0",
"vat": "0.0",
"external_id": null,
"order": {
"id": 3,
"created_at": "2018-08-21T16:17:40.098+02:00",
"updated_at": "2018-10-11T15:36:33.921+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 3,
"description": {
"sv": "Ullamcorper Sit Tellus",
"en": "Ullamcorper Sit Tellus"
},
"kind": null,
"seminar": {
"id": 2,
"slug": "fe741fc771dd",
"name": "Ullamcorper Sit Tellus",
"location": "Mattis Pellentesque",
"start_time": "2018-10-11T15:35:00.000+02:00",
"end_time": "2018-10-11T16:00:00.000+02:00",
"code": "002"
}
}
}
]
}
If an error occurs, it returns JSON structured like this:
{
"error": "invalid status provided"
}
Use this endpoint to update a Participant.
HTTP Request
PATCH https://invitepeople.com/api/v2/participants/<ID>
URL Parameters
Parameter | Description |
---|---|
ID required |
The ID of the Participant. |
Parameters
Parameter | Type | Description |
---|---|---|
external_id optional |
string |
Any string identifying the participant in an external system. |
visible optional |
boolean |
Set to false if the Participant should not be visible in the participant list. Defaults to true . |
bookable optional |
boolean |
Set to false if the Participant should not be bookable for meetings or available for messages. Defaults to true . |
status optional |
string |
A string indicating status of the Participant. Valid values are confirmed and admin_disabled . |
profile optional |
object |
Object containing changes to be made on the profile. |
Profile Parameters
Parameter | Type | Description |
---|---|---|
first_name optional |
string |
The first name for the Profile. |
last_name optional |
string |
The last name for the Profile. |
country optional |
string |
The country for the Profile. Should be an ISO 3166-1 alpha-2 code. |
company_name optional |
string |
The company name for the Profile. |
title optional |
string |
The title for the Profile. |
address optional |
string |
The postal address for the Profile. |
zip optional |
string |
The zip code for the Profile. |
city optional |
string |
The city for the Profile. |
phone optional |
string |
The phone number for the Profile. |
Returns
If successful the updated Participant object is returned
Errors
Error | Description |
---|---|
provided external_id already exists | External ids must be unique across Events. |
invalid status provided | The status value is not valid. |
could not update participant | An internal error occured. |
Companies
Company
The Company object represents a company for an Event. A Company connects to Participants through the Employee object.
Properties
Property | Type | Description |
---|---|---|
slug | string |
The URL slug of the Company. |
name | string |
The name of the Company. |
kind | string |
Possible values are Exhibitor , Partner , Sponsor , MainSponsor , and Poster . |
external_id | string |
An external ID from another system. |
location | string |
The location or booth of the Company. |
visible_in_community | boolean |
Indicates if the Company is visible in the companies list. |
scanning | boolean |
Indicates if the Company has Lead scanning enabled for representatives. |
max_employee_amount | integer |
The maximum number of Employees allowed for the Company. A null value indicates an unlimited number of Employees allowed. |
monitor_visitors | boolean |
Indicates if the Company has visitor monitoring for enabled for representatives. |
Get all Companies
curl "https://invitepeople.com/api/v2/events/1/companies" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
[
{
"created_at" : "2024-04-17T11:37:41.649+02:00",
"employees" : [
{
"id" : 1,
"participant_id" : 1,
"role" : "Administrator",
"status" : "Accepted"
},
{
"id" : 2,
"participant_id" : 2,
"role" : "Employee",
"status" : "Accepted"
}
],
"external_id" : null,
"id" : 1,
"slug" : "dc4498f1dffe",
"kind" : "Exhibitor",
"location" : "A1:1",
"max_employee_amount" : 10,
"monitor_visitors" : false,
"name" : "InvitePeople",
"profile" : {
"address" : "",
"address2" : "",
"city" : "Stockholm",
"country" : "SE",
"email" : "loremipsum@invitepeople.com",
"id" : 1,
"phone" : "",
"presentation" : "Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.",
"profile_field_values" : [
{
"id" : 1,
"profile_field" : {
"id" : 1,
"kind" : "text_field",
"name" : "index",
"translated_name" : {
"en" : "Vehicula"
}
},
"value" : "Nullam id dolor id nibh ultricies."
}
],
"region" : "",
"url" : "https://invitepeople.com",
"zip" : "12345"
},
"scanning" : true,
"updated_at" : "2024-07-01T17:38:01.039+02:00",
"visible_in_community" : true
},
{
"created_at" : "2024-04-18T12:19:47.436+02:00",
"employees" : [
{
"id" : 3,
"participant_id" : 3,
"role" : "Administrator",
"status" : "Accepted"
}
],
"external_id" : null,
"id" : 2,
"slug" : "ef4473f13dfe",
"kind" : "Partner",
"location" : "",
"max_employee_amount" : null,
"monitor_visitors" : false,
"name" : "Tempus Porttitor",
"profile" : {
"address" : "",
"address2" : "",
"city" : "Stockholm",
"country" : "SE",
"email" : "tempusporttitor@invitepeople.com",
"id" : 2,
"phone" : "",
"presentation" : "Urabitur blandit tempus porttitor.",
"profile_field_values" : [],
"region" : "",
"url" : "",
"zip" : ""
},
"scanning" : false,
"updated_at" : "2024-04-20T17:14:30.311+02:00",
"visible_in_community" : false
}
]
Use this endpoint to retrieve all Companies for an Event.
HTTP Request
GET https://invitepeople.com/api/v2/events/<EVENT_ID>/companies
URL Parameters
Parameter | Description |
---|---|
EVENT_ID required |
The ID of the Event. |
Query Parameters
Property | Type | Description |
---|---|---|
limit optional |
integer |
The max number of records retrieved. Defaults to 1000 , which is the max number of records in a single request. |
id_before optional |
integer |
Get all records with a lower id . |
updated_after optional |
string |
Get all records that have been updated after some point in time. Should be a time string in ISO 8601 format. |
Read more about filters and pagination here
Get a specific Company
curl "https://invitepeople.com/api/v2/companies/1" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
{
"created_at" : "2024-04-17T11:37:41.649+02:00",
"employees" : [
{
"id" : 1,
"participant_id" : 1,
"role" : "Administrator",
"status" : "Accepted"
},
{
"id" : 2,
"participant_id" : 2,
"role" : "Employee",
"status" : "Accepted"
}
],
"external_id" : null,
"id" : 1,
"slug" : "dc4498f1dffe",
"kind" : "Exhibitor",
"location" : "A1:1",
"max_employee_amount" : 10,
"monitor_visitors" : false,
"name" : "InvitePeople",
"profile" : {
"address" : "",
"address2" : "",
"city" : "Stockholm",
"country" : "SE",
"email" : "loremipsum@invitepeople.com",
"id" : 1,
"phone" : "",
"presentation" : "Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.",
"profile_field_values" : [
{
"id" : 1,
"profile_field" : {
"id" : 1,
"kind" : "text_field",
"name" : "index",
"translated_name" : {
"en" : "Vehicula"
}
},
"value" : "Nullam id dolor id nibh ultricies."
}
],
"region" : "",
"url" : "https://invitepeople.com",
"zip" : "12345"
},
"scanning" : true,
"updated_at" : "2024-07-01T17:38:01.039+02:00",
"visible_in_community" : true
}
Use this endpoint to retrieve a specific Company.
HTTP Request
GET https://invitepeople.com/api/v2/companies/<ID>
URL Parameters
Parameter | Description |
---|---|
ID required |
The ID of the Company. |
Tickets
Ticket
The Ticket object represents a ticket belonging to a Participant. The ticket can provide access to the entire event or individual seminars.
Properties
Property | Type | Description |
---|---|---|
status | string |
Possible values are Paid and Reserved . |
checked_in | boolean |
Will return true if the Participant has checked in with the Ticket. |
code | string |
A generated 8 digit unique code. |
paid_price | string |
The price paid for the Ticket in the Event's currency. The value is formatted as a decimal number. |
vat | string |
The VAT paid for the Ticket in the Event's currency. The value is formatted as a decimal number. |
external_id | string |
An external ID from another system. |
partner_code_id | string |
Reference to any Partner Code. |
Create a Ticket
curl "https://invitepeople.com/api/v2/participants/1/tickets" \
-X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "ticket_type_id": 1 }'
The above command returns JSON structured like this:
{
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "Paid",
"checked_in": true,
"code": "00000001",
"partner_code_id": null,
"paid_price": "0.0",
"vat": "0.0",
"participant_id": 1,
"external_id": null,
"order": {
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 1,
"description": {
"sv": "Mattis Purus",
"en": "Sollicitudin Ullamcorper"
},
"kind": "entrance"
}
}
If an error occurs, it returns JSON structured like this:
{
"error": "could not create ticket"
}
Use this endpoint to create a Ticket for a Participant.
HTTP Request
POST https://invitepeople.com/api/v2/participants/<PARTICIPANT_ID>/tickets
Content-Type: application/json
URL Parameters
Parameter | Description |
---|---|
PARTICIPANT_ID required |
The ID of the Participant. |
Parameters
Parameter | Type | Description |
---|---|---|
ticket_type_id required |
integer |
The ID of the Ticket Type for the new Ticket. |
Returns
If successfull it should return the created Ticket object.
Errors
Error | Description |
---|---|
ticket type not found | The provided Ticket Type ID could not be found. |
could not create ticket | The Ticket could not be created. |
Get a Ticket
curl "https://invitepeople.com/api/v2/tickets/1" \
-X GET \
-H "Authorization: Bearer $TOKEN" \
The above command returns JSON structured like this:
{
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "Paid",
"checked_in": true,
"code": "00000001",
"partner_code_id": null,
"paid_price": "0.0",
"vat": "0.0",
"participant_id": 1,
"external_id": null,
"order": {
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 1,
"description": {
"sv": "Mattis Purus",
"en": "Sollicitudin Ullamcorper"
},
"kind": "entrance"
}
}
Use this endpoint to retrieve a specific Ticket.
HTTP Request
GET https://invitepeople.com/api/v2/tickets/<ID>
URL Parameters
Parameter | Description |
---|---|
ID required |
The ID of the Ticket. |
Update a Ticket
curl "https://invitepeople.com/api/v2/tickets/1" \
-X PATCH \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json"\
-d '{ "checked_in": true }'
The above command returns JSON structured like this:
{
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "Paid",
"checked_in": true,
"code": "00000001",
"partner_code_id": null,
"paid_price": "0.0",
"vat": "0.0",
"participant_id": 1,
"external_id": null,
"order": {
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 1,
"description": {
"sv": "Mattis Purus",
"en": "Sollicitudin Ullamcorper"
},
"kind": "entrance"
}
}
Use this endpoint to update a Ticket.
HTTP Request
PATCH https://invitepeople.com/api/v2/tickets/<ID>
Content-Type: application/json
URL Parameters
Parameter | Description |
---|---|
ID required |
The ID of the Ticket. |
Parameters
Parameter | Type | Description |
---|---|---|
checked_in | boolean |
Sets the check in status of the Ticket. |
Returns
If successfull it should return the updated Ticket object.
Delete a Ticket
curl "https://invitepeople.com/api/v2/tickets/1" \
-X DELETE \
-H "Authorization: Bearer $TOKEN" \
The above command returns JSON structured like this:
{
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "Paid",
"checked_in": true,
"code": "00000001",
"partner_code_id": null,
"paid_price": "0.0",
"vat": "0.0",
"participant_id": 1,
"external_id": null,
"order": {
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 1,
"description": {
"sv": "Mattis Purus",
"en": "Sollicitudin Ullamcorper"
},
"kind": "entrance"
}
}
If an error occurs, it returns JSON structured like this:
{
"error": "could not delete ticket"
}
Use this endpoint to delete a free Ticket.
HTTP Request
DELETE https://invitepeople.com/api/v2/tickets/<ID>
URL Parameters
Parameter | Description |
---|---|
ID required |
The ID of the Ticket. |
Returns
If successfull it should return the deleted Ticket object.
Errors
Error | Description |
---|---|
could not delete ticket | The ticket is not free and cannot be deleted. |
Ticket Scans
Ticket Scan
The Ticket Scan object represents a specific on-site scan of a Ticket.
Properties
Property | Type | Description |
---|---|---|
scan_id | string |
An ID originating from the scanning device. |
code | string |
The scanned barcode. |
valid_ticket | boolean |
Indicates if the scan was valid or not. |
offline_scan | boolean |
Indicates if the scan performed while the device was offline. |
scanned_at | string |
The time of the scan in ISO 8601 format. |
Get all Ticket Scans
curl "https://invitepeople.com/api/v2/events/1/ticket_scans" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
[
{
"code" : "00000001",
"created_at" : "2024-04-06T16:55:05.251+02:00",
"id" : 1,
"offline_scan" : null,
"scan_id" : "20CDAC80-AE60-44F2-A004-CDD29860128C:08603254:1712415304.72",
"scanned_at" : "2024-04-06T16:55:04.720+02:00",
"ticket" : {
"checked_in" : true,
"code" : "00000001",
"created_at" : "2024-04-06T16:54:59.377+02:00",
"external_id" : null,
"id" : 1,
"order_id" : 1,
"paid_price" : "0.0",
"participant_id" : 1,
"partner_code_id" : 1,
"status" : "Paid",
"ticket_type_id" : 1,
"updated_at" : "2024-04-06T16:55:05.217+02:00",
"vat" : "0.0"
},
"updated_at" : "2024-04-06T16:55:05.251+02:00",
"user" : {
"email" : "loremipsum@invitepeople.com",
"id" : 1,
"lang" : "en",
"mobile" : "46700000000",
"time_zone" : "Stockholm"
},
"valid_ticket" : true
},
{
"code" : "00000002",
"created_at" : "2024-04-23T09:49:15.146+02:00",
"id" : 2,
"offline_scan" : true,
"scan_id" : "20CDAC80-AE60-44F2-A004-CDD29860128C:69504485:1712414774.125",
"scanned_at" : "2024-04-23T08:49:14.000+02:00",
"ticket" : {
"checked_in" : true,
"code" : "00000002",
"created_at" : "2022-10-14T08:36:12.638+02:00",
"external_id" : null,
"id" : 2,
"order_id" : 2,
"paid_price" : "1000.0",
"participant_id" : 2,
"partner_code_id" : null,
"status" : "Paid",
"ticket_type_id" : 1,
"updated_at" : "2024-04-23T09:49:15.119+02:00",
"vat" : "200.0"
},
"updated_at" : "2024-04-23T09:49:15.146+02:00",
"user" : {
"email" : "loremipsum@invitepeople.com",
"id" : 1,
"lang" : "en",
"mobile" : "46700000000",
"time_zone" : "Stockholm"
},
"valid_ticket" : true
}
]
Use this endpoint to retrieve all Ticket Scans for an Event.
HTTP Request
GET https://invitepeople.com/api/v2/events/<EVENT_ID>/ticket_scans
URL Parameters
Parameter | Description |
---|---|
EVENT_ID required |
The ID of the Event. |
Query Parameters
Property | Type | Description |
---|---|---|
limit optional |
integer |
The max number of records retrieved. Defaults to 1000 , which is the max number of records in a single request. |
id_before optional |
integer |
Get all records with a lower id . |
updated_after optional |
string |
Get all records that have been updated after some point in time. Should be a time string in ISO 8601 format. |
Read more about filters and pagination here
Get a specific Ticket Scan
curl "https://invitepeople.com/api/v2/ticket_scans/1" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
{
"code" : "00000001",
"created_at" : "2024-04-06T16:55:05.251+02:00",
"id" : 1,
"offline_scan" : null,
"scan_id" : "20CDAC80-AE60-44F2-A004-CDD29860128C:08603254:1712415304.72",
"scanned_at" : "2024-04-06T16:55:04.720+02:00",
"ticket" : {
"checked_in" : true,
"code" : "00000001",
"created_at" : "2024-04-06T16:54:59.377+02:00",
"external_id" : null,
"id" : 1,
"order_id" : 1,
"paid_price" : "0.0",
"participant_id" : 1,
"partner_code_id" : 1,
"status" : "Paid",
"ticket_type_id" : 1,
"updated_at" : "2024-04-06T16:55:05.217+02:00",
"vat" : "0.0"
},
"updated_at" : "2024-04-06T16:55:05.251+02:00",
"user" : {
"email" : "loremipsum@invitepeople.com",
"id" : 1,
"lang" : "en",
"mobile" : "46700000000",
"time_zone" : "Stockholm"
},
"valid_ticket" : true
}
Use this endpoint to retrieve a specific Ticket Scan.
HTTP Request
GET https://invitepeople.com/api/v2/ticket_scans/<ID>
URL Parameters
Parameter | Description |
---|---|
ID required |
The ID of the Company. |
Profile Field Values
Profile Field Value
The Profile Field Value object represents a custom field value for a Participant.
Properties
Property | Type | Description |
---|---|---|
value | string |
The value of the Profile Field Value |
Create a Profile Field Value
curl "https://invitepeople.com/api/v2/participants/1/profile_field_values" \
-X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "profile_field_id": 1, "value": "Malesuada Sit Quam" }'
The above command returns JSON structured like this:
{
"id": 1,
"value": "Malesuada Sit Quam",
"created_at": "2021-04-06T08:51:21.996+02:00",
"updated_at": "2021-04-06T08:51:22.064+02:00",
"profile_field": {
"id": 1,
"name": "fusce-ultricies-vestibulum-fermentum-pharetra-fringilla",
"kind": "select",
"translated_name": {
"sv": "Fusce Ultricies Vestibulum",
"en": "Fermentum Pharetra Fringilla"
}
},
"profile": {
"id": 1,
"participant": {
"id": 1
}
}
}
If an error occurs, it returns JSON structured like this:
{
"error": "incorrect value",
"possible_values": [
"Malesuada Sit Quam",
"Tortor Mattis",
"Vehicula Tellus Magna"
]
}
Use this endpoint to create a Profile Field Value for a Participant.
HTTP Request
POST https://invitepeople.com/api/v2/participants/<PARTICIPANT_ID>/profile_field_values
Content-Type: application/json
URL Parameters
Parameter | Description |
---|---|
PARTICIPANT_ID required |
The ID of the Participant. |
Parameters
Parameter | Type | Description |
---|---|---|
profile_field_id required |
integer |
The ID of the Profile Field for the new Profile Field Value. |
value required |
string |
The value for the new Profile Field Value. |
Returns
If successfull it should return the created Profile Field Value object.
Errors
Error | Description |
---|---|
participant not found | The provided Participant ID could not be found. |
profile field not found | The provided Profile Field ID could not be found. |
value cannot be empty | No value provided. |
profile field value already exists | A Profile Field Value is already created for this Profile Field and Participant. Profile Fields of kind multi_select may have multiple values per Profile Field. |
incorrect value | The provided value is not part of the defined values of the Profile Field. Applies to Profile Fields of kind select , radio_buttons , and multi_select . Response should include possible_values with the defined values of the Profile Field. |
value is not an integer | Applies to Profile Fields of kind integer . The value should be an integer. |
value is not a valid date | Applies to Profile Fields of kind date_field . The value should be in ISO 8601 format. |
profile field value could not be saved | The Profile Field Value could not be saved. |
Get a Profile Field Value
curl "https://invitepeople.com/api/v2/participants/1/profile_field_values/1" \
-X GET \
-H "Authorization: Bearer $TOKEN" \
The above command returns JSON structured like this:
{
"id": 1,
"value": "Malesuada Sit Quam",
"created_at": "2021-04-06T08:51:21.996+02:00",
"updated_at": "2021-04-06T08:51:22.064+02:00",
"profile_field": {
"id": 1,
"name": "fusce-ultricies-vestibulum-fermentum-pharetra-fringilla",
"kind": "select",
"translated_name": {
"sv": "Fusce Ultricies Vestibulum",
"en": "Fermentum Pharetra Fringilla"
}
},
"profile": {
"id": 1,
"participant": {
"id": 1
}
}
}
Use this endpoint to retrieve a specific Profile Field Value.
The endpoint will return an array of objects for Profile Fields of kind multi_select
.
HTTP Request
GET https://invitepeople.com/api/v2/participants/<PARTICIPANT_ID>/profile_field_values/<PROFILE_FIELD_ID>
URL Parameters
Parameter | Description |
---|---|
PARTICIPANT_ID required |
The ID of the Participant. |
PROFILE_FIELD_ID required |
The ID of the Profile Field. |
Update a Profile Field Value
curl "https://invitepeople.com/api/v2/participants/1/profile_field_values/1" \
-X PATCH \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "value": "Malesuada Sit Quam" }'
The above command returns JSON structured like this:
{
"id": 1,
"value": "Malesuada Sit Quam",
"created_at": "2021-04-06T08:51:21.996+02:00",
"updated_at": "2021-04-06T08:51:22.064+02:00",
"profile_field": {
"id": 1,
"name": "fusce-ultricies-vestibulum-fermentum-pharetra-fringilla",
"kind": "select",
"translated_name": {
"sv": "Fusce Ultricies Vestibulum",
"en": "Fermentum Pharetra Fringilla"
}
},
"profile": {
"id": 1,
"participant": {
"id": 1
}
}
}
If an error occurs, it returns JSON structured like this:
{
"error": "incorrect value",
"possible_values": [
"Malesuada Sit Quam",
"Tortor Mattis",
"Vehicula Tellus Magna"
]
}
Use this endpoint to update a Profile Field Value for a Participant.
Profile Fields of kind multi_select
can not be updated using this endpoint. Use the Create and Delete endpoints to add or remove values.
HTTP Request
PATCH https://invitepeople.com/api/v2/participants/<PARTICIPANT_ID>/profile_field_values/<PROFILE_FIELD_ID>
Content-Type: application/json
URL Parameters
Parameter | Description |
---|---|
PARTICIPANT_ID required |
The ID of the Participant. |
PROFILE_FIELD_ID required |
The ID of the Profile Field. |
Parameters
Parameter | Type | Description |
---|---|---|
value required |
string |
The new value for the Profile Field Value. |
Returns
If successfull it should return the updated Profile Field Value object.
Errors
Error | Description |
---|---|
participant not found | The provided Participant ID could not be found. |
profile field not found | The provided Profile Field ID could not be found. |
profile field value not found | The Profile Field Value could not be found. |
profile field is multi select | The Profile Field is a multi_select , and cannot be updated. |
value cannot be empty | No value provided. |
profile field value already exists | A Profile Field Value with the same value is already created for this Profile Field and Participant. |
incorrect value | The provided value is not part of the defined values of the Profile Field. Applies to Profile Fields of kind select and radio_buttons . Response should include possible_values with the defined values of the Profile Field. |
value is not an integer | Applies to Profile Fields of kind integer . The value should be an integer. |
value is not a valid date | Applies to Profile Fields of kind date_field . The value should be in ISO 8601 format. |
profile field value could not be saved | The Profile Field Value could not be saved. |
Delete a Profile Field Value
curl "https://invitepeople.com/api/v2/participants/1/profile_field_values/3" \
-X DELETE \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
{
"id": 3,
"value": "Tortor Matti",
"created_at": "2021-04-06T08:51:21.996+02:00",
"updated_at": "2021-04-06T08:51:22.064+02:00",
"profile_field": {
"id": 1,
"name": "fusce-ultricies-vestibulum-fermentum-pharetra-fringilla",
"kind": "select",
"translated_name": {
"sv": "Fusce Ultricies Vestibulum",
"en": "Fermentum Pharetra Fringilla"
}
},
"profile": {
"id": 1,
"participant": {
"id": 1
}
}
}
Use this endpoint to delete a specific Profile Field Value.
HTTP Request
DELETE https://invitepeople.com/api/v2/participants/<PARTICIPANT_ID>/profile_field_values/<PROFILE_FIELD_VALUE_ID>
URL Parameters
Parameter | Description |
---|---|
PARTICIPANT_ID required |
The ID of the Participant. |
PROFILE_FIELD_VALUE_ID required |
The ID of the Profile Field Value. |
Returns
If successfull it should return the deleted Profile Field Value object.
Emails
The Email object represents a email sent from InvitePeople.
Properties
Property | Type | Description |
---|---|---|
delivered_at | string |
The delivery time of the email in ISO 8601 format. |
error | string |
Text explaining errors preventing an email from being delivered. |
to | string |
The email address that the email was sent to. |
Send an Email
curl "https://invitepeople.com/api/v2/emails" \
-X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "ticket_id": 1 }'
The above command returns JSON structured like this:
{
"id": 1,
"delivered_at": "2022-04-27T12:07:14.954+05:30",
"error": null,
"to": "loremipsum@invitepeople.com",
"email_events": []
}
If an error occurs, it returns JSON structured like this:
{
"error": "email could not be sent for ticket"
}
Use this endpoint to send a confirmation Email for a specific Ticket.
HTTP Request
POST https://invitepeople.com/api/v2/emails
Content-Type: application/json
Parameters
Parameter | Type | Description |
---|---|---|
ticket_id required |
integer |
The ID of the Ticket for which a confirmation email should be sent. |
Returns
If successfull it should return the created Ticket object.
Errors
Error | Description |
---|---|
email could not be sent for ticket | The Ticket is not eligible for a confirmation email. This will for example happen if the Ticket does not have the status paid, or if the Ticket is not related to a Participant. |
email could not be created | The Email could not be created. |
Get a specific Email
curl "https://invitepeople.com/api/v2/emails/1" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
{
"id": 1,
"delivered_at": "2021-12-01T14:01:38.231+01:00",
"error": null,
"to": "loremipsum@invitepeople.com",
"email_events": [
{
"id": 1,
"event_type": "delivery",
"event_at": "2021-12-01T14:01:39.211+01:00"
},
{
"id": 2,
"event_type": "open",
"event_at": "2021-12-01T14:01:43.649+01:00"
}
]
}
Use this endpoint to retrieve a specific Email and related Email Events.
HTTP Request
GET https://invitepeople.com/api/v2/emails/<ID>
URL Parameters
Parameter | Description |
---|---|
ID required |
The ID of the Email. |
Meetings
Meeting
The Meeting object represents a meeting between Participants of an Event or calendar slots marked as busy for a Participant.
Properties
Property | Type | Description |
---|---|---|
visibility | string |
Indicates the visibility of the Meeting. Possible values are Normal (regular meetings), Draft (not yet published meetings), Private (marked as busy calendar slots). |
meeting_status | string |
Indicates the status of the Meeting. Possible values are confirmed , waiting_answer , user_removed , cancelled , and draft . |
start_time | string |
The start time of the Meeting in ISO 8601 format. |
end_time | string |
The end time of the Meeting in ISO 8601 format. |
notes | string |
Extra notes added to the Meeting. |
group_meeting | boolean |
Indicates if the Meeting is a group meeting or not. |
external_video_meeting_url | string |
The URL to an external video meeting room. Only applies to Meetings with Meeting Place of kind external_video . |
Get all Meetings
curl "https://invitepeople.com/api/v2/events/1/meetings" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
[
{
"created_at" : "2024-04-04T19:49:10.602+02:00",
"end_time" : "2024-04-06T09:10:00.000+02:00",
"external_video_meeting_url" : null,
"group_meeting" : false,
"id" : 1,
"meeting_requests" : [
{
"id" : 1,
"participant_id" : 5,
"role" : "Participant",
"status" : "Accept",
"visibility" : "Private"
}
],
"meeting_status" : "confirmed",
"notes" : null,
"start_time" : "2024-04-06T08:40:00.000+02:00",
"updated_at" : "2024-04-04T19:49:10.602+02:00",
"visibility" : "Private"
},
{
"created_at" : "2024-04-04T19:49:10.602+02:00",
"end_time" : "2024-04-06T10:10:00.000+02:00",
"external_video_meeting_url" : null,
"group_meeting" : false,
"id" : 2,
"meeting_place" : {
"capacity" : null,
"description" : "",
"hybrid_room" : null,
"id" : 2,
"kind" : "meeting_place",
"name" : "Room B"
},
"meeting_requests" : [
{
"id" : 2,
"participant_id" : 4,
"role" : "Participant",
"status" : "Accept",
"visibility" : "Normal"
},
{
"id" : 3,
"participant_id" : 3,
"role" : "Participant",
"status" : "Accept",
"visibility" : "Normal"
}
],
"meeting_status" : "confirmed",
"notes" : "Donec sed odio dui. Etiam porta sem malesuada magna.",
"start_time" : "2024-04-06T09:40:00.000+02:00",
"updated_at" : "2024-04-04T19:49:10.602+02:00",
"visibility" : "Normal"
},
{
"created_at" : "2024-04-04T19:49:10.602+02:00",
"end_time" : "2024-04-06T10:10:00.000+02:00",
"external_video_meeting_url" : null,
"group_meeting" : false,
"id" : 3,
"meeting_place" : {
"capacity" : null,
"description" : "",
"hybrid_room" : null,
"id" : 1,
"kind" : "meeting_place",
"name" : "Room A"
},
"meeting_requests" : [
{
"id" : 4,
"participant_id" : 2,
"role" : "Participant",
"status" : "No_response",
"visibility" : "Normal"
},
{
"id" : 5,
"participant_id" : 1,
"role" : "Participant",
"status" : "Accept",
"visibility" : "Normal"
}
],
"meeting_status" : "waiting_answer",
"notes" : null,
"start_time" : "2024-04-06T09:40:00.000+02:00",
"updated_at" : "2024-04-04T19:49:10.602+02:00",
"visibility" : "Normal"
}
]
Use this endpoint to retrieve all Meetings for an Event.
HTTP Request
GET https://invitepeople.com/api/v2/events/<EVENT_ID>/meetings
URL Parameters
Parameter | Description |
---|---|
EVENT_ID required |
The ID of the Event. |
Query Parameters
Property | Type | Description |
---|---|---|
limit optional |
integer |
The max number of records retrieved. Defaults to 1000 , which is the max number of records in a single request. |
id_before optional |
integer |
Get all records with a lower id . |
updated_after optional |
string |
Get all records that have been updated after some point in time. Should be a time string in ISO 8601 format. |
Read more about filters and pagination here
Get a specific Meeting
curl "https://invitepeople.com/api/v2/meetings/1" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
{
"created_at" : "2024-04-04T19:49:10.602+02:00",
"end_time" : "2024-04-06T10:10:00.000+02:00",
"external_video_meeting_url" : null,
"group_meeting" : false,
"id" : 6,
"meeting_events" : [],
"meeting_place" : {
"capacity" : null,
"description" : "",
"hybrid_room" : null,
"id" : 6,
"kind" : "meeting_place",
"name" : "Room C"
},
"meeting_requests" : [
{
"id" : 16,
"participant" : {
"bookable" : true,
"checked_in" : true,
"company" : {
"id" : 1,
"slug" : "dc4498f1dffe",
"name" : "InvitePeople"
},
"created_at" : "2021-03-04T06:28:28.505+01:00",
"external_id" : null,
"id" : 8,
"login_link" : "https://invitepeople.com/40f010e3-f04a-47af-9531-7857892f557a/login/c599085e-fd53-4a7a-9354-893502bc5f22",
"profile" : {
"additional_title" : null,
"address" : null,
"city" : null,
"company_name" : "",
"country" : "SE",
"first_name" : "Pharetra",
"honorific_title" : null,
"id" : 9,
"last_name" : "Quam",
"phone" : null,
"profile_field_values" : [
{
"id" : 10,
"profile_field" : {
"id" : 1,
"kind" : "radio_buttons",
"name" : "justo-dapibus-condimentum",
"translated_name" : {
"en" : "",
"sv" : "Justo Dapibus Condimentum"
}
},
"value" : "Condimentum"
}
],
"title" : "",
"zip" : null
},
"status" : "confirmed",
"tickets" : [],
"updated_at" : "2024-02-29T14:06:44.177+01:00",
"user" : {
"email" : "adipiscing@invitepeople.com",
"id" : 15,
"lang" : "en",
"mobile" : "46700000000",
"time_zone" : "Stockholm"
},
"visible" : true
},
"role" : "Participant",
"status" : "Accept",
"visibility" : "Normal"
},
{
"id" : 17,
"participant" : {
"bookable" : true,
"checked_in" : true,
"created_at" : "2024-01-25T09:03:12.391+01:00",
"external_id" : null,
"id" : 12,
"login_link" : "https://invitepeople.com/40f010e3-f04a-47af-9531-7857892f557a/login/c599085e-fd53-4a7a-9354-893502bc5f22",
"profile" : {
"additional_title" : null,
"address" : null,
"city" : null,
"company_name" : "",
"country" : "SE",
"first_name" : "Amet",
"honorific_title" : null,
"id" : 18,
"last_name" : "Risus Porta",
"phone" : null,
"profile_field_values" : [],
"title" : "",
"zip" : null
},
"status" : "confirmed",
"tickets" : [
{
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "Paid",
"checked_in": true,
"code": "00000001",
"partner_code_id": null,
"paid_price": "0.0",
"vat": "0.0",
"external_id": null,
"order": {
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 1,
"description": {
"sv": "Mattis Purus",
"en": "Sollicitudin Ullamcorper"
},
"kind": "entrance"
}
}
],
"updated_at" : "2024-01-25T09:03:12.460+01:00",
"user" : {
"email" : "amet@invitepeople.com",
"id" : 1,
"lang" : "sv",
"mobile" : "46700000000",
"time_zone" : "Stockholm"
},
"visible" : true
},
"role" : "Participant",
"status" : "Accept",
"visibility" : "Normal"
}
],
"meeting_status" : "confirmed",
"notes" : null,
"start_time" : "2024-04-06T09:40:00.000+02:00",
"updated_at" : "2024-04-04T19:49:10.602+02:00",
"visibility" : "Normal"
}
Use this endpoint to retrieve a specific Meeting.
HTTP Request
GET https://invitepeople.com/api/v2/meetings/<ID>
URL Parameters
Parameter | Description |
---|---|
ID required |
The ID of the Meeting. |
Webhooks
Webhook
The Webhook object represents a configuration within an Organization that will trigger callbacks to a specific payload_url
.
Properties
Property | Type | Description |
---|---|---|
uuid | string |
A unique ID that will be present in the header X-Ip-Webhook-Uuid for all requests from the Webhook. |
payload_url | string |
The URL that receives callbacks from the Webhook. |
secret | string |
A secret string used for signing and verifying the Webhook. |
active | boolean |
Will return true if the Webhook is activated. |
verified | boolean |
Will return true if the Webhook is verified by InvitePeople. |
webhook_event_kinds | array |
The events that will trigger the callback from the Webhook. Possible values are participant_confirmed , participant_updated , and participant_destroyed . |
Webhook callback
The Webhook will POST JSON to the payload url structured like this:
{
"webhook_uuid": "45986a64-1e16-47bc-b486-b6d9cfd191e7",
"delivery_uuid": "072bf312-f6b9-4f5d-a7f5-c36cc5c401a9",
"delivered_at": "2022-02-05T22:37:25.923+01:00",
"retry": 0,
"webhook_event_kind": "participant_confirmed",
"data": {
"participant": {
"id": 1,
"created_at": "2018-04-11T14:56:28.719+02:00",
"updated_at": "2019-09-30T08:46:37.416+02:00",
"status": "confirmed",
"visible": true,
"bookable": true,
"checked_in": true,
"user": {
"id": 1,
"email": "amet@invitepeople.com",
"lang": "en",
"time_zone": "Berlin",
"mobile": "46700000000"
},
"profile": {
"id": 1,
"address": "Condimentum 1",
"zip": "000 00",
"city": "Berlin",
"country": "DE",
"phone": "000 - 00 00 00",
"company_name": "InvitePeople",
"title": "Vehicula",
"first_name": "Amet",
"last_name": "Risus Porta",
"honorific_title": null,
"additional_title": null,
"profile_field_values": [
{
"id": 1,
"value": "Malesuada Sit Quam",
"profile_field": {
"id": 1,
"name": "fusce-ultricies-vestibulum-fermentum-pharetra-fringilla",
"kind": "select",
"translated_name": {
"sv": "Fusce Ultricies Vestibulum",
"en": "Fermentum Pharetra Fringilla"
}
}
},
{
"id": 2,
"value": "Adipiscing Egestas Sollicitudin Condimentum",
"profile_field": {
"id": 2,
"name": "bibendum-tellus-mollis-fermentum",
"kind": "text_field",
"translated_name": {
"sv": "Bibendum Tellus",
"en": "Mollis Fermentum"
}
}
}
]
},
"company": {
"id": 2,
"slug": "ef4473f13dfe",
"name": "InvitePeople"
},
"tickets": [
{
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "Paid",
"checked_in": true,
"code": "00000001",
"order": {
"id": 1,
"created_at": "2018-05-29T10:37:15.653+02:00",
"updated_at": "2018-05-30T22:00:01.960+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 1,
"description": {
"sv": "Mattis Purus",
"en": "Sollicitudin Ullamcorper"
},
"kind": "entrance"
}
},
{
"id": 2,
"created_at": "2018-08-21T16:10:23.969+02:00",
"updated_at": "2018-10-11T14:00:16.147+02:00",
"status": "Paid",
"checked_in": true,
"code": "00000002",
"order": {
"id": 2,
"created_at": "2018-08-21T16:10:23.969+02:00",
"updated_at": "2018-10-11T14:00:16.147+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 2,
"description": {
"sv": "Ridiculus Venenatis Fusce",
"en": "Ridiculus Venenatis Fusce"
},
"kind": null,
"seminar": {
"id": 1,
"slug": "ee74234991fe",
"name": "Ridiculus Venenatis Fusce",
"location": "Condimentum Inceptos",
"start_time": "2018-10-11T14:05:00.000+02:00",
"end_time": "2018-10-11T14:30:00.000+02:00",
"code": "001"
}
}
},
{
"id": 3,
"created_at": "2018-08-21T16:17:40.098+02:00",
"updated_at": "2018-10-11T15:36:33.921+02:00",
"status": "Paid",
"checked_in": false,
"code": "00000003",
"order": {
"id": 3,
"created_at": "2018-08-21T16:17:40.098+02:00",
"updated_at": "2018-10-11T15:36:33.921+02:00",
"status": "paid",
"payment_method": null,
"invoice_fee": null,
"invoice_fee_vat": null,
"reversed_vat": false,
"vat": "0.0",
"sum": "0.0",
"currency": "SEK",
"utm_params": {
"utm_campaign": "Campaign",
"utm_medium": "email",
"utm_source": "email_sendout"
}
},
"ticket_type": {
"id": 3,
"description": {
"sv": "Ullamcorper Sit Tellus",
"en": "Ullamcorper Sit Tellus"
},
"kind": null,
"seminar": {
"id": 2,
"slug": "fe741fc771dd",
"name": "Ullamcorper Sit Tellus",
"location": "Mattis Pellentesque",
"start_time": "2018-10-11T15:35:00.000+02:00",
"end_time": "2018-10-11T16:00:00.000+02:00",
"code": "002"
}
}
}
]
},
"event": {
"id": 1,
"slug": "ff361767ffe2",
"name": "Sollicitudin Lorem",
"created_at": "2017-11-20T13:55:42.425+01:00",
"updated_at": "2018-02-14T13:15:36.789+01:00",
"country": "SE",
"address": "Lorem Dolor 36",
"zip": "123 45",
"city": "Sollicitudin",
"place": "Condimentum Vulputate",
"description": {
"sv": "<p>Maecenas faucibus mollis interdum. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>",
"en": "<p>Curabitur blandit tempus porttitor. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.</p>"
},
"start_time": "2017-05-31T00:00:00.000+02:00",
"end_time": "2017-06-02T23:59:00.000+02:00",
"lang": "sv",
"organizer": {
"id": 1,
"name": "Magna",
"description": {
"sv": "Vulputate Elit Cras Tristique Quam",
"en": "Nibh Sollicitudin Egestas Risus Bibendum"
},
"email": "sollicitudin@invitepeople.com",
"website": "https://invitepeople.com/sollicitudin/"
}
}
}
}
The Webhook will deliver HTTP POST requests to the payload_url
.
The requests from the Webhook will have a header X-Ip-Webhook-Signature
set making it possible to authorize them. The X-Ip-Webhook-Signature
is a HMAC SHA256 digest of the request body using the Webhook secret
. See example code on how to authorize callbacks here
HTTP Request
POST PAYLOAD_URL
X-Ip-Webhook-Signature: sha256=HMAC_SHA265_DIGEST
X-Ip-Webhook-Delivery-Uuid: WEBHOOK_DELIVERY_UUID
X-Ip-Webhook-Uuid: WEBHOOK_UUID
Content-Type: application/json
Properties
Property | Type | Description |
---|---|---|
webhook_uuid | string |
A unique ID of the Webhook that also will be present in the header X-Ip-Webhook-Uuid . |
webhook_delivery_uuid | string |
A unique ID of the Webhook Delivery that also will be present in the header X-Ip-Webhook-Delivery-Uuid . |
retry | integer |
Will be 0 for the first delivery. Max number of retries is 3 . |
webhook_event_kind | string |
The event that triggered the Webhook. Possible values are participant_confirmed , participant_updated , and participant_destroyed . |
data | object |
The data of the Webhook Delivery. Possible nested objects are participant and event . |
Create a Webhook
curl "https://invitepeople.com/api/v2/webhooks" \
-X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"payload_url": "https://webhook/payload/url",
"secret": "976c3086-aa43-48fe-ab0c-cad8556b999c",
"webhook_event_kinds": ["participant_confirmed"]
}'
The above command returns JSON structured like this:
{
"id": 1,
"uuid": "0191c943-08b8-4bbc-a2be-93b5a33393a3",
"payload_url": "https://webhook/payload/url",
"active": true,
"verified": false,
"created_at": "2022-02-08T06:57:02.047+01:00",
"updated_at": "2022-02-08T06:57:02.047+01:00",
"webhook_event_kinds": [
"participant_confirmed"
]
}
If an error occurs, it returns JSON structured like this:
{
"errors": [
"payload url cannot be empty",
"secret cannot be empty"
]
}
Use this endpoint to create a Webhook for an Organization.
When a Webhook is created a request will be sent to the payload_url
trying to verify the endpoint.
Read more about verifying webhooks here
HTTP Request
POST https://invitepeople.com/api/v2/webhooks
Content-Type: application/json
Parameters
Parameter | Type | Description |
---|---|---|
payload_url required |
integer |
The payload url to where the new Webhook should deliver callbacks. |
secret required |
string |
The secret for the new Webhook used for verification and signing. Save this for later! |
webhook_event_kinds | array |
The events that should trigger the Webhook. Possible values are participant_confirmed , participant_updated , and participant_destroyed . |
Returns
If successfull it should return the created Webhook object.
Errors
Error | Description |
---|---|
payload url cannot be empty | No payload url provided. |
secret cannot be empty | No secret provided. |
incorrect kind | There are incorrect Webhook event kinds. Possible values are participant_confirmed , participant_updated , and participant_destroyed . |
Get all Webhooks
curl "https://invitepeople.com/api/v2/webhooks" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
[
{
"id": 2,
"uuid": "0df82a98-2795-49ad-bd72-17de61b3b1c1",
"payload_url": "https://webhook/payload/url",
"active": true,
"verified": true,
"created_at": "2022-02-05T22:17:22.571+01:00",
"updated_at": "2022-02-05T22:17:22.571+01:00",
"webhook_event_kinds": [
"participant_confirmed",
]
},
{
"id": 1,
"uuid": "94e8bd6c-6b12-4c43-ad0c-c0dd0857ea6d",
"payload_url": "https://webhook/payload/url",
"active": true,
"verified": false,
"created_at": "2022-02-05T21:33:00.623+01:00",
"updated_at": "2022-02-05T21:33:00.623+01:00",
"webhook_event_kinds": [
"participant_confirmed",
"participant_destroyed"
]
}
]
Use this endpoint to retrieve all Webhooks in your organization.
HTTP Request
GET https://invitepeople.com/api/v2/webhooks
Query Parameters
Property | Type | Description |
---|---|---|
limit optional |
integer |
The max number of records retrieved. Defaults to 1000 , which is the max number of records in a single request. |
id_before optional |
integer |
Get all records with a lower id . |
updated_after optional |
string |
Get all records that have been updated after some point in time. Should be a time string in ISO 8601 format. |
Read more about filters and pagination here
Update a Webhook
curl "https://invitepeople.com/api/v2/webhooks/1" \
-X PATCH \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "active": false }'
The above command returns JSON structured like this:
{
"id": 1,
"uuid": "0191c943-08b8-4bbc-a2be-93b5a33393a3",
"payload_url": "https://webhook/payload/url",
"active": false,
"verified": true,
"created_at": "2022-02-08T06:57:02.047+01:00",
"updated_at": "2022-02-08T06:57:02.047+01:00",
"webhook_event_kinds": [
"participant_confirmed"
]
}
If an error occurs, it returns JSON structured like this:
{
"errors": [
"incorrect kind"
]
}
Use this endpoint to update a specific Webhook.
HTTP Request
PATCH https://invitepeople.com/api/v2/webhooks/<WEBHOOK_ID>
Content-Type: application/json
URL Parameters
Parameter | Description |
---|---|
WEBHOOK_ID required |
The ID of the Webhook. |
Parameters
Parameter | Type | Description |
---|---|---|
active | boolean |
Set to false to deactivate the Webhook, stopping all requests to the payload url. |
webhook_event_kinds | array |
The events that should trigger the Webhook. Possible values are participant_confirmed , participant_updated , and participant_destroyed . |
Returns
If successfull it should return the updated Webhook object.
Errors
Error | Description |
---|---|
incorrect kind | There are incorrect Webhook event kinds. Possible values are participant_confirmed , participant_updated , and participant_destroyed . |
Delete a Webhook
curl "https://invitepeople.com/api/v2/webhooks/1" \
-X DELETE \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
{
"id": 1,
"uuid": "0191c943-08b8-4bbc-a2be-93b5a33393a3",
"payload_url": "https://webhook/payload/url",
"active": true,
"verified": false,
"created_at": "2022-02-08T06:57:02.047+01:00",
"updated_at": "2022-02-08T06:57:02.047+01:00",
"webhook_event_kinds": [
"participant_confirmed"
]
}
Use this endpoint to delete a specific Webhook.
HTTP Request
DELETE https://invitepeople.com/api/v2/webhooks/<WEBHOOK_ID>
URL Parameters
Parameter | Description |
---|---|
WEBHOOK_ID required |
The ID of the Webhook. |
Returns
If successfull it should return the deleted Webhook object.
Verify a Webhook
curl "https://invitepeople.com/api/v2/webhooks/1/verify" \
-X POST \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
{
"id": 1,
"uuid": "0df82a98-2795-49ad-bd72-17de61b3b1c1",
"payload_url": "https://webhook/payload/url",
"active": true,
"verified": true,
"created_at": "2022-02-05T22:17:22.571+01:00",
"updated_at": "2022-02-05T22:17:22.571+01:00",
"webhook_event_kinds": [
"participant_confirmed",
]
}
Example code for a payload url endpoint that receives callbacks from the Webhook.
# The endpoint of the payload url that will receive the Webhooks
def payload_url_endpoint
# Make sure only request originating from the created Webhook are accepted
return head 401 unless hmac_digest(request.raw_post) == request.headers['X-Ip-Webhook-Signature']
# ...
# Return a HMAC SHA256 digest of the header X-Ip-Webhook-Delivery-Uuid to verify the endpoint
render plain: hmac_digest(request.headers['X-Ip-Webhook-Delivery-Uuid'])
end
private
# Method that creates a HMAC SHA256 digest using the Webhook secret
def hmac_digest(body)
"sha256=#{
OpenSSL::HMAC.hexdigest(
OpenSSL::Digest.new('sha256'),
ENV['WEBHOOK_SECRET'],
body
)
}"
end
Use this endpoint to verify an existing Webhook. A request will be sent to the payload_url
trying to verify the endpoint. The property verified
will be set to true
if the verification is successfull.
To become verified, the payload url endpoint should respond with a HMAC SHA256 digest of the request header X-Ip-Webhook-Delivery-Uuid
using the Webhook secret
.
HTTP Request
POST https://invitepeople.com/api/v2/webhooks/<WEBHOOK_ID>/verify
URL Parameters
Parameter | Description |
---|---|
WEBHOOK_ID required |
The ID of the Webhook. |
Webhook Deliveries
Webhook Delivery
The Webhook Delivery object represents a specific callback from a Webhook. Webhook Deliveries acts as a log for successfull and failed Webhook callbacks.
Properties
Property | Type | Description |
---|---|---|
uuid | string |
A unique ID for the specific callback that will be present in the header X-Ip-Webhook-Delivery-Uuid of the request. |
retries | integer |
The number of retries for the Webhook Delivery. Max number of retries is 3 . |
target_type | string |
The object type that triggered the Webhook. Possible values are Participant . |
target_id | integer |
The ID of the object that triggered the Webhook. |
kind | integer |
The event that triggered the Webhook. Possible values are participant_confirmed , participant_updated , and participant_destroyed . |
status | string |
The status of the Webhook Delivery after the latest retry. Possible values are delivering , success and failed . |
response_code | string |
The HTTP response code after the latest retry. |
Get all Webhook Deliveries
curl "https://invitepeople.com/api/v2/webhooks/1/deliveries" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
[
{
"id": 3,
"uuid": "06b8d557-ab59-44e2-9abf-10a300214539",
"retries": 0,
"target_type": "Participant",
"target_id": 1,
"kind": "participant_confirmed",
"status": "success",
"response_code": "200",
"created_at": "2022-02-05T22:09:34.806+01:00",
"updated_at": "2022-02-05T22:10:33.916+01:00"
},
{
"id": 2,
"uuid": "4953b473-e823-47d9-8573-e33f09ebab87",
"retries": 2,
"target_type": "Participant",
"target_id": 2,
"kind": "participant_destroyed",
"status": "success",
"response_code": "200",
"created_at": "2022-02-05T22:09:19.792+01:00",
"updated_at": "2022-02-05T22:10:33.891+01:00"
},
{
"id": 1,
"uuid": "3e164c81-69a6-44d8-9945-defedb8ac735",
"retries": 3,
"target_type": "Participant",
"target_id": 3,
"kind": "participant_confirmed",
"status": "failed",
"response_code": "401",
"created_at": "2022-02-05T22:05:51.402+01:00",
"updated_at": "2022-02-05T22:08:48.347+01:00"
}
]
Use this endpoint to retrieve all Webhook Deliveries for a Webhook.
HTTP Request
GET https://invitepeople.com/api/v2/webhooks/<WEBHOOK_ID>/deliveries
URL Parameters
Parameter | Description |
---|---|
WEBHOOK_ID required |
The ID of the Webhook. |
Query Parameters
Property | Type | Description |
---|---|---|
limit optional |
integer |
The max number of records retrieved. Defaults to 1000 , which is the max number of records in a single request. |
id_before optional |
integer |
Get all records with a lower id . |
updated_after optional |
string |
Get all records that have been updated after some point in time. Should be a time string in ISO 8601 format. |
Read more about filters and pagination here
Web Analytics
Web Analytics Metrics & Properties
Access Web Analytics for all participant-facing event pages in InvitePeople using the metrics and properties below. The properties can be used for filtering and breaking down data.
Metrics
Metric | Description |
---|---|
visitors | The number of unique visitors. |
visits | The number of visits/sessions. |
pageviews | The number of pageview events. |
bounce_rate | Bounce rate percentage. |
visit_duration | Visit duration in seconds. |
Properties
Property | Description |
---|---|
entry_page | Page on which the visit session started (landing page). |
exit_page | Page on which the visit session ended (last page viewed). |
source | Visit source, populated from an url query parameter tag (utm_source , source , or ref ) or the Referer HTTP header. |
referrer | Raw Referer header without http:// , http:// or www. . |
utm_medium | Raw value of the utm_medium query param on the entry page. |
utm_source | Raw value of the utm_source query param on the entry page. |
utm_campaign | Raw value of the utm_campaign query param on the entry page. |
utm_content | Raw value of the utm_content query param on the entry page. |
utm_term | Raw value of the utm_term query param on the entry page. |
device | Device type. Possible values are Desktop , Laptop , Tablet , and Mobile . |
browser | Name of the browser vendor. Most popular ones are Chrome , Safari , and Firefox . |
browser_version | Version number of the browser used by the visitor. |
os | Name of the operating system. Most popular ones are Mac , Windows , iOS , and Android . Linux distributions are reported separately. |
os_version | Version number of the operating system used by the visitor. |
country | ISO 3166-1 alpha-2 code of the visitor country. |
region | ISO 3166-2 code of the visitor region. |
city | GeoName ID of the visitor city. |
Aggregate Web Analytics
curl --get "https://invitepeople.com/api/v2/web_analytics/aggregate" \
-d "event_ids[]=1" \
-d "event_ids[]=2" \
-d "start_date=2023-01-01" \
-d "end_date=2023-12-31" \
-d "metrics[]=visitors" \
-d "metrics[]=pageviews" \
-d "filters[device]=Mobile" \
-d "filters[utm_source]=linkedin" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
{
"pageviews" : {
"value" : 1984
},
"visitors" : {
"value" : 564
}
}
Use this endpoint to aggregate metrics over a certain time period.
HTTP Request
GET https://invitepeople.com/api/v2/web_analytics/aggregate
Query Parameters
Parameter | Type | Description |
---|---|---|
event_ids[] required |
array |
The IDs of the Events for which to fetch Web Analytics data. |
start_date required |
string |
The start date of the time period. Should be a date string in ISO 8601 format. |
end_date required |
string |
The end date of the time period. Should be a date string in ISO 8601 format. |
metrics[] required |
array |
The metrics for which to fetch Web Analytics data. |
filters[] | object |
Filter the Web Analytics data by one or more properties. An object with property names as keys and preferred filter as values. |
Break down Web Analytics
curl --get "https://invitepeople.com/api/v2/web_analytics/breakdown" \
-d "event_ids[]=1" \
-d "event_ids[]=2" \
-d "event_ids[]=3" \
-d "start_date=2023-01-01" \
-d "end_date=2023-12-31" \
-d "metrics[]=visitors" \
-d "property=country" \
-d "filters[utm_medium]=social" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
[
{
"country" : "NO",
"visitors" : 2962
},
{
"country" : "US",
"visitors" : 984
},
{
"country" : "GB",
"visitors" : 976
},
{
"country" : "SE",
"visitors" : 518
},
{
"country" : "DE",
"visitors" : 155
},
{
"country" : "CH",
"visitors" : 148
},
{
"country" : "DK",
"visitors" : 145
},
{
"country" : "FR",
"visitors" : 111
},
{
"country" : "NL",
"visitors" : 111
},
{
"country" : "ES",
"visitors" : 85
},
{
"country" : "AE",
"visitors" : 71
},
{
"country" : "HU",
"visitors" : 60
},
{
"country" : "GR",
"visitors" : 48
},
{
"country" : "UA",
"visitors" : 1
}
]
Use this endpoint to break down data by some property over a certain time period.
HTTP Request
GET https://invitepeople.com/api/v2/web_analytics/breakdown
Query Parameters
Parameter | Type | Description |
---|---|---|
event_ids[] required |
array |
The IDs of the Events for which to fetch Web Analytics data. |
start_date required |
string |
The start date of the time period. Should be a date string in ISO 8601 format. |
end_date required |
string |
The end date of the time period. Should be a date string in ISO 8601 format. |
metrics[] required |
array |
The metrics for which to fetch Web Analytics data. |
property required |
string |
The property to break down the Web Analytics data by. |
filters[] | object |
Filter the Web Analytics data by one or more properties. An object with property names as keys and preferred filter as values. |
Get Web Analytics time series
curl --get "https://invitepeople.com/api/v2/web_analytics/timeseries" \
-d "event_ids[]=1" \
-d "start_date=2024-05-01" \
-d "end_date=2024-05-10" \
-d "metrics[]=bounce_rate" \
-d "metrics[]=visit_duration" \
-H "Authorization: Bearer $TOKEN"
The above command returns JSON structured like this:
[
{
"bounce_rate" : 64,
"date" : "2024-05-01",
"visit_duration" : 264
},
{
"bounce_rate" : 55,
"date" : "2024-05-02",
"visit_duration" : 412
},
{
"bounce_rate" : 46,
"date" : "2024-05-03",
"visit_duration" : 74
},
{
"bounce_rate" : 0,
"date" : "2024-05-04",
"visit_duration" : 487
},
{
"bounce_rate" : 60,
"date" : "2024-05-05",
"visit_duration" : 270
},
{
"bounce_rate" : 43,
"date" : "2024-05-06",
"visit_duration" : 1121
},
{
"bounce_rate" : 42,
"date" : "2024-05-07",
"visit_duration" : 508
},
{
"bounce_rate" : 50,
"date" : "2024-05-08",
"visit_duration" : 28
},
{
"bounce_rate" : 71,
"date" : "2024-05-09",
"visit_duration" : 20
},
{
"bounce_rate" : 29,
"date" : "2024-05-10",
"visit_duration" : 609
}
]
User this endpoint to fetch a time series of data over a certain time period.
HTTP Request
GET https://invitepeople.com/api/v2/web_analytics/timeseries
Query Parameters
Parameter | Type | Description |
---|---|---|
event_ids[] required |
array |
The IDs of the Events for which to fetch Web Analytics data. |
start_date required |
string |
The start date of the time period. Should be a date string in ISO 8601 format. |
end_date required |
string |
The end date of the time period. Should be a date string in ISO 8601 format. |
metrics[] required |
array |
The metrics for which to fetch Web Analytics data. |
filters[] | object |
Filter the Web Analytics data by one or more properties. An object with property names as keys and preferred filter as values. |
Error Codes
The InvitePeople API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request – Your JSON is probably malformed. |
401 | Unauthorized – Your API token or is wrong. |
404 | Not Found – The record is not found. |
422 | Unprocessable Entity - The server did not process your request, probably due to a validation error. |
500 | Internal Server Error – We had a problem with our server. Try again later. |
Changelog
2.2.19
2024-11-26
Added slug
to the Event object.
Added slug
to the Seminar object.
Added slug
to the Company object.
2.2.18
2024-09-10
Added Aggregate Web Analytics
endpoint.
Added Break down Web Analytics
endpoint.
Added Get Web Analytics time series
endpoint.
2.2.17
2024-09-07
Added Get all Partner Codes
endpoint.
Added Get a specific Partner Code
endpoint.
Added Get all Ticket Scans
endpoint.
Added Get a specific Ticket Scan
endpoint.
Added partner_code_id
to the Ticket object.
2.2.16
2024-08-16
Added Get all Companies
endpoint.
Added Get a specific Company
endpoint.
2.2.15
2024-05-20
Added data_minimization_status
to the Event object.
2.2.14
2024-04-05
Added Get all Meetings
endpoint.
Added Get a specific Meeting
endpoint.
2.2.13
2023-09-11
Added order
to the Ticket object.
2.2.12
2023-05-04
Added key published
to the Event endpoints.
2.2.11
2023-04-26
Added Update a Profile Field Value
endpoint.
Added Delete a Profile Field Value
endpoint.
2.2.10
2023-04-25
Added Get a User
endpoint.
Added Get a Profile Field Value
endpoint.
2.2.9
2023-04-11
Added a new webhook_event_kind
for the Webhook object: participant_updated
.
2.2.8
2023-03-22
Added custom_event_fields
to the Organization object.
Added custom_event_fields_data
to the Event object.
2.2.7
2023-01-20
Added Get a specific Event
endpoint.
Added Update a Participant
endpoint.
2.2.6
2022-12-22
Added Get a Ticket
endpoint.
Added Update a Ticket
endpoint.
Added Delete a Ticket
endpoint.
Added paid_price
, vat
, and external_id
to the Ticket object.
2.2.5
2022-11-18
Added keys external_id
and login_link
to the Participant object.
Added external_id
, price
, selling_start_time
, selling_end_time
, min_purchase_amount
, max_purchase_amount
, amount
, vat_percentage
, visibility
, caption
, and personal_addon
to the TicketType object.
2.2.4
2022-09-23
Added Get a specific Ticket Type
endpoint.
2.2.3
2022-06-27
Added keys honorific_title
and additional_title
to the Profile object when fetching Participants.
2.2.2
2022-05-18
Added keys tickets
and profile_field_values
to the Get all Participants
endpoint. All Participant endpoints now returns the same data structure.
2.2.1
2022-04-27
Added Send an Email
endpoint.
Added Get a specific Email
endpoint.
2.2.0
2022-02-11
Added parameters limit
, id_before
and updated_after
to Get all
endpoints. The default limit
and max number of records in a single request is now 1000.
Added the new concept Webhook
that can trigger callbacks for the events participant_confirmed
and participant_destroyed
.
Added endpoints Create a Webhook
, Get all Webhooks
, Update a Webhook
, Delete a Webhook
, Verify a Webhook
and Get all Webhook Deliveries
.
Added key created_at
to the Get your Organization
endpoint.
Added keys created_at
and updated_at
to the Get all Ticket Types
, Get all Profile Fields
, Get a specific Profile Field
and Create a Profile Field Value
endpoints.
Added error code 422 Unprocessable Entity
to docs.
2.1.2
2021-08-27
Added Get a specific Profile Field
endpoint.
2.1.1
2021-04-06
Added keys visible
and bookable
to the Create a Participant
, Get a specific Participant
and Get all Participants
endpoints.
2.1.0
2021-04-04
Added Get your Organization
endpoint.
Added Get all Ticket Types
endpoint.
Added Get all Profile Fields
endpoint.
Added Create a Participant
endpoint.
Added Create a Ticket
endpoint.
Added Create a Profile Field Value
endpoint.
Added keys time_zone
, lang
, phone
, address
, zip
, city
, country
to the Get a specific Participant
and Get all Participants
endpoints.
Added error code 400 Bad Request
to docs.
Added Event properties and other clarifications to docs.
2.0.1
2020-05-13
Added key checked_in
to the Get all Participants
endpoint.
2.0.0
2019-12-08
Initial release.