Stockholm Archipelago Trail

Data & Sources

Last reviewed: 2026-06-18

The travel planner combines open data (OpenStreetMap, Wikidata, public-transport timetables) with the trail route, which the Stockholm Archipelago Trail owns. Every object states its source, licence and freshness, and carries a persistent identifier — so it can be verified, reused, and corrected at the right place.

Map & data attribution

Map data & base-map tiles © OpenStreetMap contributors, licensed ODbL 1.0; tiles built with Protomaps. Places from OpenStreetMap (ODbL) and Wikidata (CC0). Ferry timetables via Trafiklab / Waxholmsbolaget. Trail route © Stockholm Archipelago Trail, licensed CC BY 4.0.

Full per-source licences and links in the table below.

1Who owns what

We are the source of truth for the trail itself, and a consumer / re-publisher of everything else. Fix data at its source and the fix benefits every map that uses it.

DatasetSource of truthLicenceOur role
Trail route + stages
Stockholm Archipelago TrailCC BY 4.0Source of truth
Places (POIs)
OpenStreetMapODbL 1.0Consumer / re-publisher
Names, photos, cross-links
Wikidata / Wikimedia CommonsCC0 / per photoConsumer
Defibrillators (AED)
Sveriges HjärtstartarregisterRegistry API termsConsumer
Firepits (grillplatser)
grillplatser.nuCC0 / CC BY / CC BY-SAConsumer
Ferry timetables
Waxholmsbolaget / TrafiklabOpen transport dataConsumer
Base map
OpenStreetMap (via Protomaps)ODbL 1.0Self-hosted tiles
Problem reports
This plannerPrivateSource of truth
Routing, reachability, reliability scores
This plannerDerived / computed

2Sources & attribution

SourceWhat we use it forLicenceUpdated
The trail route
stockholmarchipelagotrail.com ↗
The hiking route geometry for each stage of the Stockholm Archipelago Trail. CC BY 4.0 © Stockholm Archipelago Trail On trail updates
OpenStreetMap
openstreetmap.org/copyright ↗
Points of interest (food, water, toilets, shops, viewpoints, shelters, …), island outlines, and nature-reserve areas. ODbL 1.0 © OpenStreetMap contributors On demand + regular re-publish
Trail surface & difficulty metadata
openstreetmap.org/copyright ↗
Surface type, difficulty (SAC scale), trail visibility, width and trail photos for each stage, derived from the mapped Stockholm Archipelago Trail ways in OpenStreetMap. ODbL 1.0 © OpenStreetMap contributors · photos per Wikimedia Commons licence On trail rebuild
Wikidata
wikidata.org ↗
Multilingual place names, photographs, and links to external databases. CC0 1.0 public-domain dedication Weekly
Wikimedia Commons
commons.wikimedia.org ↗
Photographs on place cards, and hero photos in the pier modals. Pier photos were matched stop-by-stop via Wikidata’s brygga class (Q133867301 ↗) and the salgo60 ferry-stops dataset ↗. Per image author + licence credited in the app With POI / pier refresh
Sveriges Hjärtstartarregister
hjartstartarregistret.se ↗
Defibrillator (AED) locations and their availability hours shown on the map. Registry API terms © Swedish Resuscitation Council Daily
grillplatser.nu
grillplatser.nu ↗
Firepit / barbecue sites — position, facilities and photos. grillplatser.nu is the source of truth; each firepit links back to its page there to view & update at the source. CC0 / CC BY / CC BY-SA © grillplatser.nu On POI refresh
Waxholmsbolaget ferry timetables
trafiklab.se ↗
Departure times, routes, and seasonal calendars used to plan the boat legs. Open transport data via Trafiklab / Samtrafiken (GTFS) Per season
ResRobot (Trafiklab)
trafiklab.se — ResRobot ↗
Used to detect departures that require advance booking (call-to-order lines). Open transport data via Trafiklab With timetables
SAT Passport locations
/data/sat-passport-locations.json ↗
Which places sell the SAT hiking passport and where it can be stamped — flagged on the matching place cards. A thin membership list (identity + role only); join to OpenStreetMap / Wikidata for names & coordinates. Seeded from salgo60 ↗. CC BY 4.0 membership © SAT; identity ODbL / CC0 On data refresh
Protomaps (base map)
protomaps.com ↗
The map background (base tiles, hillshade, contours) — self-hosted vector tiles, built from OpenStreetMap data and served from our own storage. ODbL 1.0 © OpenStreetMap contributors; tiles built with Protomaps On tile rebuild

Per-place provenance in the app: every place card shows its own “last updated” date, links to the source object and its full edit history, and carries a persistent identifier with a shareable permalink.

3Persistent identifiers

Every object this planner publishes carries a permanent identifier:

satnamespace : sectiontype — trail · section · poi · pier · report : 3hz5yfrozen, opaque uid

Examples: sat:trail:daesy (the trail itself), sat:section:3hz5y (a stage), sat:poi:sjwtd (a place), sat:pier:25njf (a ferry pier), sat:vessel:3kjzv (a ferry vessel).

4Open data: the trail — we own the master

The trail route, its stages and curated descriptions — the one dataset where we are the source of truth. The trail is a first-class object (sat:trail:daesy), published as GeoJSON-LD following the Swedish national specification for trails as linked data ↗ with schema.org vocabulary: name, activity category, total length, elevation, the managing organisation, and an ordered itinerary of all stages in the official north-to-south order.

Endpoints

EndpointContents
/data/trail.jsonldThe whole trail as one GeoJSON-LD document (odta:Trail + schema.org): identity, category, total length, elevation, provider organisation, ordered stage itinerary, and the full route geometry (stages + connector legs).
/data/catalog.jsonldDCAT-AP-SE catalogue describing this dataset — harvestable by Sveriges dataportal ↗ and other DCAT aggregators (publisher, licence, theme, spatial extent, distributions, contact point).
/data/sections-index.jsonAll stages: satId, uid, slug, version, routeVersion, updated, orderInTrail, distance, difficulty, blurb.
/data/geojson/islands/<slug>.geojsonCurrent route per stage. Self-describing: a top-level metadata block and the route feature’s properties both carry satId / version / routeVersion.
/data/history/sections/<slug>/index.jsonList of archived route versions for a stage.
…/route-v<n>.geojsonA specific past route version — cite an exact route, not just a number.
…/route-v<n>.gpxThe same route version as a downloadable GPX track — washed geometry with elevation, for GPS devices and apps. Carries satId / version / routeVersion in its metadata.
/api/objects/<satId>Machine-readable record for one stage: name, description, length, version/routeVersion, licence, and links to the live GeoJSON, the archive and the version-pinned route (GeoJSON + GPX). Accepts sat:section:<uid>, the bare uid or the slug. sat:trail:<uid> returns the full trail document.
/?id=<satId> or /?section=<ref>Permalink — opens the stage in the app. The share button copies the canonical /?id=sat:section:<uid> (one form for every object type, survives sharing via Facebook/social). The typed /?section= also works and accepts slug, uid or sat:section:<uid>.

Stage identity & versioning

FieldMeaning
satIdPermanent identity, sat:section:<uid>. Never changes — cite this.
slugHuman handle used in URLs and filenames (e.g. orno). May change; the satId never does.
versionBumps on any change — description or route.
routeVersionBumps only when the walked geometry changes; keys the route archive.
orderInTrailThe stage’s position in the official north-to-south order (1–20).

Trail data © Stockholm Archipelago Trail, licensed CC BY 4.0 — attribute when reusing. Endpoints are best-effort and may change — open an issue if you build on them.

5Open data: places — upstream owns the master

An attributed projection of upstream open data, filtered to the trail. OpenStreetMap, Wikidata and the registries are the source of truth — consume and correct it there. Use these endpoints for permalinks, provenance and a trail-scoped extract.

EndpointContentsLicence
/data/geojson/pois.geojsonEvery place. Per feature: source, OpenStreetMap id + version/changeset, Wikidata QID, sameAs, derived reliability. Top-level metadata (licence, attribution, generated-at).ODbL / CC0
/data/history/pois/index.json
…/<YYYY-MM-DD>.geojson
Dated snapshots of the place extract, written only when the data changes.ODbL / CC0
/api/aedDefibrillators from Sveriges Hjärtstartarregister (daily). Each carries shr:<id> and, where cross-referenced in OpenStreetMap, that node’s verified position.Registry API terms
/data/geojson/reserves.geojsonNature-reserve outlines from OpenStreetMap, filtered to those the trail passes through.ODbL 1.0
/data/geojson/poi-concordance.jsonConcordance table: every known external identifier (OpenStreetMap id, Wikidata QID, …) → the place’s permanent sat:poi:<uid>. Re-published on every data build.CC0
/data/pois-identity.jsonThe identity register itself: per place, its frozen uid, all identifiers ever associated with it (append-only), status and first-seen date.CC0
/data/piers-identity.jsonFerry-pier identity register: every pier and mainland hub with its frozen sat:pier:<uid>, GTFS stop-ids and slug history (append-only — GTFS ids rotate between exports; old references resolve forever). /api/objects/sat:pier:<uid> returns the record.CC0
/data/vessels-identity.jsonFerry-vessel identity register: every named vessel with its frozen sat:vessel:<uid>, Wikidata QID and GTFS-RT vehicle-id history (append-only — vehicle-ids rotate; old references resolve forever). /api/objects/sat:vessel:<uid> returns the record (schema.org Vehicle, with the Wikidata QID as sameAs).CC0
/api/objects/<id>Machine-readable record for one place (JSON, open CORS, light JSON-LD). Accepts the canonical sat:poi:<uid> or any identifier the place has ever had — old ids resolve forever and the response normalises to the canonical one. A place that has left the dataset returns a tombstone (HTTP 410) with its identity and known identifiers, never a dead link.
/?id=<satId> or /?pier=<ref>Permalink — opens the pier panel (departure board, photo). The pier’s share button copies the canonical /?id=sat:pier:<uid> (one form for every object type, survives sharing via Facebook/social). The typed /?pier= also works and accepts the slug or sat:pier:<uid>.
/?id=<satId> or /?vessel=<ref>Permalink — focuses the vessel: opens its live-position popup if it is sailing now, otherwise an info card. The /?vessel= form accepts the sat:vessel:<uid>, the raw GTFS-RT vehicle-id or the Wikidata QID.
/?id=<satId> or /?poi=<id>Permalink — opens the place in the app. The share button copies the canonical /?id=sat:poi:<uid> (one form for every object type, survives sharing via Facebook/social). The typed /?poi= also works; id is the canonical sat:poi:<uid>, and previous identifiers (e.g. osm:node:2550378999, wikidata:Q…, firepits’ grillplatser:<gid>) keep working.

6Found an error?

Most place data lives in OpenStreetMap — edit it there and the fix flows back on the next refresh, benefiting every map that uses OpenStreetMap. For routing or trail issues, use “Report a problem” in the app.

Problem reports are not open data — they may contain personal information. Each report has a permanent identifier sat:report:<uuid>; only the person who submitted it can open its status at /report?id=<uuid>, showing the case number, status and any note from the team — received → in progress → resolved.