Delegates
Delegates represent a Contacts places on Events in the system.
A delegate is a member of the events module and provides information about a delegate as well as their related event and contact.
A delegate record holds the following information:
- registration_id
- comms_contact
- comms_contact_id
- event_id
- notes
- contact_id
- event
- overall_attendance
- contact
- cancelled_date
- passed
- num_delegates
- id
Getting Delegates
GET (/api/v2/event/delegates/:id()
statuscode 200
no error
statuscode 404
does not exist
Using Curl:
curl https://YOUR-SUBDOMAIN.administrateapp.com/api/v2/event/delegates/4 -k -u (login):(password)
Using PHP:
<?php
$credentials = '(username):(password)';
$url = 'https://YOUR-SUBDOMAIN.administrateapp.com/api/v2/event/delegates/4';
$options = array(
'http' => array(
'method' => 'GET',
'header'=> "Accept: application/json\r\n" .
"Authorization: Basic " . base64_encode($credentials)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
echo $result;
Using Python:
import json
import requests
response = requests.get('http://YOUR-SUBDOMAIN.administrateapp.com/api/v2/event/delegates/4',
auth=('<username>', '<password>'))
print response.json
Example response:
{
"registration_id": 1,
"comms_contact": null,
"comms_contact_id": null,
"event_id": 1,
"notes": "hay",
"contact_id": 1,
"event": {
"prices": [],
"personnel_administrator": null,
"personnel_tutor": null,
"code": null,
"personnel_administrator_id": null,
"region_id": null,
"price": null,
"course": null,
"tag": null,
"course_id": null,
"id": 1,
"end_time": null,
"delegates_max": null,
"venue_id": null,
"title": "User Defined",
"personnel": [],
"tax_type": null,
"company_id": null,
"delegates_reserved": 0.0,
"location": null,
"classroom_end": null,
"is_sold_out": false,
"notes2": null,
"event_template_id": null,
"type": "public",
"start_date": null,
"delegates_booked": 1.0,
"account_id": null,
"end_date": null,
"start_time": null,
"registration_deadline": null,
"tag_id": null,
"classroom_start": null,
"disposition": null,
"is_online": false,
"is_cancelled": false,
"delegates_actual": 1,
"account": null,
"is_provisional": false,
"non_working_days": [],
"region": null,
"is_lms": false,
"venue": null,
"overall_attendance": null,
"account_venue": null,
"personnel_tutor_id": null,
"tax_type_id": null,
"notes": null,
"currency_code": null
},
"overall_attendance": null,
"contact": {
"membership_number": null,
"last_name": "Smith",
"tel": null,
"address_unit": null,
"contract_notes": null,
"created_on": "2017-03-14T16:38:23",
"inactive": false,
"salutation": null,
"address_postcode": null,
"address_street": null,
"id": 1,
"first_name": "John",
"middle_name": null,
"import_ref": null,
"address_region": null,
"organisation": null,
"company_id": 1,
"department": null,
"address_locality": null,
"email": null,
"job_title": null,
"dont_mail": false,
"fax": null,
"account_id": 1,
"marketing_activity_id": null,
"lms_bio": null,
"address_town": null,
"source2": null,
"source1": null,
"is_admin": 0,
"is_tutor": false,
"tutor_bio": null,
"dormant": null,
"is_deleted": false,
"address_country_id": null,
"mobile": null,
"notes": null,
"is_staff": false,
"no_third_party": null,
"created_by_id": null,
"external_id": null
},
"cancelled_date": null,
"passed": null,
"num_delegates": 1,
"id": 4
}
Getting more than one Delegate
GET (/api/v2/event/delegates()
statuscode 200
no error
statuscode 404
does not exist
Using Curl:
curl https://YOUR-SUBDOMAIN.administrateapp.com/api/v2/event/delegates -k -u (login):(password)
Using PHP:
<?php
$credentials = '(username):(password)';
$url = 'https://YOUR-SUBDOMAIN.administrateapp.com/api/v2/event/delegates';
$options = array(
'http' => array(
'method' => 'GET',
'header'=> "Accept: application/json\r\n" .
"Authorization: Basic " . base64_encode($credentials)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
echo $result;
Using Python:
import json
import requests
response = requests.get('http://YOUR-SUBDOMAIN.administrateapp.com/api/v2/event/delegates',
auth=('<username>', '<password>'))
print response.json
Example response:
[
{
"registration_id": null,
"comms_contact": null,
"comms_contact_id": null,
"event_id": 1,
"notes": "hay",
"contact_id": 1,
"event": {
"prices": [],
"personnel_administrator": null,
"personnel_tutor": null,
"code": null,
"personnel_administrator_id": null,
"region_id": null,
"price": null,
"course": null,
"tag": null,
"course_id": null,
"id": 1,
"end_time": null,
"delegates_max": null,
"venue_id": null,
"title": "User Defined",
"personnel": [],
"tax_type": null,
"company_id": null,
"delegates_reserved": 0.0,
"location": null,
"classroom_end": null,
"is_sold_out": false,
"notes2": null,
"event_template_id": null,
"type": "public",
"start_date": null,
"delegates_booked": 2.0,
"account_id": null,
"end_date": null,
"start_time": null,
"registration_deadline": null,
"tag_id": null,
"classroom_start": null,
"disposition": null,
"is_online": false,
"is_cancelled": false,
"delegates_actual": null,
"account": null,
"is_provisional": false,
"non_working_days": [],
"region": null,
"is_lms": false,
"venue": null,
"overall_attendance": null,
"account_venue": null,
"personnel_tutor_id": null,
"tax_type_id": null,
"notes": null,
"currency_code": null
},
"overall_attendance": null,
"contact": {
"membership_number": null,
"last_name": "Smith",
"tel": null,
"address_unit": null,
"contract_notes": null,
"created_on": "2017-03-14T16:38:23",
"inactive": false,
"salutation": null,
"address_postcode": null,
"address_street": null,
"id": 1,
"first_name": "John",
"middle_name": null,
"import_ref": null,
"address_region": null,
"organisation": null,
"company_id": 1,
"department": null,
"address_locality": null,
"email": null,
"job_title": null,
"dont_mail": false,
"fax": null,
"account_id": 1,
"marketing_activity_id": null,
"lms_bio": null,
"address_town": null,
"source2": null,
"source1": null,
"is_admin": 0,
"is_tutor": false,
"tutor_bio": null,
"dormant": null,
"is_deleted": false,
"address_country_id": null,
"mobile": null,
"notes": null,
"is_staff": false,
"no_third_party": null,
"created_by_id": null,
"external_id": null
},
"cancelled_date": null,
"passed": null,
"num_delegates": 1,
"id": 2
},
{
"registration_id": null,
"comms_contact": null,
"comms_contact_id": null,
"event_id": 1,
"notes": "bee",
"contact_id": 1,
"event": {
"prices": [],
"personnel_administrator": null,
"personnel_tutor": null,
"code": null,
"personnel_administrator_id": null,
"region_id": null,
"price": null,
"course": null,
"tag": null,
"course_id": null,
"id": 1,
"end_time": null,
"delegates_max": null,
"venue_id": null,
"title": "User Defined",
"personnel": [],
"tax_type": null,
"company_id": null,
"delegates_reserved": 0.0,
"location": null,
"classroom_end": null,
"is_sold_out": false,
"notes2": null,
"event_template_id": null,
"type": "public",
"start_date": null,
"delegates_booked": 2.0,
"account_id": null,
"end_date": null,
"start_time": null,
"registration_deadline": null,
"tag_id": null,
"classroom_start": null,
"disposition": null,
"is_online": false,
"is_cancelled": false,
"delegates_actual": null,
"account": null,
"is_provisional": false,
"non_working_days": [],
"region": null,
"is_lms": false,
"venue": null,
"overall_attendance": null,
"account_venue": null,
"personnel_tutor_id": null,
"tax_type_id": null,
"notes": null,
"currency_code": null
},
"overall_attendance": null,
"contact": {
"membership_number": null,
"last_name": "Smith",
"tel": null,
"address_unit": null,
"contract_notes": null,
"created_on": "2017-03-14T16:38:23",
"inactive": false,
"salutation": null,
"address_postcode": null,
"address_street": null,
"id": 1,
"first_name": "John",
"middle_name": null,
"import_ref": null,
"address_region": null,
"organisation": null,
"company_id": 1,
"department": null,
"address_locality": null,
"email": null,
"job_title": null,
"dont_mail": false,
"fax": null,
"account_id": 1,
"marketing_activity_id": null,
"lms_bio": null,
"address_town": null,
"source2": null,
"source1": null,
"is_admin": 0,
"is_tutor": false,
"tutor_bio": null,
"dormant": null,
"is_deleted": false,
"address_country_id": null,
"mobile": null,
"notes": null,
"is_staff": false,
"no_third_party": null,
"created_by_id": null,
"external_id": null
},
"cancelled_date": null,
"passed": null,
"num_delegates": 1,
"id": 3
}
]
Filtering
The results for a list of contacts can be filtered. See Filtering
Creating Delegates
POST (/api/v2/event/delegates()
Required fields:
- event_id
- contact_id
Note: When creating delegates you need to check for possible overbooking the event. This api call is not preventing overbooking on the event. To check if you are not going to overbook the event please use the get private/public events endpoint.
statuscode 200
no error
statuscode 404
could not create
Using Curl:
curl https://YOUR-SUBDOMAIN.administrateapp.com/api/v2/event/delegates -H "Content-Type: application/json" -k -u (login):(password) -X POST -d '{"event_id": 1, "notes": "hay", "contact_id": 1}'
Using PHP:
<?php
$credentials = '(username):(password)';
$url = 'https://YOUR-SUBDOMAIN.administrateapp.com/api/v2/event/delegates';
$data = array("event_id" => 1, "notes" => u'hay', "contact_id" => 1);
$options = array(
'http' => array(
'method' => 'POST',
'content' => json_encode($data),
'header'=> "Content-Type: application/json\r\n" .
"Accept: application/json\r\n" .
"Authorization: Basic " . base64_encode($credentials)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
echo $result;
Using Python:
import json
import requests
data = {u'event_id': 1, u'notes': u'hay', u'contact_id': 1}
response = requests.post('http://YOUR-SUBDOMAIN.administrateapp.com/api/v2/event/delegates',
data=json.dumps(data),
headers={'content-type': 'application/json'},
auth=('<username>', '<password>'))
print response.json
Example response:
{
"registration_id": 1,
"comms_contact": null,
"comms_contact_id": null,
"event_id": 1,
"notes": "hay",
"contact_id": 1,
"event": {
"prices": [],
"personnel_administrator": null,
"personnel_tutor": null,
"code": null,
"personnel_administrator_id": null,
"region_id": null,
"price": null,
"course": null,
"tag": null,
"course_id": null,
"id": 1,
"end_time": null,
"delegates_max": null,
"venue_id": null,
"title": "User Defined",
"personnel": [],
"tax_type": null,
"company_id": null,
"delegates_reserved": 0.0,
"location": null,
"classroom_end": null,
"is_sold_out": false,
"notes2": null,
"event_template_id": null,
"type": "public",
"start_date": null,
"delegates_booked": 1.0,
"account_id": null,
"end_date": null,
"start_time": null,
"registration_deadline": null,
"tag_id": null,
"classroom_start": null,
"disposition": null,
"is_online": false,
"is_cancelled": false,
"delegates_actual": 1,
"account": null,
"is_provisional": false,
"non_working_days": [],
"region": null,
"is_lms": false,
"venue": null,
"overall_attendance": null,
"account_venue": null,
"personnel_tutor_id": null,
"tax_type_id": null,
"notes": null,
"currency_code": null
},
"overall_attendance": null,
"contact": {
"membership_number": null,
"last_name": "Smith",
"tel": null,
"address_unit": null,
"contract_notes": null,
"created_on": "2017-03-14T16:38:23",
"inactive": false,
"salutation": null,
"address_postcode": null,
"address_street": null,
"id": 1,
"first_name": "John",
"middle_name": null,
"import_ref": null,
"address_region": null,
"organisation": null,
"company_id": 1,
"department": null,
"address_locality": null,
"email": null,
"job_title": null,
"dont_mail": false,
"fax": null,
"account_id": 1,
"marketing_activity_id": null,
"lms_bio": null,
"address_town": null,
"source2": null,
"source1": null,
"is_admin": 0,
"is_tutor": false,
"tutor_bio": null,
"dormant": null,
"is_deleted": false,
"address_country_id": null,
"mobile": null,
"notes": null,
"is_staff": false,
"no_third_party": null,
"created_by_id": null,
"external_id": null
},
"cancelled_date": null,
"passed": null,
"num_delegates": 1,
"id": 4
}
Deleting Delegates
DELETE (/api/v2/event/delegates/(int: id)
statuscode 200
deleted entity successfully
statuscode 404
entity not found
Using Curl:
curl https://YOUR-SUBDOMAIN.administrateapp.com/api/v2/event/delegates/1 -X DELETE -k -u (login):(password)
Using PHP:
<?php
$credentials = '(username):(password)';
$url = 'https://YOUR-SUBDOMAIN.administrateapp.com/api/v2/event/delegates/1';
$options = array(
'http' => array(
'method' => 'DELETE',
'header'=> "Accept: application/json\r\n" .
"Authorization: Basic " . base64_encode($credentials)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
echo $result;
Using Python:
import json
import requests
response = requests.delete('http://YOUR-SUBDOMAIN.administrateapp.com/api/v2/event/delegates/1',
auth=('<username>', '<password>'))
print response.json
Example response:
{
"registration_id": null,
"comms_contact": null,
"comms_contact_id": null,
"event_id": 1,
"notes": "hay",
"contact_id": 1,
"event": {
"prices": [],
"personnel_administrator": null,
"personnel_tutor": null,
"code": null,
"personnel_administrator_id": null,
"region_id": null,
"price": null,
"course": null,
"tag": null,
"course_id": null,
"id": 1,
"end_time": null,
"delegates_max": null,
"venue_id": null,
"title": "User Defined",
"personnel": [],
"tax_type": null,
"company_id": null,
"delegates_reserved": 0.0,
"location": null,
"classroom_end": null,
"is_sold_out": false,
"notes2": null,
"event_template_id": null,
"type": "public",
"start_date": null,
"delegates_booked": 0.0,
"account_id": null,
"end_date": null,
"start_time": null,
"registration_deadline": null,
"tag_id": null,
"classroom_start": null,
"disposition": null,
"is_online": false,
"is_cancelled": false,
"delegates_actual": null,
"account": null,
"is_provisional": false,
"non_working_days": [],
"region": null,
"is_lms": false,
"venue": null,
"overall_attendance": null,
"account_venue": null,
"personnel_tutor_id": null,
"tax_type_id": null,
"notes": null,
"currency_code": null
},
"overall_attendance": null,
"contact": {
"membership_number": null,
"last_name": "Smith",
"tel": null,
"address_unit": null,
"contract_notes": null,
"created_on": "2017-03-14T16:38:23",
"inactive": false,
"salutation": null,
"address_postcode": null,
"address_street": null,
"id": 1,
"first_name": "John",
"middle_name": null,
"import_ref": null,
"address_region": null,
"organisation": null,
"company_id": 1,
"department": null,
"address_locality": null,
"email": null,
"job_title": null,
"dont_mail": false,
"fax": null,
"account_id": 1,
"marketing_activity_id": null,
"lms_bio": null,
"address_town": null,
"source2": null,
"source1": null,
"is_admin": 0,
"is_tutor": false,
"tutor_bio": null,
"dormant": null,
"is_deleted": false,
"address_country_id": null,
"mobile": null,
"notes": null,
"is_staff": false,
"no_third_party": null,
"created_by_id": null,
"external_id": null
},
"cancelled_date": null,
"passed": null,
"num_delegates": 1,
"id": 1
}
Naming Unnamed Delegates
Using the REST API, we can ‘name’ unnamed delegates. Unnamed delegate rows have no contact_id, but instead have a value num_places. Naming a delegate will decrement the num_places attribute, and create a new ‘named’ delegate row. If the unnamed delegate has a num_places of 0 after this operation, it is deleted.
POST (/api/v2/event/delegates/(int: id/name()
Required Fields
- contact_id
statuscode 200
no error
statuscode 400
no contact_id supplied
statuscode 404
delegate or contact do not exist
Using Curl:
curl -k -u (user):(password) https://YOUR-SUBDOMAIN/api/v2/event/delegates/1/name \
-H 'Content-type: application/json' \
-d '{
"contact_id": 47403
}'
Example Response
{
"event_id":1,
"notes":null,
"contact_id":47403,
"event":{
"personnel_administrator":null,
"personnel_tutor":null,
"code":null,
"personnel_administrator_id":null,
"region_id":null,
"price":null,
"course":null,
"tag":null,
"course_id":null,
"id":1,
"delegates_max":null,
"venue_id":null,
"title":null,
"personnel":[
],
"tax_type":null,
"company_id":null,
"location":null,
"type":"public",
"start_date":null,
"end_time":null,
"account_id":null,
"end_date":null,
"start_time":null,
"tag_id":null,
"disposition":null,
"delegates_actual":null,
"account":null,
"is_provisional":null,
"non_working_days":[
],
"region":null,
"is_lms":false,
"venue":null,
"personnel_tutor_id":null,
"tax_type_id":null,
"currency_code":null
},
"contact":{
"membership_number":null,
"last_name":"Smith",
"tel":null,
"address_unit":null,
"contract_notes":null,
"created_on":"2013-10-30T14:05:00",
"inactive":false,
"salutation":null,
"address_postcode":null,
"address_street":null,
"id":47403,
"first_name":"John",
"middle_name":null,
"import_ref":null,
"address_region":null,
"organisation":null,
"company_id":1,
"department":null,
"address_locality":null,
"email":null,
"job_title":null,
"dont_mail":false,
"fax":null,
"account_id":1,
"marketing_activity_id":null,
"lms_bio":null,
"address_town":null,
"source2":null,
"source1":null,
"is_admin":0,
"user_id":null,
"is_tutor":false,
"tutor_bio":null,
"dormant":null,
"is_deleted":false,
"address_country_id":null,
"mobile":null,
"notes":null,
"is_staff":false,
"no_third_party":null,
"created_by_id":null,
"external_id":null
},
"id":1,
"num_delegates": 1
}
Delegate Scores
Viewing Scores
GET (/api/v2/event/delegates/:id/scores()
Example Response:
[
{
mapping: {
label: "Date Of Exam",
id: 137,
type_id: 3
},
value: "2014-02-12"
},
{
mapping: {
label: "Attended Exam?",
id: 138,
type_id: 1
},
value: "on"
},
{
mapping: {
label: "Score",
id: 139,
type_id: 9
},
value: "91"
}
]
Setting Scores
Scores can be set by POSTing a dictionary of mapping_id:value pairs to the a specific delegates’ /scores endpoint.
The mappings which are available to each delegate depend on the event that they are registered to, and can be checked using the following series of API calls:
/api/v2/event/public_event/<id>
From this, you can retrieve the event_template_id. Then,
/api/v2/system/custom_template/<id>
This will include a list of mappings including their ID’s and types.
POST (/api/v2/event/delegates/:id/scores()
Using cURL:
curl https://YOUR-SUBDOMAIN/api/v2/event/delegates/(id)/scores \
-v -u (login):(password) \
-X POST \
-H "Content-type: application/json" \
-d {"137": "2014-10-10", \
"138": "on", \
"139": "87", \
}'
Example Response:
[
{
mapping: {
label: "Date Of Exam",
id: 137,
type_id: 3
},
value: "2014-10-10"
},
{
mapping: {
label: "Attended Exam?",
id: 138,
type_id: 1
},
value: "on"
},
{
mapping: {
label: "Score",
id: 139,
type_id: 9
},
value: "87"
}
]