Home

Awesome

world-wonders-api

Docker Image Size GitHub Actions Workflow Status License

Free, open and self-hostable API providing information about Wonders of the World.

Description

This is an API which serves information about various of the most famous wonders from around the world, with information such as when a wonder was built, where it's located, and even a collection of images and various other links related to it.

A public instance is available for anyone to use at world-wonders-api.org, no API keys are required. This is subject to change if it is deemed necessary in the future, but hopefully that won't be the case.

Documentation is available here, and a demo website utilising this API is available here.

Deployment

You can self-host using Docker:

docker run -d -p 8138:8138 \ 
  --name world-wonders-api rolvapneseth/world-wonders-api

If you prefer using docker compose, copy the docker-compose.yml file and run docker compose up.

Then, access the documentation on your local machine at http://0.0.0.0:8138/v0/docs.

Responses

All data responses are in the JSON format.

Example of a successful response

{
  "name": "Great Pyramid of Giza",
  "summary": "...",
  "location": "Giza, Egypt, Africa",
  "build_year": -2560,
  "time_period": "Ancient",
  "links": {
    "wiki": "https://en.wikipedia.org/wiki/Great_Pyramid_of_Giza",
    "britannica": "https://www.britannica.com/place/Great-Pyramid-of-Giza",
    "google_maps": "https://www.google.com/maps/place/The+Great+Pyramid+of+Giza/...",
    "trip_advisor": "https://www.tripadvisor.com/Attraction_Review-g294202-d...",
    "images": [
      "https://upload.wikimedia.org/wikipedia/commons/e/e3/Kheops-Pyramid.jpg",
      "https://cdn.britannica.com/75/178475-050-E9212E3D/Pyramid-of-Khufu-Giza-Egypt.jpg",
      "https://cdn.britannica.com/06/122506-050-C8E03A8A/Pyramid-of-Khafre-Giza-Egypt.jpg",
    ]
  },
  "categories": [
    "SevenWonders"
  ]
}

Example of an error response

The response contains a non 200 HTTP status code, such as 400, with a body like this:

{
  "message": "The provided lower limit of 1000 is greater than the provided upper limit of 400"
}

Metrics

Some basic Prometheus metrics are exported at the /metrics endpoint.

Thanks

This API was originally inspired by and contains some data gathered from this dataset on kaggle.

License

AGPL-3.0