Reference / Publisher API / v1
Publisher API
A feed of evvnt's data for publishing to your site or app. Also used as the basis for our discovery plugin product. JSON over HTTPS, hosted at api.evvnt.com.
§ 01 · Auth
Authentication
Authentication is performed by passing an API key and API secret as the username/password combination of an HTTP Basic Authentication header. Credentials are issued per api_client.
Request
curl https://api.evvnt.com/events \ -u "API_KEY:API_SECRET"
401 response
{
"errors": ["authentication failed bad key/secret"]
}
Terms
Use of the Publisher API is subject to evvnt's API terms and conditions — evvnt.com/api-terms-conditions.
§ 02
List events
This API endpoint returns an array of event data in JSON format. An event has the following fields:
Response fields
| Field | Always present? | Type | Description |
|---|---|---|---|
| id | Yes | String | The event's Discovery ID: a numeric id with an optional single-letter source suffix (e.g. 12345 for evvnt-sourced events, 67890x for other sources). Pass this value to GET /events/:event_id. |
| title | Yes | String | The main title of the event |
| capacity | No | Integer | Capacity of the event |
| category_id | Yes | Integer | Category of the event (see GET /categories) |
| sub_category_ids | Yes | Array of Integers | Sub-Categories of the event (see GET /categories) |
| timestamp | Yes | ISO8601 String | ISO8601 time representation of when the event was last updated. |
| start_time | Yes | ISO8601 String | ISO8601 time representation of the event start time. This is expressed as local time with a correct offset from UTC. |
| end_time | Yes | ISO8601 String | ISO8601 time representation of the event end time. This is expressed as local time with a correct offset from UTC. |
| door_time | No | ISO8601 String | ISO8601 time representation of the event's doors open time, if supplied. This is expressed as local time with a correct offset from UTC. |
| last_entry_time | No | ISO8601 String | ISO8601 time representation of the event's last entry time. This is expressed as local time with a correct offset from UTC. |
| summary | Yes | String | Summary of the event. Max length of 200 characters. |
| description | Yes | String | Full description of the event. Max length of 2000 characters. |
| image_urls | No | Object | An array of image urls associated with the event. |
| organiser_name | No | String | The Organiser, Company or those responsible for hosting and managing the event |
| contact | Yes | Object | Object containing contact information for someone responsible for the event. |
| contact.name | Yes | String | Name of the contact for the event. |
| contact.email | Yes | String | Email address of the contact for the event. |
| contact.tel | Yes | String | Telephone number of the contact for the event. |
| venue | Yes | Object | Object containing the venue details. |
| venue.id | Yes | Integer | Unique ID of the venue hosting the event. |
| venue.name | Yes | String | Name of the venue hosting the event. |
| venue.address_1 | Yes | String | First line of the venue address. |
| venue.address_2 | No | String | Second line of the venue address. |
| venue.town | Yes | String | Town/city of the venue. |
| venue.country | Yes | String | Two letter ISO code representing the country of the venue. |
| venue.postcode | No | String | Post code / Zip code of the Venue. Always present for UK and US events. |
| venue.longitude | No | Decimal | Approximate longitude of the venue, if known. |
| venue.latitude | No | Decimal | Approximate latitude of the venue, if known. |
| links | No | Object | URLs associated with the event expressed as key: value, where valid keys are: "Website", "Booking", "Inquiries", "Tickets", "Facebook", "Twitter", "MySpace", "YouTube", "Brochure", "MobileApp", "Periscope", "Exhibitor", "Meetup", "Virtual", "Sponsor" |
| prices | Yes | Object | Prices associated with the event are expressed as key:value pairs. Keys represent the ticket/price information and their corresponding values represent the currency amount. |
| artists | No | String | Comma delimited list of artists or speakers featured in the events. |
| keywords | No | String | Comma delimited list of relevant keywords. |
| hashtag | No | String | Optional string to pass as a hashtag to supported sites. Only letters A-Z, 0-9 and underscore(_) are allowed. Any other characters will be removed. |
By default a maximum of 20 records are returned.
Filters can be applied to narrow down the result set.
By default only evvnt-sourced events are returned, mirroring the original Marketing API. Pass all_sources=true to include events from all sources.
Query parameters
| Name | Type | Description |
|---|---|---|
| max_results | Integer | Return a maximum of this many results. Values over 100 will be ignored. |
| newer_than | ISO8601 String | Return only events with a timestamp newer than this value. Format of value should be ISO8601. Useful for paging through results. |
| category_id | Comma delimited Integers | Comma delimited list of category_ids (see GET /categories) to only return events in selected categories, or children of those categories. |
| country | String | 2 Letter iso code of the country to restrict the result set to. |
| page | Integer | Return results paginated by max_results (or 20) records, on this page number. |
| all_sources | Boolean | By default only evvnt-sourced events are returned. Set to true to include events from all backfill sources (Ticketmaster, Eventbrite, and others). |
An empty array will be returned if no events match the filter set.
Example response
curl -X GET -H "Accept: application/json" -u API_KEY:API_SECRET https://api.evvnt.com/events?some_filters...
[
{
"id": "12345",
"title": "The Event Title",
"capacity": 100,
"category_id": 17,
"sub_category_ids": [],
"timestamp": "2013-02-07T17:35:22Z",
"start_time": "2013-02-23T22:00:00Z",
"end_time": "2013-02-24T03:00:00Z",
"summary": "This is an example event summary…",
"description": "This is the complete event description…",
"image_urls": ["http://example.com/the_url_of_the_image_associated_with_the_event"],
"organiser_name": "John Smith Event Organisers Ltd",
"contact": { "name": "John Smith", "email": "johnsmith@example.com", "tel": "020 1111 2222" },
"venue": { "id": "15", "name": "Venue name", "country": "GB", "latitude": 52.1234, "longitude": -0.5678 },
"links": { "Website": "https://go.evvnt.com/UUnkit" },
"prices": { "price 1": "GBP 3.5" },
"artists": "Richard Green, Groucho Marx",
"keywords": "Example, event, keywords",
"hashtag": "event2013"
}
]
§ 03
Get one event
Returns a single event which matches :event_id
in the same format as GET /events. Returns a 404 if a matching event is not found.
:event_id is the event's Discovery ID — a numeric id with an optional single-letter source suffix (e.g. 12345 for evvnt-sourced events, 67890x for other sources), exactly as returned in the id field.
Example return packet
curl -X GET -H "Accept: application/json" -u API_KEY:API_SECRET https://api.evvnt.com/events/67890x
{
"id": "67890x",
"title": "The Event Title",
"capacity": 100,
"category_id": 17,
"sub_category_ids": [22, 23],
"timestamp": "2013-02-07T17:35:22Z",
"start_time": "2013-02-23T22:00:00Z",
"end_time": "2013-02-24T03:00:00Z",
"summary": "This is an example event summary…",
"description": "This is the complete event description…",
"image_urls" : ["http://example.com/the_url_of_the_image_associated_with_the_event"],
"organiser_name": "John Smith Event Organisers Ltd",
"contact" : { "name": "John Smith", "email": "johnsmith@example.com", "tel": "020 1111 2222" },
"venue": { "id": "15", "name": "Venue name", "country": "Venue Country", "latitude": 52.1234, "longitude": -0.5678 },
"links": { "Website": "https://go.evvnt.com/UUnkit" },
"prices": { "price 1": "GBP 3.5", "price 2": "GBP 1.0" },
"artists" : "Richard Green, Groucho Marx",
"keywords" : "Example, event, keywords"
}
§ 04
List categories
Returns the currently supported hierarchical list of categories and supported by evvnt.
There are no valid filters for this api call.
The format of a category record is as follows:
| Field | Always present? | Type | Description |
|---|---|---|---|
| id | Yes | Integer | Unique ID of the category. |
| parent_id | Yes | Integer or null | The unique ID of the category of this subcategory's parent in the category tree. The category 'All', the only category at the root level in the hierarchy, will explicity specify a null value in this field. |
| name | Yes | String | Name of the category. |
Example call
curl -X GET -H "Accept: application/json" -u API_KEY:API_SECRET https://api.evvnt.com/categories
[
{ "id": 126, "parent_id": 2, "name": "Academic / Learning" },
{ "id": 49, "parent_id": 48, "name": "Accounting" },
{ "id": 96, "parent_id": 95, "name": "Agriculture" },
{ "id": 26, "parent_id": null, "name": "All" },
....
]
§ 05
List a publisher's categories
This API endpoint returns an array of categories that a publisher is interested in. You can only find categories for publishers you have been given permission for.
Response fields
| Field | Always present? | Type | Description |
|---|---|---|---|
| id | Yes | Integer | Unique ID of the category. |
| parent_id | Yes | Integer or null | Parent category id. The category 'All' has null. |
| name | Yes | String | Name of the category. |
Query parameters
| Name | Type | Description |
|---|---|---|
| filter | String |
Optional. Can be one of the following (all is default):
all — Return the categories directly linked to the publisher, their ancestor and their descendants categories direct — Only return the categories directly linked to the publisher direct_to_root — Only return the categories directly linked to the publisher and their ancestor categories |
Example return request
curl -X GET -H "Accept: application/json" -u API_KEY:API_SECRET https://api.evvnt.com/publishers/324/categories?filter=direct
[
{ "id": 126, "parent_id": 2, "name": "Academic / Learning" },
{ "id": 49, "parent_id": 48, "name": "Accounting" },
{ "id": 96, "parent_id": 95, "name": "Agriculture" },
{ "id": 26, "parent_id": null, "name": "All" },
....
]
§ 06
List a publisher's published events
This API endpoint returns an array of published events belonging to a specific publisher. You can only find events for publishers you have been given permission for.
Response fields
| Field | Always present? | Type | Description |
|---|---|---|---|
| publisher_id | Yes | Integer | Unique ID for the publisher |
| event_id | Yes | Integer | Unique ID for the event |
| url | No | String | Published URL of the event on the publisher site |
| event_title | Yes | String | Title of the event |
| event_start_time | Yes | Date | ISO8601 time representation of the event start time. This is expressed as local time with a correct offset from UTC |
An empty array will be returned if no upcoming published events exist for the publisher.
Query parameters
| Name | Type | Description |
|---|---|---|
| newer_than | ISO8601 String | Return only events with a timestamp newer than this value. Format of value should be ISO8601. Useful for paging through results. This is expressed as local time with a correct offset from UTC |
Example response
curl -X GET -H "Accept: application/json" -u API_KEY:API_SECRET https://api.evvnt.com/publishers/324/published_events/
[
{
"publisher_id": 324,
"event_id": 1385,
"url": 'http://suuperevents.example.com/events/3',
"event_title": "Comedy Night",
"event_start_time": "2024-05-10T15:00:00+01:00"
}
]
§ 07
Removed endpoints
The marketing API at api.evvnt.com exposed three APIs.
Only the Publisher API endpoints listed above were carried over; every
other route mounts on this host purely so existing clients never see a
404, and
responds with the deletion body below.
{
"error": "This endpoint has been deleted. Please contact support."
}
Publisher API
410 Gone 4 endpointsOlder Publisher API endpoints with no measurable traffic during the cutover window.
Event Organiser API
410 Gone 8 endpointsEndpoints organisers used to submit events for network publishing. Submission moves to the core API.
Partner API
410 Gone 14 endpointsEndpoints partners used to resell and whitelabel evvnt's products.