Party event data in JSON format

It's possible to get all public event information from goabase.net in JSON format for your public use.

We don't use an API key at the moment and you don't have to register to use the API. Please Contact us on any questions.

A running example is visible on our [mobile party info]. If you're looking for an easy way to embed party events, check out Partyserver.

If you publish the data in any app or website don't remove the backlink to goabase.net, thank you.

Content

Per day we get 10-15 new events and also the same amount of updates.

  • All Events
    https://www.goabase.net/api/party/json/ [JSON] (15 only)

    The plain url returns 500 upcoming dance events with their name, town, date and some details. They are ordered by start date, party name and country.
    We put only relevant infos into this JSON because to keep it's size as small as possible. But it's also around 300KB on each request.
    It's possible to use GET parameters (see below), so the best one would be to limit the complete list with ?limit=50
     
  • All countries
    https://www.goabase.net/api/party/json/?country=list-all [JSON]

    Gets a list of all countries and the amount of their events.
     
  • Details, all fields
    https://www.goabase.net/api/party/json/{id}

    Adding the ID gets all details of the party event, examples below.

GET

GET parameters for the event list

https://www.goabase.net/api/party/json/{parameter}={value}

Parameter Result
500 upoming party events.
 
limit={number} Set {number} to 100 to get only 100 upcoming events.
 
country=list-all

Only countries and their amount of events.

country={nameCountry} Party events from {nameCountry}.
 
country={isoCountry} Party events from {isoCountry}.
We use it as the default value for countries since 17. Jun 2016
 
search={search} Gets all events with {search} in line up, town name, party name or infos. You can use more than one search word. If you use a town name we try to find it also in our geoloaction database and use it for the radius search.
 
radius={radius} Radius in kilometers for the geoloaction search. Default: 120
 
geoloc={nameTown} Events 120km around {nameTown}. Same as "search={nameTown}"
 
ll={geoLat,geoLon} Events 120km around {geoLat,geoLon}.
 
searchdate={YYYY-MM-DD} Party Events, which are running on {YYYY-MM-DD} between dateStart and dateEnd.
 
status={nameStatus} Values for {nameStatus}:
  • new – New entries of the last seven days
  • update – Updated in the last seven days
  • canceled – Cancelled events
  • postponed – New Date, postponed event (we don't save the old date)
  • new_loc – New or changed Location
eventtype={nameType} Values for {nameType}:
  • festival – Open air events with a long duration of 36 hours ore more
  • openair – Small festivals
  • indoor – Bigger indoor events
  • club – Events in club locations
  • indoor_outdoor – Events with floors in- and outside.
See also

 
PID={id}    or
{id}
Opens all details of the event with {id}
Instead of api/party/json/?PID={id} it's possbile to use api/party/json/{id}

General hints

We make the JSON object as "flat" as possible.

The key names are inspired by schema.org and written in "camelCase" where the first part describes the data type and the second part the data. Should be self-desrcibing.

We use "nameType" in another way as schema.org because they only differ between "Festival" and "DanceEvent". We use more specific (for our genre) the types "Festival", "Open Air" (like schema.org/Festival) and "Indoor", "Club", "In- und & Outdoor" (similar to schema.org/DanceEvent).

The value for "urlOrganizer" could be text with line breaks like \n or \n\r.

Time formats and time zones

We save all events with Timezone Europe/Berlin and return them in ISO 8601 with the difference to UTC. The date and time 16. May 2015, 22:00h in Berlin is returned as 2014-06-16T22:00:00+02:00 and the same date and time in Asia/Calcutta as 2015-06-16T22:00:00+05:30.

But this UTC times can not be used as the method Date.toJson they expected. The additional indication of a time zone is needed to obtain the local time.

Below you will find therefore a small Javascript snippet to read the date.

If a party is entered on goabase, the time zone is determined. Most countries are in only one time zone, so this is easy to verify.

For countries in multiple time zones (for example, USA, Brazil, Russia) we use the geolocation to determine the time zone. This can fail because no lat-lon-values ​​are specified, or they will not be found in the 4.4 million records, which we take as a basis. In this case we inserting the default time zone.

Why the whole? Starts a party e.g. at 12:00 in Goa, the stored German time 2014-06-14T12:00:00+02:00 would appear in Goa as the party started at 15:30. Instead, you have to use the time for Asia / Calcutta 2014-06-14T12:00:30:00+05:30. In any case it's always the local time plus differ from the UTC time.

Javascript

Example javascript function for parsing ISO8601 dates with jQuery

// This function was ripped from
// timeago.js (http://timeago.yarp.com/) and requires jQuery(http://jquery.com/)
function parseIso8601(iso8601) {
   var s = $.trim(iso8601);
   s = s.replace(/-/,"/").replace(/-/,"/");
   s = s.replace(/T/," ").replace(/Z/," UTC");
   s = s.replace(/([\+-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400
   return new Date(s);
}

History

Ver. 1.6 (17. Jun 2016)
  • New key isoCountry with the ISO 3361-2 code of this country.
    We changed also the links with the country parameter to the ISO code.
Ver. 1.5 (26. April 2015)
  • New parameter "eventtype" to get the specific type of event
  • New key urlImageMedium with value of the path to the flyer image in max. 260 x 260 pixel.
Ver. 1.4 (19.06.2014)
  • Parameter „search“ could contain a town name to search for it's geolocation.
  • New parameter „radius“ for the radius of the geo location search.
  • Key urlPartyHtml contains SEO-link
Ver. 1.3
  • In 95% of the events (nearly 65.000) we added the timezones. JSON shows the local event time including the difference to UTC-time.
  • New parameter „searchdate“ and „status“
Ver. 1.2.2
  • Bugfix: XML of event details used not allowed chars like LineFeed or EndOfFile (\u0003 in unicode)
  • Bufgix: Setting GET parameter „limit“ higher then 500 didn't worked.
Ver. 1.2.1
  • JSON of the lists are changed to arrays with objects (PHP view).
Ver. 1.2
  • JSON format. The key names are inspired from schema.org/Event.
  • Stopping development and updates of XML.
Ver. 1.1
  • GET parameter „limit={number}“ for the list of all events.
  • GET parameter „PID={id}“ to get details
  • New Url api/party/xml/ and api/party/json/
  • Pre-Beta of JSON
Planned
  • More data like sound styles, views and votes