CycladesGo

Where our data comes from

Data licence

Last updated:

The timetables an operator publishes are public documents, and the coordinates we use are open data. The result of combining them is a public document too, so it is downloadable, in a standard format, at a URL that will not move out from under you.

Two formats, at stable URLs

Each island has a GTFS archive, which is the interchange format any transit software can read, and a JSON file of routes and fares, which is easier if you are writing something small. Both are built with the dataset and served from the same deploy as the planner, so the URL stays the same from one season to the next.

What is not in either of them is the thing people usually want. There are no vehicle positions, no arrivals, no delays and no cancellations, because the operators do not publish a feed and we will not scrape one. See known limits if you have not read that yet.

The URLs

Stable URL patterns for the CycladesGo open data, per island and network-wide
What Pattern Contains
GTFS archive https://{island}.cycladesgo.com/gtfs/{id}go-gtfs.zip Stops, routes, shapes, scheduled departures and calendar. Scheduled times only, no vehicle positions. There is no realtime.txt, and there will not be one.
Routes and fares as JSON https://{island}.cycladesgo.com/data/routes.json The same network in a form that is trivial to read without a GTFS parser, with the curated fare per line.
Dataset landing page https://{island}.cycladesgo.com/data/ Provenance, snapshot date, validity date, licence and known limits for that island.
Provenance table, network-wide https://cycladesgo.com/{locale}/data/ Every island, its operator, the source page, the snapshot date and the date we verified it for.
Changelog https://cycladesgo.com/{locale}/data/changelog/ Every change to the published datasets, dated, including the incidents.

Substituting {island} and {id} with a value from the islands list: naxos, paros, santorini, milos, ios. The domain is not purchased yet; until it is, the same files are served from each island's current host, and the pattern above is the one that will hold.

The licence, and the part with a condition attached

Our curation: CC-BY 4.0

The work we did — selecting and normalising the timetables, structuring the routes, transcribing and curating the fares, matching stops to coordinates, writing the adapters and the pipeline — is ours, and it is licensed under Creative Commons Attribution 4.0 International. You may copy, adapt and redistribute it commercially, including in a closed product. The only condition is attribution: name CycladesGo, link to the data page, and say if you made changes.

Derived from OpenStreetMap: ODbL 1.0

Stop coordinates, road geometry, route shapes and place names come from OpenStreetMap contributors and are licensed under the Open Database License 1.0. ODbL is a copyleft licence, and the obligation comes with it: if you use a derived database or a substantial part of one, you must release your own database under ODbL, and you must keep the attribution to OpenStreetMap contributors. The CC-BY terms above do not override that for those parts. In practice it means an adapted dataset built from ours inherits the ShareAlike condition, while the curation logic written around it does not.

Map data © OpenStreetMap contributors, available under the ODbL. If you redistribute anything derived from it, that attribution has to travel with it.

We do not feed the aggregators, and that is a decision

We do not register or syndicate our GTFS with Google Maps, Apple Maps, Moovit, Transit App or any other journey planner or aggregator. We are not a transport data provider and we do not want to be mistaken for one.

The reason is accuracy. An aggregator that shows a departure is making a claim to a passenger holding a phone at a stop. We cannot support that claim: we have no vehicle feed, we cannot know about a cancellation, and our validity window is seven days. Being a listed data source would be good for our traffic and bad for our correctness, and it would put an accuracy obligation on a project that cannot meet it.

The second reason is liability. Publishing a schedule as an editorial reference page and publishing it as a service that feeds a routing engine are different activities with different legal consequences, and we would rather be the first. The terms are set out in terms of use.

What is fine, and encouraged: linking out. If you want walking directions from a stop to a beach, or a road route between two villages, send people to a map service of their choice. We have no objection to a deep link out of a CycladesGo page for that purpose. We only object to being wired in as a real-time source of truth.

Before you build on this

  1. 1

    Read the known-limits page

    Interpolation, validity windows and the per-island gaps are all documented, and they will affect your output.

  2. 2

    Check the validity date

    The dataset is only trustworthy until the date printed on the island's data page. Expiry means the build fails, not that the data silently rots.

  3. 3

    Keep the attribution

    CycladesGo under CC-BY 4.0, and OpenStreetMap contributors under ODbL 1.0 for the derived parts.

  4. 4

    Do not present it as current

    If your product shows a departure to somebody standing at a stop, label it as a scheduled time and give its date.