Tiles

Sign a tile-server URL.

Returns a short-lived, IP-bound signed URL for the vector basemap. Feed it to MapLibre's pmtiles:// protocol handler. Pass a stable session id (one per map instance) so background URL refreshes within the session are billed once — the @rijwind/sdk tile-session helper manages this for you.

Quota cost: 1 unit per tile session; refreshes within the same session are free. Omit session to be billed per request instead. Adding the live traffic layer (?traffic=) costs 1 extra unit per session. The response also always carries a buildings block — access to the 3D buildings tilesets with each covered country's bounding box — and an imagery list of every satellite / aerial archive in the session, both free within the session (the SDK consumes them for 3D buildings and the Satellite / Hybrid styles).

get/tiles/v1/token

Request

  • Base URL: https://api.rijwind.com
  • URL: https://api.rijwind.com/tiles/v1/token
  • Auth: HTTP bearer

Query parameters

sessionstring

Stable, client-minted identifier for the map instance (e.g. a UUID, [A-Za-z0-9_-], ≤128 chars). The first token for a session is billed 1 unit; subsequent tokens for the same session within the session window are free. Omit to be billed per request.

trafficstring

Opt this session into the live traffic layer: 1/true for every available country, or a comma-separated ISO country list (e.g. NL). Adds a traffic block to the response and 1 unit to the session; refreshes stay free.

Response

Signed URL.

expiresAtinteger required

Unix timestamp (seconds) when the signature expires.

satelliteBaseUrlstring nullable

Signed URL for the global base imagery archive (raster, z0–7) — ocean bathymetry and polar ice. Layer it BELOW the satellite source: the satellite mosaic covers land only, so this is what fills open water and the poles. Same session, no extra quota cost.

satelliteBesUrlstring nullable

Signed URL for the Caribbean Netherlands aerial archive (raster, z13–21). A separate source from the mainland one — it reaches a deeper zoom — layered the same way. Same session, no extra quota cost.

satelliteNlUrlstring nullable

Signed URL for the high-resolution Netherlands aerial archive (raster, z13–18) — layer it above the global satellite source. Same session, no extra quota cost. Kept for existing integrations; imagery lists this archive and every other covered country.

satelliteOceanUrlstring nullable

Signed URL for the water-only overlay (raster, z0–7). Draw it ABOVE the satellite source and fade it out past ~z9: the satellite mosaic covers water poorly, so this renders the sea instead. Same session, no extra quota cost.

satelliteUrlstring nullable

Signed URL for the global satellite imagery archive (raster, z0–13). Feed it to a MapLibre raster source for the Satellite / Hybrid styles. Present once satellite imagery is available on the account's region; rendering it is part of the same tile session, so it adds no quota cost. Refresh together with the tile URLs.

terrainUrlstring required

Signed URL for the optional terrain (elevation) archive — feed it to a MapLibre raster-dem source with encoding: "terrarium" for hillshade or 3D terrain. Shares this session's expiry; refresh both together. Rendering terrain is part of the same tile session, so it adds no quota cost.

urlstring required

Signed URL ready to feed to MapLibre's pmtiles:// protocol handler.

Example response

{
  "buildings": {
    "baseUrl": "https://cdn.rijwind.com/buildings",
    "countries": [
      "NL"
    ],
    "coverage": {
      "NL": [
        3.2,
        50.7,
        7.3,
        53.6
      ]
    },
    "expiresAt": 1715680000,
    "query": "token=9bQ1…&expires=1715680000&token_path=%2Fbuildings%2F"
  },
  "expiresAt": 1715680000,
  "imagery": [
    {
      "attribution": "Luchtfoto: <a href=\"https://www.beeldmateriaal.nl\" target=\"_blank\" rel=\"noreferrer\">Beeldmateriaal.nl</a> CC BY 4.0",
      "bounds": [
        3.2,
        50.7,
        7.3,
        53.6
      ],
      "country": "NL",
      "id": "satellite-nl",
      "maxzoom": 18,
      "minzoom": 13,
      "role": "aerial",
      "url": "https://cdn.rijwind.com/tiles/satellite-nl.pmtiles?token=4Xp8…&expires=1715680000"
    }
  ],
  "satelliteBaseUrl": "https://cdn.rijwind.com/tiles/satellite-base.pmtiles?token=2Nc5…&expires=1715680000",
  "satelliteBesUrl": "https://cdn.rijwind.com/tiles/satellite-nl-bes.pmtiles?token=5Rt9…&expires=1715680000",
  "satelliteNlUrl": "https://cdn.rijwind.com/tiles/satellite-nl.pmtiles?token=4Xp8…&expires=1715680000",
  "satelliteOceanUrl": "https://cdn.rijwind.com/tiles/satellite-ocean.pmtiles?token=8Yh3…&expires=1715680000",
  "satelliteUrl": "https://cdn.rijwind.com/tiles/satellite.pmtiles?token=7Kd2…&expires=1715680000",
  "terrainUrl": "https://cdn.rijwind.com/tiles/terrain.pmtiles?token=9bQ1…&expires=1715680000",
  "traffic": {
    "baseUrl": "https://cdn.rijwind.com/traffic",
    "countries": [
      "NL"
    ],
    "expiresAt": 1715680000,
    "query": "token=9bQ1…&expires=1715680000&token_path=%2F"
  },
  "url": "https://cdn.rijwind.com/tiles/planet.pmtiles?token=2Tw9…&expires=1715680000"
}

Changes

No recorded changes to this operation across all 1 revision of this API.