Introduction

This API can be used to programmatically pull data out of ExhibitDay or push data into ExhibitDay -- allowing for automation between ExhibitDay and your internal systems (or other third-party software). To use the API, you'll need working knowledge of consuming REST APIs.

Prerequisite

An API Key is required in order to make API calls. You can obtain your API Key from your ExhibitDay account (under Workspace Settings > API & Integrations > API Access).

Methods and Parameters

There are 3 ways you can pass in the parameter(s) for a method when making an API call:
  1. Parameters In the Request Body (recommended)
    Example: Update an Event's Name (change the name of the event with eventid 12345 to be "Foo Bar")
    curl -X PATCH https://api.exhibitday.com/v1/events -H "Content-Type: application/json" -d "{\"api_key\":\"YOUR_API_KEY\", \"id\":\"12345\", \"name\":\"Foo Bar\"}"
  2. Parameters In the Request Header
    Example (delete an event that has an eventid of 12345):
    curl -X DELETE https://api.exhibitday.com/v1/events -H "api_key: YOUR_API_KEY" -H "id: 12345"
  3. Parameters In the Request URL (only recommended for simple API calls, such as retrieving a task or a list of events)
    Example (get a list of events):
    curl -X GET "https://api.exhibitday.com/v1/events?api_key=YOUR_API_KEY"
Pro tip: you can mix-and-match where the parameters are placed in the request. For example, the api_key parameter (which is a required parameter of every API method) can be placed in the request Header and all other parameters can be placed in the request Body.

Updating and Clearing Values

When you update an object (e.g., an event or a task), only pass in the parameters that you want to change. Any parameter you don't pass in is left unchanged.
  • To change a value, pass in the new value.
  • To clear a value, pass in null (a JSON null, or the text "null"). Text values are emptied, dates are removed, and numbers are reset to 0. Values that are required (e.g., an event's name or start date) cannot be cleared; the request is rejected with an error.
  • An empty value doesn't change anything. If you pass in an empty value (e.g., ""), the current value is kept and the response includes a warnings property naming that parameter. This way, a form or an integration tool that sends every field (including the ones that were left blank) never erases your data by accident.
Example (remove the due date of the task that has a taskid of 12345; the empty details value leaves the task's details unchanged):
curl -X PATCH https://api.exhibitday.com/v1/tasks -H "Content-Type: application/json" -d "{\"api_key\":\"YOUR_API_KEY\", \"id\":\"12345\", \"due_date\":null, \"details\":\"\"}"
Response:
{"status_code":200,"status":"OK","message":"Task Update Successful. Task properties that were changed: due_date","errors":[],"warnings":["details was empty, so it was left unchanged. To clear it, send null."]}
Note: when you add an object (e.g., with a POST call), passing in null is the same as leaving the parameter out.

Response Status Codes

Code Status Description
200 OK Indicates that the request was successfully processed.
400 Bad Request Indicates an issue with the request (i.e., missing required parameter(s) or invalid parameter values).
404 Resource Not Found The requested object was not found (e.g., an incorrect event id was passed in when retrieving an event).
429 Too Many Requests The API rate limit is a maximum of 50 calls per second.
500 Internal Server Error Indicates that an unexpected error has occurred.