Introduction

We make Berlin’s cultural diversity visible

This API provides access to reading and writing data about Berlin’s cultural locations, events, and more. Expand the routes below to see the available endpoints, send example requests, etc.

⚠️ Please note that the API and its documentation are currently work in progress and subject to change.

Entities

  • Attraction: A specific cultural happening, e.g. a concert, a play, or a reading.
  • Location: A geographical location, e.g. a theatre, a museum, or a library.
  • Event: An (or multiple) attraction(s) at a certain time at a certain (or multiple) location(s).
  • Organization: An organization that manages their content (attractions, locations, and events).
  • User: A user of the platform, e.g. admins or organization members.
  • Tag: A descriptive tag that can be assigned to attractions, locations, events, and organizations.

Authentication

If you want to use the API to manage (i.e. create or update) cultural data, you need a user account with admin permissions. An initial admin user can be created with the seed script.

Once you have the user account, you can send a login request:

curl -X "POST" "http://localhost:3000/api/authentication/login" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d $'{ "email": "[email protected]", "password": "plain-text-password" }'

The response of that login request contains a JWT (JSON Web Token) in the data.accessToken field. Store it and send it along as an Authorization header in the following requests, e.g.:

curl -X "POST" "http://localhost:3000/api/admin/{some-admin-route}" \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {accessToken}' \
  -d $'{}'

Contact

Please get in touch if you have any questions or feedback: [email protected]

The source code and more information can be found on GitHub: https://github.com/technologiestiftung/kulturdaten-api