Skip to main content

Data products

Alongside the tools, FastGIS publishes curated datasets you can search, filter and take offline. Each one declares its licence and attribution through the API, because several are share-alike and what you may do with the output depends on which source a feature came from.

Licence buckets

Every dataset endpoint has a sources companion — GET /mtb/sources, GET /friluft/sources — returning per-source licence metadata rather than a single blanket statement:

FieldWhat it tells you
bucketA_verified for authoritative open data, C_share_alike for sources whose licence propagates
license, license_sourceThe licence and where to read it
attributionThe string you must display
share_alikeWhether reusing this feature obliges you to share alike
feature_countHow many features that source contributes

Check the bucket before redistributing anything you derive.

MTB trails

A European mountain-bike catalogue built from OpenStreetMap cycling and MTB data — 1,266,642 features across 30-plus countries, ODbL 1.0, attributed to OpenStreetMap contributors.

Browse the catalogueGET /mtb/catalog
Query features in viewGET /mtb/features
One trailGET /mtb/trail/{trail_id}
One route relationGET /mtb/route/{rel_id}
Licence and coverageGET /mtb/sources

These endpoints are readable without an API key.

Friluftsliv

Norwegian outdoor-recreation points — 43,048 features from four sources with genuinely different terms:

SourceBucketLicenceFeatures
Friluftslivsområder, kartlagte og verdsatteA_verifiedNLOD 2.08,097
Statlig sikra friluftslivsområderA_verifiedNLOD 2.0391
TurrutebasenA_verifiedOpen data, no named licence21,102
OpenStreetMap friluftC_share_alikeODbL 1.013,458

GET /friluft/features queries them; GET /friluft/sources returns the table above with bounding boxes and endpoints. Note the third row: open, but without a named licence, which is not the same as public domain.

Beaches

Beach discovery with rider-contributed verdicts.

Beaches in a regionGET /grass/beaches/review/{region}
Default regionGET /grass/beaches/review
Read verdictsGET /grass/beaches/review/verdicts
Add a verdictPOST /grass/beaches/review/verdicts
ExportGET /grass/beaches/review/export

The export is scoped to the caller: admins receive the full attributed report, everyone else only their own verdicts (community totals per beach come from the verdicts endpoint). The region assumed when a request omits one is set by BEACH_REVIEW_DEFAULT_REGION.

Curvy roads

Roads scored for how interesting they are to ride, by one of three algorithms — accumulated turning, turning per kilometre, or corner tightness. The rider app exposes this as Find Curvy Roads; see the rider app guide.

Search near a pointGET /grass/curvature/nearby
Score a drawn areaPOST /grass/curvature/analyze
Score against the prebuilt databasePOST /grass/curvature/analyze-precomputed
Road classes availableGET /grass/curvature/road-classes
Database freshnessGET /grass/curvature/db-status

Taking data offline

Offline is tile-based. Tiles are 1°×1° SQLite files, one per cell, named after the cell's south-west corner.

What the server has builtGET /grass/tiles/catalog
Curvature tileGET /grass/tiles/curvature/{tile_id}?algorithm=total|bearing|radius
POI tileGET /grass/tiles/poi/{tile_id}
MTB tileGET /grass/tiles/mtb/{tile_id}

Routing goes offline separately, as regional packs: GET /grass/offline/catalog lists them and GET /grass/offline/manifest describes what a client should download. The rider app wraps all of this — see Offline data.

Imagery

GET /tiles/ortho/{z}/{x}/{y} serves orthophoto and satellite basemap tiles. Coverage is per-country and configured server-side; a cell with no coverage answers 404, which is the client's signal to fall back to another basemap.

Everything else

The API reference lists these datasets in full, with parameters and response shapes, under the mtb, friluft, beaches, curvature, tiles, offline and ortho tags of the API reference.

The sources endpoints above need no key and no subscription — licence terms should never sit behind a paywall.