ClearVantage has an extensive REST-based API that utilizes OAUTH for authentication. A third-party app may utilize the api to populate the event and attendee information. Note that calls below are for explanatory purposes and the contents of the returned packets can easily be modified (e.g., to pull back more detailed profile information about an attendee). Furthermore, the calls can be fine-tuned to, for example, get only new or updated attendees since the last call was made.
The process starts with making a call to Euclid’s authorization service. If valid credentials are provided, a JSON Packet with an access_token is provided. This token along with the client_id must be put into the authorization section of the http request header for all subsequent calls. Please review the links below and their responses to get a better understanding of what the API calls return. Also note that the API allows writing back of attendance and other information, but we have not provided those URLs in the list below.
- Get authorization:
https://domain.org/cvapi/auth/client_id/[CLIENTID]/client_secret/[SECRET]
- Once you get the authorization, you can make the calls below. In the actual production environment, you would place the client_id and the access_token into the authentication portion of the http packet. For the purposes of this demo, we have enabled cookie based authentication so the links below can be made directly. Note that this is just an example of the hundreds of API calls that are available.
Example JSON Return:
{"Status":"Success","access_token":"{B1C7BF91-7613-4B54-B451-1C970FAB2FF7}","token_type":"application","expires_in": "0"}
Example use of curl to include authorization header:
curl -X GET https://domain.com -H "Cache-Control: no-cache" -H "Content-Type: application/json" -H "Authorization: oauth_token={B1C7BF91-7613-4B54-B451-1C970FAB2FF7}"
Example use of Javascript to include authorization header:
var url = "https://www.domain.com";
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("cache-control", "no-cache");
xhr.setRequestHeader("Content-type", "application/json");
xhr.setRequestHeader("Authorization", "oauth_token={B1C7BF91-7613-4B54-B451-1C970FAB2FF7}");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}};
xhr.send();
- Get a list of upcoming events, all events with a start date greater than today:
https://domain.org/api/eventList
Example JSON Return:
{
"results": 1,
"rows": [
{
"EventCD": "LS2020",
"EventName": "2020 Leadership Symposium",
"StartDate": "Friday, January 17, 2020",
"EndDate": "Monday, January 20, 2020",
"ProgramCD":"LS",
"Status":"Open",
"LocationCity":"McLean",
"LocationStateCD":"VA",
"DateRange":"01\/17\/20 - 01\/20\/20"
}]}
- Get basic information about a specific event:
https://domain.org/api/eventInfo/BESTEVENT
Example JSON Return:
{
"EventCD":"BESTEVENT",
"SessionCD":"448",
"CompanyCD":"001",
"ProgramCD":"KM",
"EventName":"Best of Webinar Series",
"EventDesc":"",
"MarketingCity":"",
"MarketingStateCD":"",
"Status":"Open",
"DayCount":"0",
"StartTime":"8:00 AM",
"EndTime":"9:00 AM",
"StartDate":"10/16/2017",
"EndDate":"11/09/2017",
"LastRegisterDate":"10/16/2017",
"EarlyRegisterDate":"10/16/2017",
"ViewOnlineFLG":"Y",
"RegisterOnlineFLG":"Y",
"MajorCategory":"",
"MinorCategory":"",
"CanCancelFLG":"Y",
"LastCancelDate":"10/16/2017",
"CancelFeeAmt":"0.50",
"AttendeeMaxQTY":"0",
"AttendeeMinQTY":"0",
"LocationName":"GoTo Webinar",
"LocationCD":"45",
"LocationPhone":"703-555-1234",
"LocationContactName":"John Sweet",
"LocationContactPhone":"703-555-1234",
"LocationFaxPhone":"",
"LocationContactEmail":"name@domain.org",
"LocationAddress1":"123 Main Drive",
"LocationAddress2":"",
"LocationCity":"McLean",
"LocationStateCD":"VA",
"LocationZip":"22101",
}]
}
- Get extended information about a specific event (includes HTML description, prices, sponsors, functions):
https://domain.org/api/eventInfoFull/BESTEVENT
Example JSON Return:
{
"EventCD":"BESTEVENT",
"SessionCD":"448",
"CompanyCD":"001",
"ChapterCD":"",
"ProgramCD":"KM",
"EventName":"Best of Webinar Series",
"EventDesc":"",
"MarketingCity":"",
"MarketingStateCD":"",
"Status":"Open",
"DayCount":"0",
"StartTime":"8:00 AM",
"EndTime":"9:00 AM",
"StartDate":"10/16/2017",
"EndDate":"11/09/2017",
"LastRegisterDate":"10/16/2017",
"EarlyRegisterDate":"10/16/2017",
"ViewOnlineFLG":"Y",
"RegisterOnlineFLG":"Y",
"MajorCategory":"",
"MinorCategory":"",
"CanCancelFLG":"Y",
"LastCancelDate":"10/16/2017",
"CancelFeeAmt":"0.50",
"AttendeeMaxQTY":"0",
"AttendeeMinQTY":"0",
"LocationName":"GoTo Webinar",
"LocationCD":"45",
"LocationPhone":"703-555-1234",
"LocationContactName":"John Sweet",
"LocationContactPhone":"703-555-1234",
"LocationFaxPhone":"",
"LocationContactEmail":"name@domain.org",
"LocationAddress1":"123 Main Drive",
"LocationAddress2":"",
"LocationCity":"McLean",
"LocationStateCD":"VA",
"LocationZip":"22101",
"LocationCountry":"USA",
"LocationRoomRate":"",
"LocationMeetingRoom":"",
"HTMLDescription":"",
"HTMLSponsorDescription":"",
"Prices":[{
"PRICENAME":"Member",
"PRICEDES":"Member Pricing",
"PRICE":"120.00",
"FORMEMBERFLG":"Y",
"EARLYFLG":"N",
"STANDARDFLG":"Y"
},
{
"PRICENAME":"Non-Member",
"PRICEDES":"Non-Member Pricing ",
"PRICE":"200.00",
"FORMEMBERFLG":"N",
"EARLYFLG":"N",
"STANDARDFLG":"Y"
},
{}],
"Functions":[{}],
"Speakers":[{}]
}]
}
- Get a list of the attendees to an event:
https://domain.org/api/eventAttendees/BESTEVENT
Example JSON Return:
{
"results": 1,
"rows": [
{
"ASSIGNEDSESSIONCD":"117385",
"CUSTOMERCD":"12345",
"FIRSTNAME":"John",
"LASTNAME":"Doe",
"ORGANIZATION":"Acme Inc.",
"JOBTITLE":"Information Specialist",
"EMAIL":"name@acme.com",
"CITY":"Rockville",
"STATECD":"MD",
"MEMBERTYPE":"AP",
"PRICETYPESTT":"Member",
"PAIDFLG":"Y",
"CANCELLEDFLG":"N",
"INVOICENUM":"34567",
"SHOWDIRECTORYFLG":"Y",
"CONFERENCEPROFILE":"",
"CUSTOMERIMAGE":""
}]
}
- Get a list of attendees to a specific function of an event:
https://domain.org/api/functionAttendees/BESTEVENT/100TOUR
- Get speakers and function assignments:
https://domain.org/api/eventSpeakers/BESTEVENT
- Get a list of sponsors:
https://domain.org/api/eventSponsors/BESTEVENT
- Get a list of exhibitors:
https://domain.org/api/eventExhibitors/BESTEVENT
- Get a list of available function tracks:
https://domain.org/api/eventTracks/BESTEVENT
- Get a list of the functions associated with a given function track:
https://domain.org/api/eventTrack/BESTEVENT/FULLDAY
- Get a list of enrolled functions for a given attendee:
https://domain.org/api/eventAttendee/20527
- Get a list all members:
https://domain.org/api/memberlistall
- Get a list of members that have been updated since the date passed getdate() option is for current day:
https://domain.org/api/memberlist/3-21-2020
- https://domain.org/api/memberlist/getdate()
- Example JSON Return:
{
"results": 1,
"rows": [
{
"CUSTOMERCD":"12345",
"PREFIX":"Mr.",
"FIRSTNAME":"Rule",
"MI":"",
"LASTNAME":"Lopez",
"SUFFIX":"",
"EMAIL":"name@domain.com",
"COMPANY":"",
"JOBTITLE":"Research Mgr",
"DEPARTMENT":"",
"ADDRESS1":"",
"ADDRESS2":"123 Main Street",
"CITY":"New York",
"STATECD":"NY",
"ZIP":"10153",
"COUNTRY":"United States",
"PHONE":"",
"ISMEMBER":"Y",
"MEMBERTYPE":"AP",
"MEMBERSTATUS":"Active",
"JOINDATE":"05/01/2013",
"EXPIREDATE":"07/01/2021",
"LASTCHANGEDATE":"11/05/2020"
}
]
}