Advanced

Toon je boekingen op je eigen website met de publieke API

Veel boekingskantoren en artiesten tonen hun komende datums op hun eigen website: een tourpagina, een gigkalender of gewoon een lijst met shows. De publieke API van Artistu geeft je een alleen-lezen feed van je aangekondigde boekingen, zodat je website altijd dezelfde datums laat zien als je in Artistu beheert. Geen handmatig overtypen, geen verouderde tourpagina's.

De API is alleen-lezen en toont uitsluitend informatie die je zelf als openbaar markeert. Fees, deals, contactpersonen, interne notities en niet-aangekondigde shows komen er nooit in.

Hoe het werkt

Drie onderdelen werken samen:

  1. Een API-token, dat je één keer aanmaakt in je Artistu-instellingen en waarmee je website zich authenticeert.
  2. Online-instellingen per boeking, die bepalen of een boeking aangekondigd is en welke openbare details erbij horen.
  3. Eén endpoint dat de aangekondigde boekingen van één artiest als JSON teruggeeft.

Genereer je API-token

Ga naar Instellingen → Integraties en zoek het onderdeel Publieke API. Klik op Token genereren. Hiervoor moet je beheerder van je organisatie zijn.

Het token is een reeks van 64 tekens. Behandel het als een wachtwoord: iedereen die het heeft, kan je openbare boekingsgegevens lezen. Na het genereren wordt het in de interface verborgen, met de knop Tonen maak je het weer zichtbaar.

Zodra er een token is, heb je twee extra acties:

  • Token opnieuw genereren maakt een nieuw token aan en maakt het oude meteen ongeldig. Elke website of integratie die het oude token nog gebruikt, stopt direct met werken.
  • Token intrekken verwijdert het token zonder een nieuw aan te maken. Alle toegang tot de API stopt tot je een nieuw token genereert.

Bepaal welke boekingen zichtbaar zijn

Niet elke boeking hoort op je website. Een boeking verschijnt alleen in de API als aan alle volgende voorwaarden is voldaan:

  1. De boekingsstatus is optie of bevestigd. Boekingen die in behandeling of geannuleerd zijn, verschijnen nooit.
  2. De boeking is aangekondigd: of de schakelaar Aangekondigd staat aan, of de datum bij Aankondigen op is verstreken.
  3. De schakelaar Verbergen voor publieke API staat uit.

Dit regel je per boeking. Open een boeking, ga naar het tabblad Instellingen en scroll naar het onderdeel Online. Daar vind je:

VeldDoel
Aankondigen opDatum waarop de boeking automatisch als aangekondigd geldt
AangekondigdMarkeer de boeking nu direct handmatig als aangekondigd
Verbergen voor publieke APIHoud de boeking uit de API, ook als die aangekondigd is
WebsiteOpenbare website van het event of de locatie, komt mee in het API-antwoord
TicketlinkLink naar de ticketverkoop, komt mee in het API-antwoord
Line-upOpenbare line-uptekst, komt mee in het API-antwoord
Openbare notitiesExtra openbare tekst, komt mee in het API-antwoord

De datum bij Aankondigen op is handig als een show bevestigd is maar onder embargo ligt tot de officiële aankondigingsdatum. Zet de datum en de boeking verschijnt vanaf die dag vanzelf in de API.

Verbergen voor publieke API is de uitzondering voor shows die elders wel aangekondigd zijn maar niet op je website horen, bijvoorbeeld besloten events.

Zoek je artiest-ID

De API geeft boekingen van één artiest tegelijk terug. Je vindt het artiest-ID in de adresbalk als je de artiest opent in je dashboard:

https://artistu.io/dashboard/artists/{artistId}

Het laatste deel van de URL is het ID dat je aan de API meegeeft. Toont je website meerdere artiesten, doe dan één verzoek per artiest.

Boekingen ophalen

GET https://artistu.io/api/public/bookings/{artistId}

Authenticeer met je token in de Authorization-header:

Authorization: Bearer YOUR_API_TOKEN

Queryparameters

ParameterFormaatStandaardOmschrijving
startDateYYYY-MM-DDvandaagEerste datum die meetelt
endDateYYYY-MM-DDstartDate + 1 maandLaatste datum die meetelt

De periode mag maximaal 366 dagen beslaan en startDate moet op of voor endDate liggen.

Voorbeeldverzoek

curl -X GET 'https://artistu.io/api/public/bookings/{artistId}?startDate=2026-08-01&endDate=2026-12-31' \
  --header 'Authorization: Bearer YOUR_API_TOKEN'

Voorbeeldantwoord

{
  "bookings": [
    {
      "bookingId": "uq1ye3nqnb4m5f234auf69gk",
      "artistName": "DJ Example",
      "name": "Summer Festival 2026",
      "date": "2026-08-15T00:00:00.000Z",
      "time": "22:00",
      "duration": 90,
      "venue": "Festival Grounds",
      "capacity": 15000,
      "status": "confirmed",
      "address": {
        "description": "Festival Grounds, Amsterdam, Netherlands",
        "geometry": { "lat": 52.3676, "lng": 4.9041 },
        "components": {
          "city": "Amsterdam",
          "country": "Netherlands",
          "countryCode": "NL"
        }
      },
      "website": "https://summerfestival.example",
      "ticketLink": "https://tickets.example/summer-festival",
      "lineUp": "DJ Example, Support Act",
      "publicNotes": "Main stage closing set"
    }
  ],
  "truncated": false
}

Boekingen staan op datum gesorteerd, oplopend. duration is in minuten. status is option of confirmed. Velden zonder waarde zijn null.

Eén antwoord bevat maximaal 500 boekingen. Vallen er meer binnen je periode, dan is truncated gelijk aan true en komt er een veld maxResults bij. Maak de periode kleiner om de rest op te halen.

Rate limits

  • 60 verzoeken per minuut per token
  • 120 verzoeken per minuut per IP-adres

Elk antwoord bevat de headers X-RateLimit-Limit, X-RateLimit-Remaining en X-RateLimit-Reset. Overschrijd je een limiet, dan antwoordt de API met status 429 en krijg je te horen hoeveel seconden je moet wachten.

Voor een gewone website kun je het API-antwoord beter een paar minuten cachen op je eigen server dan de API bij elke paginaweergave aan te roepen. Je tourpagina blijft snel en je blijft ver van de limieten.

Problemen oplossen

  • 401 Unauthorized: het token ontbreekt, klopt niet, of is opnieuw gegenereerd of ingetrokken. Controleer de Authorization: Bearer-header en vergelijk het token met dat in Instellingen → Integraties.
  • 404 Artist not found: het artiest-ID bestaat niet of hoort bij een andere organisatie dan het token.
  • 400 Bad request: een datum staat niet in het formaat YYYY-MM-DD, startDate ligt na endDate, of de periode is langer dan 366 dagen.
  • Een boeking ontbreekt: loop de drie voorwaarden hierboven na. Meestal is de boeking nog niet aangekondigd, of staat de status nog op in behandeling.