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

GET /events 200 · array

This API endpoint returns an array of event data in JSON format. An event has the following fields:

Response fields

FieldAlways present?TypeDescription
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

NameTypeDescription
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

GET /events/:event_id 200 · object

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

GET /categories 200 · array

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:

FieldAlways present?TypeDescription
idYesIntegerUnique ID of the category.
parent_idYesInteger or nullThe 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.
nameYesStringName 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

GET /publishers/:publisher_id/categories 200 · array

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

FieldAlways present?TypeDescription
idYesIntegerUnique ID of the category.
parent_idYesInteger or nullParent category id. The category 'All' has null.
nameYesStringName of the category.

Query parameters

NameTypeDescription
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

GET /publishers/:publisher_id/published_events 200 · array

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

FieldAlways present?TypeDescription
publisher_idYesIntegerUnique ID for the publisher
event_idYesIntegerUnique ID for the event
urlNoStringPublished URL of the event on the publisher site
event_titleYesStringTitle of the event
event_start_timeYesDateISO8601 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

NameTypeDescription
newer_thanISO8601 StringReturn 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.

410 — deletion response — 410 · Gone
{
  "error": "This endpoint has been deleted. Please contact support."
}

Publisher API

410 Gone 4 endpoints

Older Publisher API endpoints with no measurable traffic during the cutover window.

GET /v3/events
GET /publishers
GET /publishers/:publisher_id/published_events/:event_id
PUT /publishers/:publisher_id/published_events/:event_id

Event Organiser API

410 Gone 8 endpoints

Endpoints organisers used to submit events for network publishing. Submission moves to the core API.

GET /contract
POST /packages
GET /packages/mine
GET /packages/:package_id
POST /events
PUT /events/:event_id
GET /events/mine
GET /events/:event_id/report

Partner API

410 Gone 14 endpoints

Endpoints partners used to resell and whitelabel evvnt's products.

GET /contract
GET /v3/publishers
GET /v3/staff
POST /v3/staff
POST /users
GET /users
GET /users/:user_id
PUT /users/:user_id
POST /packages
GET /users/:user_id/packages
POST /events
PUT /events/:event_id
GET /events/ours
GET /events/ours/:event_id