{
  "name": "Thunderforest Maps",
  "slug": "thunderforest",
  "website_url": "https://www.thunderforest.com/",
  "vendor_description": "\"Thoughtfully tailored maps for web & app developers\"",
  "categories": [
    "maps"
  ],
  "summary": "Thunderforest Maps is a REST-based map tile API serving raster tiles, vector tiles, and static map images for web and mobile developers, with a focus on activity-specific cartography such as cycling, hiking, and transport. Powered by OpenStreetMap data updated within a few hours of edits, it covers global geography and integrates via API key with Leaflet, MapLibre GL JS, and Flutter. A free tier allows 150,000 tile requests per month, with paid subscriptions starting at $125 per month. GDPR compliance is confirmed, though attribution to Thunderforest and OpenStreetMap contributors is required on all maps and cannot be removed.",
  "capabilities": {
    "supported_actions": [
      "raster_tiles",
      "vector_tiles",
      "static_map_image",
      "vector_styles",
      "vector_sources",
      "custom_cartography",
      "map_tile_api",
      "static_maps_api",
      "vector_styles_api",
      "vector_sources_api"
    ],
    "supported_regions": [
      "global",
      "OpenStreetMap data source",
      "updates from OSM within a few hours"
    ],
    "supported_languages": [
      "local languages",
      "English",
      "map labels in local language and English per tile style"
    ],
    "input_types": [
      "center coordinates (longitude/latitude)",
      "zoom level (0-22)",
      "tile coordinates (z/x/y)",
      "map style identifier",
      "API key",
      "image scale modifier (@2x for HiDPI)",
      "image dimensions (width x height, max 2560px)",
      "vector tileset identifier"
    ],
    "output_types": [
      "raster tiles (PNG)",
      "raster tiles (JPG)",
      "static map image (PNG/JPG)",
      "vector tiles (MVT/PBF)",
      "MapLibre Style Specification JSON"
    ],
    "webhooks_supported": false,
    "sandbox_available": false,
    "sdk_languages": [
      "JavaScript (Leaflet)",
      "JavaScript (MapLibre GL JS)",
      "Flutter"
    ],
    "mcp_server_available": false
  },
  "integration": {
    "api_style": "rest",
    "base_url": "https://api.thunderforest.com/",
    "api_version": null,
    "versioning_scheme": "none",
    "stability": "ga",
    "deprecation_policy_url": null,
    "auth_methods": [
      "api_key"
    ],
    "auth_docs_url": "https://www.thunderforest.com/docs/apikeys/",
    "idempotency_supported": null,
    "error_format": null,
    "webhook_signing": null,
    "webhook_events_url": null,
    "rate_limit_requests": null,
    "rate_limit_window": null,
    "sdk_packages": [
      {
        "package": "leaflet",
        "language": "JavaScript (Leaflet)",
        "official": false,
        "repo_url": "https://github.com/Leaflet/Leaflet"
      },
      {
        "package": "maplibre-gl",
        "language": "JavaScript (MapLibre GL JS)",
        "official": false,
        "repo_url": "https://github.com/maplibre/maplibre-gl-js"
      },
      {
        "package": "flutter_map",
        "language": "Flutter",
        "official": false,
        "repo_url": "https://github.com/fleaflet/flutter_map"
      }
    ],
    "mcp_url": null,
    "quickstart_url": "https://www.thunderforest.com/docs/"
  },
  "pricing": {
    "pricing_model": "subscription",
    "has_published_pricing": true,
    "starting_price_usd": "125.0000",
    "price_basis": "month",
    "free_tier_available": true,
    "free_tier_limit": "150,000 tile requests/month",
    "free_tier_details": "Hobby Project plan: 150,000 tile requests/month at no cost, recurring monthly. Includes global coverage and automatic updates. Attribution to Thunderforest and OpenStreetMap required. No payment required.",
    "minimum_commitment": null,
    "self_serve_signup": true,
    "requires_sales_call": false,
    "requires_verification": false,
    "enterprise_plan_available": true,
    "price_points": [
      {
        "plan": "Hobby Project",
        "item": "tile requests — up to 150,000/month",
        "amount_usd": "0.0000",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://www.thunderforest.com/pricing/"
      },
      {
        "plan": "Solo Developer",
        "item": "tile requests — up to 1,500,000/month",
        "amount_usd": "125.0000",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://www.thunderforest.com/pricing/"
      },
      {
        "plan": "Small Business",
        "item": "tile requests — up to 15,000,000/month",
        "amount_usd": "255.0000",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://www.thunderforest.com/pricing/"
      },
      {
        "plan": "Large Business",
        "item": "tile requests — up to 150,000,000/month",
        "amount_usd": "525.0000",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://www.thunderforest.com/pricing/"
      },
      {
        "plan": "Enterprise / Premium Service",
        "item": "tile requests — custom volume",
        "amount_usd": null,
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://www.thunderforest.com/pricing/"
      }
    ]
  },
  "compliance": {
    "soc2": null,
    "hipaa": false,
    "gdpr": true,
    "iso_27001": false,
    "pci_dss": false,
    "sla_published": false,
    "sla_url": null,
    "data_retention_policy_url": "https://www.thunderforest.com/privacy/",
    "documented_rate_limits": null,
    "known_restrictions": [
      "Attribution to Thunderforest and OpenStreetMap contributors required on all maps (cannot be removed)",
      "OpenStreetMap data licensed under ODbL; map images under CC-BY-SA 4.0",
      "Caching proxies and redistribution are not permitted",
      "In-browser and on-device caching for offline use is allowed",
      "Bulk downloading requires Small Business plan or above",
      "Applications must provide honest HTTP Referer and User-Agent headers",
      "Static Maps API and Vector Tiles API requests count as 10 Map Tile API requests each for quota purposes"
    ]
  },
  "developer": {
    "docs_url": "https://www.thunderforest.com/docs/",
    "api_reference_url": null,
    "openapi_spec_url": null,
    "postman_collection_url": null,
    "changelog_url": null,
    "status_page_url": null,
    "llms_txt_url": null,
    "markdown_docs_url": null,
    "rendering": "static"
  },
  "adoption": {
    "launched_at": "2007-01-01",
    "ga_date": null,
    "github_stars": null,
    "github_stars_at": null,
    "notable_customers": [
      "NATS",
      "FCMQ",
      "Pedometer++",
      "Panintelligence"
    ]
  },
  "scores": {
    "agent_friendliness": 30,
    "pricing_transparency": 100,
    "setup_speed": 85,
    "docs_quality": 15,
    "procurement_friction": 100,
    "trust_readiness": 15,
    "best_for": [
      "Prototypes and side projects - free to start, no sales call",
      "Teams needing broad API coverage out of the box"
    ],
    "avoid_if": [
      "You have strict compliance requirements"
    ]
  },
  "sources": [
    {
      "field": "pricing_model",
      "url": "https://www.thunderforest.com/pricing/",
      "excerpt": "Enterprise and Premium Service pricing available upon request.",
      "confidence": "high"
    },
    {
      "field": "sdk_packages",
      "url": "https://www.thunderforest.com/about/what-we-do/",
      "excerpt": "There is no proprietary SDK or vendor lock-in.",
      "confidence": "high"
    },
    {
      "field": "vendor_description",
      "url": "https://www.thunderforest.com/",
      "excerpt": "Thoughtfully tailored maps for web & app developers",
      "confidence": "high"
    },
    {
      "field": "categories",
      "url": "https://www.thunderforest.com/",
      "excerpt": "Thoughtfully tailored maps for web & app developers",
      "confidence": "high"
    },
    {
      "field": "categories",
      "url": "https://www.thunderforest.com/docs/",
      "excerpt": "The platform offers four main APIs: Map Tiles API, Static Maps API, Vector Sources API, Vector Styles API",
      "confidence": "high"
    },
    {
      "field": "supported_actions",
      "url": "https://www.thunderforest.com/docs/",
      "excerpt": "Map Tiles API – Web map tiling service; Static Maps API – Static map generation; Vector Sources API – Vector data provision; Vector Styles API – Vector styling capabilities",
      "confidence": "high"
    },
    {
      "field": "supported_actions",
      "url": "https://www.thunderforest.com/docs/vector-sources-api/",
      "excerpt": "All our vector tilesets are available in the MVT format, so they are compatible with a wide range of rendering libraries, including Mapbox, MapLibre and other libraries.",
      "confidence": "high"
    },
    {
      "field": "supported_regions",
      "url": "https://www.thunderforest.com/about/openstreetmap/",
      "excerpt": "OpenStreetMap provides global coverage, extensive detail, and continuous volunteer updates. Updates from OSM mappers appear on Thunderforest maps within a few hours of the mappers adding them to OSM.",
      "confidence": "high"
    },
    {
      "field": "sdk_languages",
      "url": "https://www.thunderforest.com/docs/",
      "excerpt": "Tutorials cover integration with: OpenLayers (JavaScript), Leaflet (JavaScript), flutter_map (Flutter), MapLibre using Vector Styles API (JavaScript), MapLibre using Map Tiles API (JavaScript)",
      "confidence": "high"
    },
    {
      "field": "pricing_model",
      "url": "https://www.thunderforest.com/pricing/",
      "excerpt": "Solo Developer: 1,500,000 tile requests/month USD: $125/month | Small Business: 15,000,000 tile requests/month USD: $255/month | Large Business: 150,000,000 tile requests/month USD: $525/month",
      "confidence": "high"
    },
    {
      "field": "has_published_pricing",
      "url": "https://www.thunderforest.com/pricing/",
      "excerpt": "Solo Developer USD: $125 | EUR: €115 | GBP: £95; Small Business USD: $255 | EUR: €235 | GBP: £195; Large Business USD: $525 | EUR: €475 | GBP: £395",
      "confidence": "high"
    },
    {
      "field": "free_tier_available",
      "url": "https://www.thunderforest.com/pricing/",
      "excerpt": "Hobby Project (Free) — 150,000 tile requests/month — Test out your ideas while trying our APIs for free",
      "confidence": "high"
    },
    {
      "field": "free_tier_available",
      "url": "https://www.thunderforest.com/pricing/",
      "excerpt": "Global coverage, automatic updates, no surge charges, limited quota. No payment required.",
      "confidence": "high"
    },
    {
      "field": "free_tier_details",
      "url": "https://www.thunderforest.com/pricing/",
      "excerpt": "Hobby Project (Free): 150,000 tile requests/month. Features: Global Coverage, Automatic Updates, No Surge Charges, limited quota. No payment required; designed for testing.",
      "confidence": "high"
    },
    {
      "field": "sandbox_available",
      "url": "https://www.thunderforest.com/pricing/",
      "excerpt": "Hobby Project (Free): Test out your ideas while trying our APIs for free",
      "confidence": "high"
    },
    {
      "field": "enterprise_plan_available",
      "url": "https://www.thunderforest.com/pricing/",
      "excerpt": "Enterprise and Premium Service pricing available upon request.",
      "confidence": "high"
    },
    {
      "field": "self_serve_signup",
      "url": "https://www.thunderforest.com/docs/apikeys/",
      "excerpt": "API Keys are pre-generated and available in the dashboard immediately upon account creation.",
      "confidence": "high"
    },
    {
      "field": "gdpr",
      "url": "https://www.thunderforest.com/about/security/",
      "excerpt": "We are fully compliant with The European Union's General Data Protection Regulation (GDPR).",
      "confidence": "high"
    },
    {
      "field": "gdpr",
      "url": "https://www.thunderforest.com/privacy/",
      "excerpt": "The UK Data Protection Act 2018 (DPA 2018); The UK General Data Protection Regulation (UK GDPR); The European Union's General Data Protection Regulation (GDPR)",
      "confidence": "high"
    },
    {
      "field": "hipaa",
      "url": "https://www.thunderforest.com/about/security/",
      "excerpt": "No formal security certifications (SOC2, ISO 27001, HIPAA, PCI DSS) are mentioned on this page.",
      "confidence": "high"
    },
    {
      "field": "iso_27001",
      "url": "https://www.thunderforest.com/about/security/",
      "excerpt": "No formal security certifications (SOC2, ISO 27001, HIPAA, PCI DSS) are mentioned on this page.",
      "confidence": "high"
    },
    {
      "field": "pci_dss",
      "url": "https://www.thunderforest.com/about/security/",
      "excerpt": "You provide your payment card information to our payment partner (Stripe) and we do not store the card number ourselves.",
      "confidence": "high"
    },
    {
      "field": "sla_published",
      "url": "https://www.thunderforest.com/terms/",
      "excerpt": "We provide no warranties or guarantees of any kind as to the correctness or usability of the data or the availability of our services.",
      "confidence": "high"
    },
    {
      "field": "known_restrictions",
      "url": "https://www.thunderforest.com/terms/",
      "excerpt": "Attribution to both Thunderforest and OpenStreetMap contributors with working links. Caching proxies or other redistribution methods are not permitted. Tiles may be cached in-browser and on-device for offline use.",
      "confidence": "high"
    },
    {
      "field": "known_restrictions",
      "url": "https://www.thunderforest.com/articles/using-your-quota/",
      "excerpt": "Static Maps API requests = 10 Map Tile API requests equivalent. Vector Tiles API requests = 10 Map Tile API requests equivalent.",
      "confidence": "high"
    },
    {
      "field": "documented_rate_limits",
      "url": "https://www.thunderforest.com/articles/using-your-quota/",
      "excerpt": "The documentation does not specify per-minute, per-hour, or per-second rate limits—only monthly quota thresholds tied to subscription tiers.",
      "confidence": "high"
    },
    {
      "field": "auth_methods",
      "url": "https://www.thunderforest.com/docs/apikeys/",
      "excerpt": "API Keys are simply a token that you append to each request to identify that request is related to your account.",
      "confidence": "high"
    },
    {
      "field": "auth_methods",
      "url": "https://www.thunderforest.com/docs/map-tiles-api/",
      "excerpt": "https://api.thunderforest.com/{style}/{z}/{x}/{y}{scale}.{format}?apikey={apikey}",
      "confidence": "high"
    },
    {
      "field": "base_url",
      "url": "https://www.thunderforest.com/docs/map-tiles-api/",
      "excerpt": "https://api.thunderforest.com/{style}/{z}/{x}/{y}{scale}.{format}?apikey={apikey}",
      "confidence": "high"
    },
    {
      "field": "base_url",
      "url": "https://www.thunderforest.com/docs/static-maps-api/",
      "excerpt": "https://api.thunderforest.com/static/{style}/{lon},{lat},{zoom}/{width}x{height}{scale}.{format}?apikey={apikey}",
      "confidence": "high"
    },
    {
      "field": "base_url",
      "url": "https://www.thunderforest.com/docs/vector-styles-api/",
      "excerpt": "https://api.thunderforest.com/styles/{style}/style.json?apikey={apikey}",
      "confidence": "high"
    },
    {
      "field": "api_style",
      "url": "https://www.thunderforest.com/docs/map-tiles-api/",
      "excerpt": "The API follows the standard format for Web Mercator map tile services.",
      "confidence": "high"
    },
    {
      "field": "versioning_scheme",
      "url": "https://www.thunderforest.com/docs/map-tiles-api/",
      "excerpt": "https://api.thunderforest.com/{style}/{z}/{x}/{y}{scale}.{format}?apikey={apikey}",
      "confidence": "high"
    },
    {
      "field": "versioning_scheme",
      "url": "https://www.thunderforest.com/docs/vector-styles-api/",
      "excerpt": "https://api.thunderforest.com/styles/{style}/style.json?apikey={apikey}",
      "confidence": "high"
    },
    {
      "field": "free_tier_limit",
      "url": "https://www.thunderforest.com/pricing/",
      "excerpt": "Hobby Project — 150,000 tile requests/month",
      "confidence": "high"
    },
    {
      "field": "starting_price_usd",
      "url": "https://www.thunderforest.com/pricing/",
      "excerpt": "Solo Developer — 1,500,000 tile requests/month — USD: $125/month",
      "confidence": "high"
    },
    {
      "field": "price_basis",
      "url": "https://www.thunderforest.com/pricing/",
      "excerpt": "We count individual HTTP requests to our API.",
      "confidence": "high"
    },
    {
      "field": "launched_at",
      "url": "https://www.thunderforest.com/maps/opencyclemap/story/",
      "excerpt": "OpenCycleMap was the first map we developed, and launched in 2007",
      "confidence": "high"
    },
    {
      "field": "notable_customers",
      "url": "https://www.thunderforest.com/",
      "excerpt": "Featured clients include Trails, Gaia GPS, BikeHub, and Komoot. Case studies highlight partnerships with NATS, FCMQ, Pedometer++, and Panintelligence.",
      "confidence": "high"
    },
    {
      "field": "notable_customers",
      "url": "https://www.thunderforest.com/customers/nats/",
      "excerpt": "Despite exploring other mapping source providers, none demonstrated the same level of commitment to helping us achieve our objectives.",
      "confidence": "high"
    },
    {
      "field": "sdk_packages",
      "url": "https://www.thunderforest.com/tutorials/flutter/",
      "excerpt": "flutter_map v6.0 or later — https://docs.fleaflet.dev/",
      "confidence": "high"
    },
    {
      "field": "sdk_packages",
      "url": "https://github.com/fleaflet/flutter_map",
      "excerpt": "Flutter's №1 non-commercially aimed map client: it's easy-to-use, versatile, vendor-free, fully cross-platform, and 100% pure-Flutter",
      "confidence": "high"
    },
    {
      "field": "data_retention_policy_url",
      "url": "https://www.thunderforest.com/privacy/",
      "excerpt": "We may retain a copy of your account information for up to 7 days after you close your account",
      "confidence": "high"
    },
    {
      "field": "requires_verification",
      "url": "https://www.thunderforest.com/docs/apikeys/",
      "excerpt": "Creating a Thunderforest account — API Keys are pre-generated and available in the dashboard immediately upon account creation.",
      "confidence": "high"
    },
    {
      "field": "quickstart_url",
      "url": "https://www.thunderforest.com/docs/",
      "excerpt": "JavaScript frameworks: OpenLayers, Leaflet, MapLibre (Vector Styles variant), MapLibre (Map Tiles variant); Mobile: Flutter (flutter_map)",
      "confidence": "high"
    },
    {
      "field": "stability",
      "url": "https://www.thunderforest.com/docs/map-tiles-api/",
      "excerpt": "Historic subdomain prefixes (a, b, c) are deprecated; users with older configurations should consult the subdomains documentation for migration guidance.",
      "confidence": "medium"
    }
  ],
  "fields_not_found": [
    "soc2",
    "documented_rate_limits",
    "webhooks_supported (confirmed absent)",
    "mcp_server_available (confirmed absent)",
    "sandbox_available (confirmed absent)",
    "pci_dss (security page does not mention it)",
    "hipaa (security page does not mention it)",
    "iso_27001 (security page does not mention it)",
    "api_version",
    "versioning_scheme (no version in URL paths)",
    "deprecation_policy_url",
    "rate_limit_requests",
    "rate_limit_window",
    "sla_url",
    "error_format",
    "webhook_signing",
    "webhook_events_url",
    "mcp_url",
    "ga_date",
    "idempotency_supported"
  ],
  "source_confidence": "high",
  "last_verified_at": "2026-06-14T00:00:00.000Z",
  "contribute": {
    "note": "This data is crowd-editable. Suggest corrections or leave a review via these endpoints - no auth required, requests are rate-limited, and every submission is reviewed before it goes live. For a field edit, {field} is any key in this response and a citation is required.",
    "endpoints": [
      {
        "action": "review",
        "label": "Leave a review or comment",
        "method": "POST",
        "url": "https://apio.sh/api/feedback/thunderforest",
        "example_body": {
          "kind": "review",
          "rating": 5,
          "body": "Your experience with this API…"
        }
      },
      {
        "action": "field_edit",
        "label": "Suggest a correction to a field (cite a source)",
        "method": "POST",
        "url": "https://apio.sh/api/suggest/thunderforest/{field}",
        "example_body": {
          "value": "corrected value",
          "citations": [
            {
              "url": "https://source.example/page",
              "excerpt": "supporting quote"
            }
          ],
          "note": "what changed and why"
        }
      },
      {
        "action": "new_api",
        "label": "Suggest a new API to add",
        "method": "POST",
        "url": "https://apio.sh/api/suggest/api",
        "example_body": {
          "value": {
            "name": "Acme API",
            "website_url": "https://acme.example"
          },
          "citations": [
            {
              "url": "https://acme.example"
            }
          ]
        }
      },
      {
        "action": "token",
        "label": "Optional - raise your rate limit",
        "method": "GET",
        "url": "https://apio.sh/api/feedback/token"
      }
    ]
  }
}