Clicky

Eventric Portal - API Documentation
Eventric: Total Live Event Control

API Version 5 Documentation

This document is under construction and may be incomplete in places. Please contact Eventric Support with any questions.

Eventric exposes certain functionality via a REST API. The API is open to the public and does not require registration. If you do something interesting using the API, we would be interested in hearing about it and possibly even featuring your app. Please contact Eventric support with any questions or information about API integrations.

For testing and debugging purposes you may make requests with your own credentials using our API Request Utility.

NOTE: When sending requests to the API or API Request Utility, be sure to include version=7 in the params if you are receiving a "426 Upgrade Required" error message.

Download Example Code

API Requests

The Eventric API is accessed using REST HTTP requests and returns data in JSON format.

GET requests are used for reading data. Ids are generally included in the endpoint and additional parameters are included in the querystring. DELETE requests require an Id as part of the endpoint. PUT (update) and POST (insert) requests will include an Id (if relevant) in the endpoint and the object being inserted/updated must be included in the HTTP request body as JSON. If you are working with a client application that does not support HTTP PUT or DELETE requests, you can alternately pass the method in the querystring, for example: _method=PUT

All requests must be signed with an oAuth 1.0 signature. A public/secret keypair must be be obtained either using the getkeys endpoint or your application can request the API Key/Secret directly from the user. The user can visit their API Key/Secret Page to obtain this information. Every request will be made on behalf of the owner of the signing key and the server will validate permissions.

API Responses

All responses from the API are returned as JSON string and have three consistent properties: success, message and data.

A successful response will return an HTTP status of "200 OK" and contain a response body similar to the example below. If records were requested then the "data" property will contain an array of objects or a single object, depending on the request being made. For write operations the data property may either contain no information, a primary key of a newly inserted record, or a partial version of the object that was affected.

{
  "success": true,
  "message": "Success message suitable for display to user",
  "data": {}
}

A failure response will return an HTTP status of "400 Bad Request" and contain a response body similar to the example below. Your application should be prepared to check the status property and handle this response. This type of response does not necessarily indicate a problem, but rather that invalid data was entered by the user or an unknown action was requested.

{
  "success": false,
  "message": "Error message suitable for display to user",
  "data": "Technical debugging information such as a stack trace or error message"
}

If the server responds with an HTTP status of 500, or the response body contains non-JSON content, that potentially indicates a fatal server error or bug and should be reported to Eventric Support. For stability purposes your app should be prepared to gracefully fail when receiving such a response.

Authentication

api/v5/getkeys

Returns a collection of public/private keypairs that are used for oAuth signing for all other API calls. The querystring must contain the parameters username and password. The response wil contain a collection of one or more API keys that can be used for oAuth signing:

{
  success: true,
  message: "1 key(s) found",
  data: {
    account: {
      id: "xxxxxxxxxxxxxxxxxxxxxxxxxx",
      fullName: "",
      company: "",
      email: ""
    },
    keys: [
      {
        id: "yyyyyyyyyyyyyyyyyyyyyyy",
        secret: "zzzzzzzzzzzzzzzzzzzzzzzzzzzz",
        keyType: "MASTERTOUR",
        createdDate: "2013-01-01 00:00:00",
        expirationDate: "2023-01-01 00:00:00"
      }
    ]
  }
}

Tours

GET: api/v5/tours

Returns all tours to which the authenticated user has access

GET: api/v5/tour/(tourId)

Returns the tour with the given Id, including tour dates.

Querystring Params:

GET: api/v5/tour/(tourId)/crew

Returns the crew/personnel assigned to the tour with the given Id.

Days

GET: api/v5/day/(dayId)

Return the Day with the given Id

GET: api/v5/tour/(tourId)/summary/YYYY-MM-DD

Return a quick summary of the itinerary for the given calendar date (replace YYYY-MM-DD with the desired date)

PUT: api/v5/day/(dayId)

Update the Day with the given Id (currently only updates notes fields). The body of the request must contain a JSON encoded object with all of the following properties

{
  "generalNotes": "",
  "travelNotes": "",
  "hotelNotes": ""
}

Itinerary

POST: api/v5/itinerary

Insert a new schedule item into the itinerary. Note that currently only standard schedule items can be inserted, which excludes travel, publicity, etc. The body of the request must contain a JSON encoded object with all of the following properties:

{
  "parentDayId": "",
  "title": "",
  "details": "",
  "isConfirmed": true,
  "isComplete": false,
  "startDatetime": "2015-01-01 08:30:00",
  "endDatetime": "2015-01-01 09:00:00",
  "timePriority": ""
}

PUT: api/v5/itinerary/(itemId)

Update an existing schedule item in the itinerary. Note that travelDetail is only relevant if a travel item is being edited. The body of the request must contain a JSON encoded object with all of the following properties:

{
  "title": "",
  "details": "",
  "travelDetail": "",
  "isConfirmed": true,
  "isComplete": false,
  "startDatetime": "2015-01-01 08:30:00",
  "endDatetime": "2015-01-01 09:00:00",
  "timePriority": ""
}

DELETE: api/v5/itinerary/(itemId)

Deletes the schedule item with the given Id

Events

GET: api/v5/day/(dayId)/events

Returns a collection of Event objects for the Day with the given Id.

Contacts

GET: api/v5/company/(companyId)/contacts

Returns a collection of Contact objects that are attached to the Company with the given Id.

Hotels

GET: api/v5/day/(dayId)/hotels

Returns a collection of Hotel objects that are attached to the Day with the given Id.

GET: api/v5/hotel/(hotelId)/contacts

Returns all people/contacts attached to the hotel with the given Hotel Id.

GET: api/v5/hotel/(hotelId)/roomlist

Returns the Room List for the hotel with the given Hotel Id.

Guest List

GET: api/v5/event/(eventId)/guestlist

Returns a collecion of guest list requests for the Event with the given Id.

POST: api/v5/guestlist

Insert a new guest list request. The body of the request must contain a JSON encoded object with all of the following properties:

{
  "eventId": "",
  "guestFirstName": "",
  "guestLastName": "",
  "contactEmail": "",
  "quantity": "",
  "instructions": "",
  "paymentStatusCode": "",
  "passTypeRequested": "",
  "requestedBy": ""
}

PUT: api/v5/guestlist/(guestListId)

Updates an existing guest list request. The body of the request must contain a JSON encoded object with all of the following properties:

{
  "guestFirstName": "",
  "guestLastName": "",
  "contactEmail": "",
  "quantity": "",
  "instructions": "",
  "paymentStatusCode": "",
  "passTypeRequested": "",
  "requestedBy": ""
}

Set List

GET: api/v5/event/(eventId)/setlist

Return the set list for the Event with the given Id.

Push Notifications

GET: api/v5/push/history

Returns the received push notifications for the authenticated user. One parameter includeSent is optional and, if true, will also return notifications that were sent by the authenticated user.