Partydaten als JSON/JSON-LD

DE

Event-Daten im JSON-Format

Du kannst alle öffentlichen Event-Infos von goabase.net im JSON-Format für deinen Gebrauch bekommen.

Wir benutzen im Moment keinen API-Schlüssel und du musst dich nicht registrieren, um die API zu nutzen.

Wenn du nach einer sehr einfachen Möglichkeit suchst, Party-Events einzubetten, schau dir einmal Partyserver einrichten an.

Falls du die Daten veröffentlichen oder weiterverwenden möchtest, entferne bitte nicht den Backlink zu goabase.net. Vielen Dank!

Und wenn du Fragen hast, melde dich einfach bei uns: Kontakt

Syntax/Versionen

Es gibt zwei Versionen der Syntax:
  • Unsere eigene "flache" Syntax oder
  • JSON-LD nach schema.org.

Du kannst die Version je nach URL auswählen:

https://www.goabase.net/api/party/json/ - Unsere Syntax, Version 1
https://www.goabase.net/api/party/jsonld/ - JSON-LD nach schema.org (Ver. 2)

Die Daten

GET Parameter für die Partyliste

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

Parameter Ergebnis
(keiner) Alle kommenden Veranstaltungen, begrenzt auf 500.
 
country=list-all

Nur Länder und ihre Anzahl von Events.

country={nameCountry} Partys aus {nameCountry}.
 
country={isoCountry} Partys aus {isoCountry}.
Iso-Alpha-2 als Standardwert für Länder.
 
eventtype={nameType} Werte für {nameType}:
  • festival – Open-Air-Events mit einer Dauer von 36 Stunden oder mehr
  • openair – Kleine Festivals
  • indoor – Größere Indoor-Events
  • club – Partys in Club-Locations
  • indoor_outdoor – Events mit Dancefloors im Innen- und Außenbereich
  • virtual – Virtuelle Partys
See also

 
flyer=1 Gibt nur die Partys mit Flyern aus.
 
geoloc={nameTown} Party Events 100km um {nameTown}. Wenn du einen Ortsnamen verwendest, versuchen wir, diesen in unserer Geolocation-Datenbank und bei Openstreetmap zu finden.
 
limit={number} Setze {number} auf 50, um nur 50 Events zu bekommen.
 
ll={geoLat,geoLon} Events 100km im Umkreis von {geoLat,geoLon}.
 
PID={id}   or
{id}
Öffnet alle Details der Veranstaltung mit {id}
Statt api/party/jsonld/?PID={id} kann man auch api/party/jsonld/{id} verwenden.
radius={radius} Radius in Kilometern für die Umkreissuche. Voreinstellung: 100
 
search={search} Findet alle Party-Events mit {search} in Line-Up, Ortsname, Party-Name oder Infos. Du kannst mehr als einen Suchbegriff verwenden.
 
searchdate={YYYY-MM-DD} Partys, die am {YYYY-MM-DD} laufen.
 
status={nameStatus} Werte für {nameStatus}:
  • new – Neue Einträge der letzten sieben Tage
  • update – Aktualisiert in den letzten sieben Tagen
  • canceled – Abgesagte Events
  • postponed – Neues Datum, verschobene Party (wir speichern 1x das alte Datum)
  • new_loc – Neuer oder geänderter Ort
tag={style} Alle Events eines bestimmten Styles. Mit tag=goatrance werden nur diese gelistet.
 
ver=1|2 API-Version. ver=1 ist unsere Syntax, ver=2 JSON-LD
 

Allgemeine Hinweise zu unserer Syntax (Ver. 1)

Wir machen unser JSON-Objekt so "flach" wie möglich.

Die Schlüsselnamen sind von schema.org inspiriert und in „camelCase“ geschrieben, wobei der erste Teil den Datentyp und der zweite Teil die Daten beschreibt. Das sollte selbsterklärend sein.

Wir verwenden „nameType“ auf eine andere Weise als schema.org, da sie sich nur zwischen "Festival" und "DanceEvent" unterscheiden. Wir verwenden spezifischer (für unser Genre) die Typen „Festival“, „Open Air“ (wie schema.org/Festival) und „Indoor“, ‚Club‘, „In- und Outdoor“ (ähnlich wie schema.org/DanceEvent).

Der Inhalt von „urlOrganizer“ könnte ein Text mit Zeilenumbrüchen wie \n oder \n\r sein.

Zeitformate und Zeitzonen

Wir speichern alle Veranstaltungen mit der Zeitzone Europa/Berlin und geben sie in ISO 8601 mit der Differenz zu UTC zurück. Das Datum und die Uhrzeit 16. Mai 2015, 22:00h in Berlin wird als 2015-05-16T22:00:00+02:00 zurückgegeben und das gleiche Datum und die gleiche Uhrzeit in Asien/Kalkutta als 2015-06-16T22:00:00+05:30.

Aber diese UTC-Zeiten können nicht verwendet werden, wie die Methode Date.toJson sie erwartet. Es wird die zusätzliche Angabe einer Zeitzone benötigt, um die lokale Zeit zu erhalten.

Nachfolgend findest du daher ein kleines Javascript-Snippet zum Auslesen des Datums.

Wenn ein Event auf goabase eingegeben wird, wird die Zeitzone ermittelt und gespeichert. Die meisten Länder liegen in nur einer Zeitzone, so dass dies leicht zu überprüfen ist.

Bei Ländern mit mehreren Zeitzonen (z. B. USA, Brasilien, Russland) verwenden wir die Geolocation, um die Zeitzone zu bestimmen. Dies kann fehlschlagen, weil keine Lat-Lon-Werte angegeben sind, oder sie werden in den 4,4 Millionen Datensätzen, die wir als Grundlage nehmen, nicht gefunden. In diesem Fall setzen wir die Standardzeitzone ein.

Warum das Ganze? Beginnt eine Party z.B. um 12:00 Uhr in Goa, würde die gespeicherte deutsche Zeit 2014-06-14T12:00:00+02:00 in Goa als Beginn der Party um 15:30 Uhr erscheinen. Stattdessen muss aber die Zeit für Asien / Kalkutta 2014-06-14T12:00:30:00+05:30 verwendet werden. In jedem Fall ist es also die Ortszeit plus Abweichung von der UTC-Zeit.

Javascript

Beispiel für eine Javascript-Funktion zum Parsen von ISO8601-Daten mit 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);
}