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
- 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 Syntaxhttps://www.goabase.net/api/party/jsonld/
- JSON-LD by schema.orghttps://www.goabase.net/api/party/json/?ver=2
- Version 2, JSON-LD by schema.orgContent
- All Events
[https://www.goabase.net/api/party/json/
] (Five only)
[https://www.goabase.net/api/party/jsonld/
] (Five only)
The plain url returns all 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 our own syntax because to keep it's size as small as possible.
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
]
[https://www.goabase.net/api/party/jsonld/?country=list-all
]
Gets a list of all countries and the amount of their events.
- Details, all fields
https://www.goabase.net/api/party/json/{id}
https://www.goabase.net/api/party/jsonld/{id}
Adding the ID gets all details of the party event.
GET
https://www.goabase.net/api/party/json/?{parameter}={value}
https://www.goabase.net/api/party/jsonld/?{parameter}={value}
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
- Everything also available as JSON-LD with syntax according to schema.org
- New key
urlImageFull
with value of the path to the flyer image in max. 1280 x 720 pixel.
- 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.
- 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.
- 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
- 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“
- 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.
- JSON of the lists are changed to arrays with objects (PHP view).
- JSON format. The key names are inspired from schema.org/Event.
- Stopping development and updates of XML.
- 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
- More data like sound styles, views and votes