Licensing

ApexMaps draws the license line at one rule: a map that answers a question is in every plan, and the features that turn a map into an application are Premium. Everything below follows from that rule rather than from a feature-by-feature argument.

Community vs. Premium features

Community and above, no key neededPremium and above
choropleth, bubble, and marker series, and the automatic basemapPoint clustering (cluster) and point density (type: 'hexbin')
Every built-in projection (all 16), with spec objectsProjections you register yourself (registerProjection)
The geometry registry, all 26 packs, provenance and attributionDrilldown and the breadcrumb (drilldown)
Real boundaries, in every pack and every projectionHex tile layouts (layout: 'hex', registerLayout) and pixel maps (type: 'pixel')
Tooltips, legends, labels, data labels, states, and themesEditorial annotations (annotations)
Zoom, pan, pinch, hover, click and box selection, the camera API, the viewChange event and getView()arc and line route series, including flow beads
Joins, including fuzzyJoin, and the join diagnosticsLinked selection across maps (link: { group })
Scales, palettes, size legends, responsive rulesPattern fills (fill.pattern)
On-screen zoom controls and globe rotationImage fills (fill.image)
PNG and SVG exportStory mode (chart: { context: 'story' })
The whole performance pathPresentation mode, map-to-chart morphing, time playback, and the WebGL tier, none built yet
The accessibility layer, and translating the map's own text (locale)Raster tiles under a webMercator map (geo.tiles)

fuzzyJoin and accessibility are in every plan by decision, not by omission. fuzzyJoin is never gated because cleaning up someone else's data is not a premium experience, it is the cost of using real data. Accessibility is never gated, in any tier, permanently: a watermark over a screen-reader affordance is indefensible, and in some markets it disqualifies the product from procurement.

Without a valid key, every Premium feature above still works, in full, with a watermark on the map, so you can evaluate it in your own app, with your own data, before buying anything. A valid key removes the watermark. For raster tiles the watermark follows the configuration, a tile url, rather than whether tiles are on screen at that moment, so it does not come and go as the reader zooms past minZoom. The watermark is recomputed on every render and every updateOptions(), so turning a Premium feature off removes it immediately, and a late setLicense() clears it with no reload.

ApexMaps.setLicense('APEX-xxxxxxxx') // before rendering; applies to every map on the page

One license key covers the whole Apex family, so an existing ApexCharts, ApexGrid, or ApexStock customer does not buy a second one for maps. Current releases also share the license on the page, so one setLicense() call on any of them licenses the others: a page that already calls ApexCharts.setLicense() needs no second call for its maps. Calling it on each library you load is harmless, and is still needed for ApexGrid Enterprise and for older releases that predate the shared license.

Since ApexMaps 1.3.0 a later key cannot step the page down a plan. Once a valid key is in force, a different valid key whose plan ranks lower (a Pro key after a Premium one) is ignored, with a console warning that names both plans, so a Pro key set by another product's init code cannot bring back the watermark on Premium maps. Keys of the same or a higher plan still replace the one in force, and an invalid or expired key never replaces a valid one. To move to a lower plan on purpose, call ApexMaps.setLicense('') first, then set the new key. The guard lives in the shared license manager, which ApexCharts 8.8.0, ApexTree 2.3.0, ApexSankey 1.14.0, ApexGantt 3.20.0, ApexMaps 1.3.0, ApexStock 0.6.0 and apex-grid-enterprise 0.9.0 carry, and it runs in whichever product's setLicense you call, so on a page that mixes releases, set the key once, through one of these.

Community and Commercial tiers

ApexMaps is offered under a dual-license model: a Community License for organizations under $2M in annual revenue, budget or funding, and paid Commercial and OEM licenses.

Community License

Available at no cost to individuals, non-profits, educators, and organizations whose annual revenue, operating budget, funding, or equivalent financial resources are less than $2 million USD. Personal, educational, and small-business commercial use is covered, along with modifications and redistribution with attribution. It does not cover use by an organization at or above the $2 million threshold on any of those measures, use inside a competing mapping or charting product, sublicensing under different terms, or embedding ApexMaps in a product or platform used by other people, which needs the OEM license below whatever your size.

Non-profits are treated like any other organization: under $2 million USD in annual operating budget they qualify for the Community License, and at or above it they need a commercial license, with possible non-profit discounts.

Commercial License (paid)

Required once you, your parent company, affiliates, or any entity under common control reach $2 million USD in annual revenue, operating budget, funding, or equivalent financial resources. It covers every paid plan: Community + Commercial (the Community feature set, for an organization at or above the threshold), Pro, Premium, and OEM. It includes use in internal tools and commercial applications, modifications, app-level distribution, and a 12-month subscription with updates and support. It does not cover redistributing ApexMaps itself inside a toolkit, SDK, or platform, or use by developers who are not themselves licensed.

Pro and Premium are priced per developer, and on the features you use rather than on your size. The features in the right-hand column above need Premium or OEM; a Pro license does not include them.

OEM / redistribution license (paid)

Needed specifically when you embed ApexMaps into a product or platform that other people configure or interact with: a no-code dashboard, a developer platform, an embedded BI tool, or an SDK. It is not required if your application only renders static maps that end users cannot configure or interact with. It covers redistribution rights for one application or product, every Premium feature, and a 12-month subscription with updates and support. It carries no developer seats: each developer who works with ApexMaps in that application also needs a Community + Commercial license, purchased separately. That is the tier whatever features you use, because the OEM license key already renders every Premium feature. Your end users need no license of their own. A second application needs a second OEM license. White-label, resale, and affiliate arrangements are quoted separately.

Installing ApexMaps (npm install apexmaps) is treated as agreeing to whichever of these applies to your usage. See pricing for current terms and to purchase a key.

When a subscription ends

Your license key expires, and the Premium features above render with a trial watermark. You no longer receive updates, new features, or technical support. Maps that use none of the Premium features are unaffected, and your existing deployment keeps running. For OEM licenses, continued redistribution requires an active subscription. See renewal terms.

Geometry data licenses

The license above covers ApexMaps the software, not the geographic data. Boundary data is published by third parties under its own terms, and those terms travel with the data rather than with the ApexMaps license. Every pack, and any geometry you register yourself, carries its provenance, readable at runtime through ApexMaps.mapMeta(id) and ApexMaps.catalogue(), and required attribution renders on the map automatically.

SourceUsed forLicenseAttribution required
Natural Earth 5.1.1World countries and coastline, admin-1 for 15 countriesPublic domainNo
US Census Bureau TIGER/LineUS states, counties, nation outlinePublic domainNo
Eurostat GISCO NUTS 2021EU NUTS levels 0 to 3CC BY 4.0, EuroGeographics terms applyYes, and it renders automatically

GADM is deliberately not used. It is licensed for non-commercial use only, and bundling it would put every commercial user in breach. If you register it yourself with ApexMaps.registerMap(), satisfying its license is your responsibility, not ApexMaps'.

Boundary depictions follow the policies of the publishers named above and are not a statement of position by ApexCharts on any territorial dispute. mapMeta(id).boundaries records which policy a given pack encodes.