{
  "name": "Protomaps",
  "slug": "protomaps",
  "website_url": "https://protomaps.com/",
  "vendor_description": "\"The open source map that's just one file\"",
  "categories": [
    "maps"
  ],
  "summary": "Protomaps is an open-source mapping platform built around the PMTiles single-file archive format, offering both a hosted vector and raster tile API and full self-hosting options on AWS or Cloudflare. It targets newsrooms, civic technologists, and developers who need privacy-preserving, customizable basemaps without lock-in to proprietary GIS providers. The hosted API is free for non-commercial use up to one million tile requests per month, with commercial access starting at $14 per month via GitHub Sponsors. Customers include The Washington Post, Flickr, and Felt, and it integrates with MapLibre GL JS, Leaflet, and OpenLayers.",
  "capabilities": {
    "supported_actions": [
      "vector_tiles",
      "raster_tiles",
      "pmtiles_archive_format",
      "hosted_tile_api",
      "self_hosted_deployment_aws",
      "self_hosted_deployment_cloudflare",
      "basemap_downloads",
      "maplibre_gl_js_integration",
      "leaflet_integration",
      "openlayers_integration",
      "cli_tool",
      "custom_styles",
      "basemap_localization"
    ],
    "supported_regions": [
      "global (OpenStreetMap-based basemap coverage)"
    ],
    "supported_languages": [
      "Arabic",
      "Bulgarian",
      "Chinese (Simplified)",
      "Chinese (Traditional)",
      "Croatian",
      "Czech",
      "Danish",
      "Dutch",
      "English",
      "Estonian",
      "Finnish",
      "French",
      "German",
      "Greek",
      "Hebrew",
      "Hindi",
      "Hungarian",
      "Indonesian",
      "Irish",
      "Italian",
      "Japanese",
      "Korean",
      "Latvian",
      "Lithuanian",
      "Maltese",
      "Marathi",
      "Nepali",
      "Norwegian",
      "Persian",
      "Polish",
      "Portuguese",
      "Romanian",
      "Russian",
      "Slovak",
      "Slovenian",
      "Spanish",
      "Swedish",
      "Turkish",
      "Ukrainian",
      "Urdu",
      "Vietnamese",
      "41 languages total following OpenStreetMap name conventions"
    ],
    "input_types": [
      "PMTiles archive file",
      "tile z/x/y coordinates",
      "HTTP Range Requests",
      "GeoJSON data",
      "OpenStreetMap source data",
      "bounding box for area exports",
      "API key"
    ],
    "output_types": [
      "vector tiles (MVT/PBF via PMTiles)",
      "raster tiles (JPEG/PNG via PMTiles)",
      "PMTiles archive",
      "ZXY tile API endpoint",
      "TileJSON metadata",
      "Style JSON"
    ],
    "webhooks_supported": false,
    "sandbox_available": false,
    "sdk_languages": [
      "JavaScript (pmtiles core)",
      "JavaScript (MapLibre basemaps)",
      "JavaScript (Leaflet)",
      "JavaScript (OpenLayers)",
      "Go (CLI / server proxy)"
    ],
    "mcp_server_available": false
  },
  "integration": {
    "api_style": "rest",
    "base_url": "https://api.protomaps.com",
    "api_version": "v4 (tiles), v5 (styles)",
    "versioning_scheme": "url",
    "stability": "ga",
    "deprecation_policy_url": null,
    "auth_methods": [
      "api_key"
    ],
    "auth_docs_url": "https://protomaps.com/api",
    "idempotency_supported": null,
    "error_format": null,
    "webhook_signing": null,
    "webhook_events_url": null,
    "rate_limit_requests": 1000000,
    "rate_limit_window": "month",
    "sdk_packages": [
      {
        "package": "pmtiles",
        "language": "JavaScript (pmtiles core)",
        "official": true,
        "repo_url": "https://github.com/protomaps/PMTiles"
      },
      {
        "package": "@protomaps/basemaps",
        "language": "JavaScript (MapLibre basemaps)",
        "official": true,
        "repo_url": "https://github.com/protomaps/basemaps-assets"
      },
      {
        "package": "protomaps-leaflet",
        "language": "JavaScript (Leaflet)",
        "official": true,
        "repo_url": "https://github.com/protomaps/protomaps-leaflet"
      },
      {
        "package": "ol-pmtiles",
        "language": "JavaScript (OpenLayers)",
        "official": true,
        "repo_url": "https://github.com/protomaps/PMTiles/tree/main/openlayers"
      },
      {
        "package": "go-pmtiles",
        "language": "Go (CLI / server proxy)",
        "official": true,
        "repo_url": "https://github.com/protomaps/go-pmtiles"
      }
    ],
    "mcp_url": null,
    "quickstart_url": "https://docs.protomaps.com/guide/getting-started"
  },
  "pricing": {
    "pricing_model": "subscription",
    "has_published_pricing": true,
    "starting_price_usd": "14.0000",
    "price_basis": "month",
    "free_tier_available": true,
    "free_tier_limit": "1,000,000 tile requests/month (non-commercial, soft cap)",
    "free_tier_details": "Non-commercial use of the hosted API (api.protomaps.com) is free with a soft cap of 1,000,000 tile requests per month. All open-source tools, PMTiles CLI, and daily planet basemap builds at maps.protomaps.com/builds are free without restriction. Self-hosting is always free (user pays own cloud storage/bandwidth costs only). OSM/ODbL attribution required.",
    "minimum_commitment": null,
    "self_serve_signup": true,
    "requires_sales_call": false,
    "requires_verification": false,
    "enterprise_plan_available": true,
    "price_points": [
      {
        "plan": "Free (Non-commercial)",
        "item": "hosted tile requests via api.protomaps.com",
        "amount_usd": "0.0000",
        "amount_percent": null,
        "per": "month (soft cap: 1,000,000 tile requests/month; non-commercial use only)",
        "currency": "USD",
        "source_url": "https://protomaps.com/api"
      },
      {
        "plan": "Commercial SaaS",
        "item": "commercial use of api.protomaps.com — up to 1 million tile requests per month (soft limit)",
        "amount_usd": "14.0000",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://github.com/sponsors/protomaps"
      },
      {
        "plan": "Protomaps Access",
        "item": "hosted API + author joins org Slack/Teams + geospatial consulting (24-hour response)",
        "amount_usd": "2000.0000",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://github.com/sponsors/protomaps"
      },
      {
        "plan": "Protomaps Access+",
        "item": "hosted API + consulting + prioritized open-source roadmap features + custom tileset builds + recurring standups",
        "amount_usd": "4000.0000",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://github.com/sponsors/protomaps"
      }
    ]
  },
  "compliance": {
    "soc2": null,
    "hipaa": null,
    "gdpr": null,
    "iso_27001": null,
    "pci_dss": null,
    "sla_published": false,
    "sla_url": null,
    "data_retention_policy_url": null,
    "documented_rate_limits": "Soft cap of 1,000,000 tile requests per month on the free/non-commercial hosted API; Commercial SaaS GitHub Sponsor tier ($14/month) also includes up to 1 million tile requests per month (soft limit, forgiving of occasional traffic spikes). No automated enforcement or overage billing.",
    "known_restrictions": [
      "OpenStreetMap attribution required (© OpenStreetMap) when using ZXY protocol URLs from the hosted API",
      "Commercial use of api.protomaps.com requires GitHub Sponsor subscription ($14/month minimum)",
      "Non-commercial free API has a soft cap of 1,000,000 requests/month - users consistently exceeding it are encouraged to migrate to self-hosting",
      "Basemap updated at irregular, less-than-weekly frequency",
      "Maximum zoom level 15 supported on hosted API",
      "Basemap data released under ODbL license (OpenStreetMap data terms apply)",
      "PMTiles is a read-only format (cannot update in-place without full rewrite)",
      "Cloudflare R2 deployment known to have higher latency (500ms or higher)"
    ]
  },
  "developer": {
    "docs_url": "https://docs.protomaps.com",
    "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": "2021-01-01",
    "ga_date": null,
    "github_stars": null,
    "github_stars_at": null,
    "notable_customers": [
      "Felt",
      "Flickr",
      "The Washington Post",
      "OpenInfraMap"
    ]
  },
  "scores": {
    "agent_friendliness": 20,
    "pricing_transparency": 100,
    "setup_speed": 85,
    "docs_quality": 15,
    "procurement_friction": 100,
    "trust_readiness": 0,
    "best_for": [
      "Prototypes and side projects - free to start, no sales call",
      "Teams needing broad API coverage out of the box",
      "Cost-sensitive teams - low, transparent entry price"
    ],
    "avoid_if": [
      "You have strict compliance requirements"
    ]
  },
  "sources": [
    {
      "field": "base_url",
      "url": "https://protomaps.com/api",
      "excerpt": "https://api.protomaps.com/tiles/v4.json?key=MY_KEY",
      "confidence": "high"
    },
    {
      "field": "api_version",
      "url": "https://protomaps.com/api",
      "excerpt": "https://api.protomaps.com/tiles/v4/{z}/{x}/{y}.mvt?key=MY_KEY",
      "confidence": "high"
    },
    {
      "field": "api_version",
      "url": "https://protomaps.com/api",
      "excerpt": "https://api.protomaps.com/styles/v5/light/en.json?key=MY_KEY",
      "confidence": "high"
    },
    {
      "field": "base_url",
      "url": "https://protomaps.com/api",
      "excerpt": "https://api.protomaps.com/tiles/v4/{z}/{x}/{y}.mvt?key=MY_KEY",
      "confidence": "high"
    },
    {
      "field": "vendor_description",
      "url": "https://protomaps.com/",
      "excerpt": "The open source map that's just one file",
      "confidence": "high"
    },
    {
      "field": "vendor_description",
      "url": "https://protomaps.com/",
      "excerpt": "Protomaps is a free, customizable map of the world, deployable as a single static file on cloud storage.",
      "confidence": "high"
    },
    {
      "field": "pricing_model",
      "url": "https://github.com/sponsors/protomaps",
      "excerpt": "$14/month — Commercial use of api.protomaps.com - up to 1 million tile requests per month",
      "confidence": "high"
    },
    {
      "field": "pricing_model",
      "url": "https://github.com/sponsors/protomaps",
      "excerpt": "For contracts and other payment methods, email support@protomaps.com — no overage fees, pay-as-you-go billing, or additional charges beyond the stated monthly fees are mentioned",
      "confidence": "high"
    },
    {
      "field": "has_published_pricing / price_points",
      "url": "https://github.com/sponsors/protomaps",
      "excerpt": "Commercial SaaS — $14/month — Commercial use of api.protomaps.com - up to 1 million tile requests per month",
      "confidence": "high"
    },
    {
      "field": "has_published_pricing / price_points",
      "url": "https://github.com/sponsors/protomaps",
      "excerpt": "Protomaps Access — $2,000/month — Project author joins your organization's Slack or Teams. Protomaps Access+ — $4,000/month — Prioritized development of features on the open source roadmap",
      "confidence": "high"
    },
    {
      "field": "free_tier_available / free_tier_details",
      "url": "https://protomaps.com/api",
      "excerpt": "The Protomaps Tile API is free for non-commercial use.",
      "confidence": "high"
    },
    {
      "field": "free_tier_available / free_tier_details",
      "url": "https://protomaps.com/blog/free-tier-maps/",
      "excerpt": "you can use for free up to a soft cap of 1,000,000 requests per month",
      "confidence": "high"
    },
    {
      "field": "free_tier_available / free_tier_details",
      "url": "https://protomaps.com/blog/free-tier-maps/",
      "excerpt": "If I change this free tier in the future, I go out of business, you outgrow the service, or you just don't want to depend on an external service anymore, you can export the map data and host it yourself.",
      "confidence": "high"
    },
    {
      "field": "gdpr / hipaa / soc2 / iso_27001 / pci_dss",
      "url": "https://docs.protomaps.com/guide/security-privacy",
      "excerpt": "Hosting Protomaps for your web map can eliminate third party data controllers and processors, making it easier for sites to comply with GDPR. This is not a substitute for legal advice.",
      "confidence": "high"
    },
    {
      "field": "sla_published",
      "url": "https://protomaps.com/about",
      "excerpt": "Protomaps is maintained by an individual developer with no external investors. Infrastructure costs are covered through GitHub Sponsors.",
      "confidence": "high"
    },
    {
      "field": "sla_published",
      "url": "https://protomaps.com/api",
      "excerpt": "The basemap updates at an irregular, less-than-weekly frequency to improve the cache hit rate.",
      "confidence": "high"
    },
    {
      "field": "sandbox_available",
      "url": "https://protomaps.com/api",
      "excerpt": "Requests made from localhost with a valid API key are not subject to CORS restrictions — no separate sandbox environment; localhost access is via the live API",
      "confidence": "high"
    },
    {
      "field": "documented_rate_limits",
      "url": "https://github.com/sponsors/protomaps",
      "excerpt": "Commercial use of api.protomaps.com - up to 1 million tile requests per month — a soft limit that's forgiving of occasional traffic spikes",
      "confidence": "high"
    },
    {
      "field": "documented_rate_limits",
      "url": "https://protomaps.com/blog/free-tier-maps/",
      "excerpt": "you can use for free up to a soft cap of 1,000,000 requests per month",
      "confidence": "high"
    },
    {
      "field": "supported_languages",
      "url": "https://docs.protomaps.com/basemaps/localization",
      "excerpt": "Protomaps supports name translations for 41 languages",
      "confidence": "high"
    },
    {
      "field": "supported_actions / output_types",
      "url": "https://protomaps.com/api",
      "excerpt": "https://api.protomaps.com/tiles/v4/{z}/{x}/{y}.mvt?key=MY_KEY — https://api.protomaps.com/styles/v5/light/en.json?key=MY_KEY",
      "confidence": "high"
    },
    {
      "field": "supported_actions / output_types",
      "url": "https://docs.protomaps.com/pmtiles/",
      "excerpt": "PMTiles is a single-file archive format for pyramids of tiled data that uses HTTP Range Requests to fetch only needed tiles on-demand",
      "confidence": "high"
    },
    {
      "field": "known_restrictions (attribution)",
      "url": "https://docs.protomaps.com/",
      "excerpt": "The project is released under the BSD and ODbL licenses",
      "confidence": "high"
    },
    {
      "field": "known_restrictions (attribution)",
      "url": "https://docs.protomaps.com/basemaps/layers",
      "excerpt": "The Protomaps basemap draws from OpenStreetMap and Natural Earth data",
      "confidence": "high"
    },
    {
      "field": "enterprise_plan_available",
      "url": "https://github.com/sponsors/protomaps",
      "excerpt": "Protomaps Access — $2,000/month — Project author joins your organization's Slack or Teams; Protomaps Access+ — $4,000/month — Prioritized development of features on the open source roadmap",
      "confidence": "high"
    },
    {
      "field": "enterprise_plan_available",
      "url": "https://protomaps.com/blog/open-core-to-open-source/",
      "excerpt": "The Access tier provides companies with direct communications with the project lead developer, via your company's Slack or Teams, including infrastructure evaluation and geospatial guidance.",
      "confidence": "high"
    },
    {
      "field": "self_serve_signup",
      "url": "https://protomaps.com/api",
      "excerpt": "Sign up for an account to issue API keys.",
      "confidence": "high"
    },
    {
      "field": "sdk_languages",
      "url": "https://docs.protomaps.com/pmtiles/",
      "excerpt": "Python: Beta-status package via PyPI and GitHub. Dart: Community package on pub.dev. Rust: Maintained by Stadia Maps on GitHub.",
      "confidence": "high"
    },
    {
      "field": "categories",
      "url": "https://protomaps.com/",
      "excerpt": "Protomaps is a free, customizable map of the world, deployable as a single static file on cloud storage.",
      "confidence": "high"
    },
    {
      "field": "categories",
      "url": "https://docs.protomaps.com/",
      "excerpt": "an open source system for interactive web maps",
      "confidence": "high"
    },
    {
      "field": "auth_methods",
      "url": "https://protomaps.com/api",
      "excerpt": "Sign up for an account to issue API keys. Each key is subject to CORS restrictions set by you.",
      "confidence": "high"
    },
    {
      "field": "auth_methods",
      "url": "https://protomaps.com/api",
      "excerpt": "https://api.protomaps.com/tiles/v4/{z}/{x}/{y}.mvt?key=MY_KEY",
      "confidence": "high"
    },
    {
      "field": "versioning_scheme",
      "url": "https://protomaps.com/api",
      "excerpt": "https://api.protomaps.com/tiles/v4/{z}/{x}/{y}.mvt?key=MY_KEY — version encoded in URL path segment",
      "confidence": "high"
    },
    {
      "field": "stability",
      "url": "https://docs.protomaps.com/pmtiles/cli",
      "excerpt": "The project is described as production-ready, with recommendations for deploying behind CDNs or reverse proxies in production environments.",
      "confidence": "medium"
    },
    {
      "field": "stability",
      "url": "https://protomaps.com/blog/open-core-to-open-source/",
      "excerpt": "Built over 4 years of bootstrapped, full-time independent developer work with no venture funding.",
      "confidence": "medium"
    },
    {
      "field": "sdk_packages (pmtiles)",
      "url": "https://github.com/protomaps/PMTiles",
      "excerpt": "Pyramids of map tiles in a single file on static storage",
      "confidence": "high"
    },
    {
      "field": "sdk_packages (pmtiles)",
      "url": "https://www.npmjs.com/package/pmtiles",
      "excerpt": "pmtiles npm package",
      "confidence": "high"
    },
    {
      "field": "sdk_packages (@protomaps/basemaps)",
      "url": "https://docs.protomaps.com/basemaps/maplibre",
      "excerpt": "npm install @protomaps/basemaps",
      "confidence": "high"
    },
    {
      "field": "sdk_packages (protomaps-leaflet)",
      "url": "https://github.com/protomaps/protomaps-leaflet",
      "excerpt": "protomaps-leaflet: Lightweight vector map rendering + labeling and symbology for Leaflet",
      "confidence": "high"
    },
    {
      "field": "sdk_packages (protomaps-leaflet)",
      "url": "https://docs.protomaps.com/basemaps/leaflet",
      "excerpt": "protomaps-leaflet is in maintenance mode; MapLibre GL JS is recommended for new projects",
      "confidence": "high"
    },
    {
      "field": "sdk_packages (ol-pmtiles)",
      "url": "https://docs.protomaps.com/pmtiles/openlayers",
      "excerpt": "The integration package is called ol-pmtiles, installed via npm install ol-pmtiles. The official implementation resides in the openlayers/ directory of the PMTiles repository.",
      "confidence": "high"
    },
    {
      "field": "sdk_packages (go-pmtiles)",
      "url": "https://github.com/protomaps/go-pmtiles",
      "excerpt": "Source hosted at protomaps/go-pmtiles; single binary with no external dependencies; available as a Docker Hub image",
      "confidence": "high"
    },
    {
      "field": "quickstart_url",
      "url": "https://docs.protomaps.com/guide/getting-started",
      "excerpt": "Install CLI: Download the pmtiles binary from GitHub Releases; inspect planet file; extract regional subset; view results at https://maps.protomaps.com",
      "confidence": "high"
    },
    {
      "field": "rate_limit_requests + rate_limit_window",
      "url": "https://protomaps.com/blog/free-tier-maps/",
      "excerpt": "free up to a soft cap of 1,000,000 requests per month",
      "confidence": "high"
    },
    {
      "field": "rate_limit_requests + rate_limit_window",
      "url": "https://github.com/sponsors/protomaps",
      "excerpt": "Commercial use of api.protomaps.com - up to 1 million tile requests per month",
      "confidence": "high"
    },
    {
      "field": "free_tier_limit",
      "url": "https://protomaps.com/api",
      "excerpt": "The Protomaps Tile API is free for non-commercial use.",
      "confidence": "high"
    },
    {
      "field": "free_tier_limit",
      "url": "https://protomaps.com/blog/free-tier-maps/",
      "excerpt": "free up to a soft cap of 1,000,000 requests per month",
      "confidence": "high"
    },
    {
      "field": "starting_price_usd",
      "url": "https://github.com/sponsors/protomaps",
      "excerpt": "$14/Month - Commercial SaaS: Commercial use of api.protomaps.com - up to 1 million tile requests per month",
      "confidence": "high"
    },
    {
      "field": "price_basis",
      "url": "https://github.com/sponsors/protomaps",
      "excerpt": "$14/Month - Commercial SaaS: Commercial use of api.protomaps.com - up to 1 million tile requests per month",
      "confidence": "high"
    },
    {
      "field": "launched_at",
      "url": "https://protomaps.com/blog/new-way-to-make-maps/",
      "excerpt": "April 22, 2021: a new basemap system which is an end-to-end rethinking of this entire stack, oriented around the idea that custom mapmaking should be simple",
      "confidence": "high"
    },
    {
      "field": "launched_at",
      "url": "https://cloudnativegeo.org/blog/2023/11/interview-with-brandon-liu/",
      "excerpt": "The founder of Protomaps, an interactive mapping company established in 2019.",
      "confidence": "high"
    },
    {
      "field": "notable_customers",
      "url": "https://protomaps.com/about",
      "excerpt": "The platform powers high-traffic websites including Felt and Flickr, demonstrating significant real-world deployment at scale.",
      "confidence": "high"
    },
    {
      "field": "notable_customers",
      "url": "https://protomaps.com/about",
      "excerpt": "The Washington Post uses the Protomaps integration with AWS Lambda and Cloudfront to affordably power interactive data stories. OpenInfraMap uses the Protomaps Cloudflare integration.",
      "confidence": "high"
    },
    {
      "field": "requires_verification",
      "url": "https://protomaps.com/api",
      "excerpt": "Sign up for an account to issue API keys. — signup is self-serve with no approval gate mentioned",
      "confidence": "high"
    },
    {
      "field": "auth_docs_url",
      "url": "https://protomaps.com/api",
      "excerpt": "The Protomaps Tile API is free for non-commercial use. For commercial use, become a GitHub Sponsor. Sign up for an account to issue API keys.",
      "confidence": "high"
    }
  ],
  "fields_not_found": [
    "soc2",
    "hipaa",
    "gdpr (no formal GDPR certification claim - docs page only states it helps users comply with GDPR)",
    "iso_27001",
    "pci_dss",
    "satellite_imagery (not offered - basemap excludes satellite)",
    "3D terrain (not offered in basemap)",
    "mobile SDK iOS/Android (only web JS + community/beta language bindings)",
    "SLA/uptime commitment",
    "webhooks",
    "ga_date",
    "deprecation_policy_url",
    "sla_url",
    "data_retention_policy_url",
    "error_format",
    "idempotency_supported",
    "mcp_url",
    "webhook_signing",
    "webhook_events_url",
    "rate_limit_requests_per_second"
  ],
  "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/protomaps",
        "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/protomaps/{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"
      }
    ]
  }
}