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"
    }
]