Party Events in JSON/JSON-LD

EN

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.

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.

Syntax / Versions

There are two versions of the syntax available:
  • Our own "flat" syntax or
  • JSON-LD according to schema.org

The selection is made via a different URL or via a Get parameter with the version specification in the original url:

https://www.goabase.net/api/party/json/ - Our Syntax
https://www.goabase.net/api/party/jsonld/ - JSON-LD by schema.org
https://www.goabase.net/api/party/json/?ver=2 - Version 2, JSON-LD by schema.org

Content

GET

GET parameters for the event list

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

Parameter Result
All upcoming events, limited to 500.
 
limit={number} Set {number} to 50 to get only 50 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
  • virtual – Virtual Events
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 about our syntax

We make our 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 2015-05-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. 2.0 (12. Jun 2021)
  • Everything also available as JSON-LD with syntax according to schema.org
Ver. 1.7 (17. Sep 2018)
  • New key urlImageFull with value of the path to the flyer image in max. 1280 x 720 pixel.
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