OSM Licensing & ODbL Compliance Jump to heading
Licensing is the one part of an OSM pipeline where being approximately right is not a defensible position, and where the cost of getting it wrong arrives years later, in a conversation nobody wanted to have. It is also, once the vocabulary is clear, far less complicated than its reputation suggests.
The Problem This Topic Solves Jump to heading
You are building something with OpenStreetMap data and need to know what you owe in return. The answer affects architecture — whether you can combine OSM with a proprietary dataset, what you can publish, how attribution reaches users — so it is much cheaper settled at the start than discovered at launch.
The failure scenario is a product built on an assumption nobody wrote down. A team combines OSM with a licensed commercial dataset, publishes an API that serves the result, and discovers at launch review that the output is a derived database subject to share-alike, which the commercial licence forbids them from satisfying. The engineering is fine. The problem is that the question was never asked, and the architecture that would have avoided it — keeping the two datasets separable — was not built.
The Vocabulary That Matters Jump to heading
Three terms carry all the weight, and confusing them is the source of most misunderstanding.
A produced work is something made from the database that is not itself a database: a rendered map image, a printed atlas, a report, a visualisation. Distributing one requires attribution. It does not trigger share-alike.
A derived database is a database made from the OSM database — an extract, a filtered subset, a transformed schema, a routing graph, in most readings a vector tile set. Distributing one requires attribution and share-alike: the derived database must itself be offered under the same licence.
A collective database is OSM data placed alongside other data without the two being combined. A directory holding an OSM extract and a separate proprietary file is collective; the proprietary file does not become subject to share-alike merely by sitting next to the extract.
The line between derived and collective is where real architectural decisions live, and it is the subject of Deciding if a Derived Database Triggers Share-Alike.
Attribution: Where, Not Whether Jump to heading
Attribution is the obligation that applies to almost everything, and the questions people actually have are about placement rather than principle.
The requirement is that users of your work are made aware the data comes from OpenStreetMap and its contributors. For an interactive map, that means visible attribution on the map itself — a corner credit, not a link buried three pages away. For a printed product, it means in the legend or the credits. For a data download, it means in the accompanying documentation and, ideally, in the data itself.
Two practical points recur. A link is expected where the medium allows one, pointing at the project’s copyright page. And attribution should survive the pipeline: a tile archive whose metadata carries the credit, a GeoParquet file with the source in its schema metadata, a database with a provenance table. Automating ODbL Attribution in Derived Products makes that mechanical rather than a thing somebody must remember.
Share-Alike and the Architecture It Implies Jump to heading
Share-alike bites when you distribute a derived database. The obligation is to offer that database under the same licence, which for a pure OSM derivative is usually unproblematic — the output was going to be open anyway.
It becomes an architectural question when a second dataset is involved. If combining OSM with a proprietary source produces a single derived database that you then distribute, the whole thing falls under share-alike, and a licence forbidding that makes the combination undistributable.
Three architectures avoid the collision, and all three have to be chosen deliberately.
Keep them separable. Distribute the OSM-derived part and the proprietary part as distinct databases, joined by the consumer. This is the collective-database route, and it works when the consumer can reasonably do the join.
Distribute only produced works. A rendered map, a report or an image made from the combination is a produced work, and share-alike does not reach it. This is why a great many commercial products render rather than publish data.
Do not distribute at all. Internal use creates no distribution obligation. Many pipelines that worry about this turn out to be entirely internal, and the question simply does not arise.
Validation and Error Handling Jump to heading
| Condition | Root cause | Detection | Remediation |
|---|---|---|---|
| Attribution absent from a product | Nobody owned the requirement | A user or reviewer points it out | Automate attribution into the build, not the checklist |
| Proprietary data pulled into share-alike | Combined into one derived database | Legal review at launch | Keep the datasets separable, or distribute produced works |
| Provenance lost mid-pipeline | Source not carried through transformations | Cannot say which extract a result came from | Record source and date at ingestion and propagate |
| Attribution stripped by a consumer | Credit only in documentation | Downstream copies carry no credit | Embed the credit in the data’s own metadata |
| Unclear whether output is a database | The distinction never examined | Nobody can answer the question | Settle produced work versus database explicitly |
| Import blocked on source licence | Assumed availability meant permission | Community or foundation objection | Establish permission in writing before importing |
| Compliance decays over releases | A one-off review, never re-run | New outputs ship without attribution | Check attribution in the build as a gate |
Questions Worth Settling Early Jump to heading
Four questions come up on almost every OSM project, and each is far cheaper answered at design time than at launch.
Who is the distributor? If your organisation serves data to customers, you are distributing. If you provide software that customers point at their own OSM data, they are. The distinction decides whose obligation it is, and it is worth being explicit rather than assuming.
Is a customer-facing API a distribution? Generally yes, if the response contains extractable feature data. An endpoint returning geometry and attributes is distributing a database to whoever calls it, whatever the commercial framing around it.
What about screenshots and documentation? Any published depiction of the data is a produced work and carries the attribution obligation. That includes the map image in a sales deck, which is the single most commonly uncredited artefact in most organisations.
Does an internal tool that anyone can access count? Access within an organisation is not distribution, but the boundary of “the organisation” is worth checking: contractors, partner companies and a customer-facing support tool are each somewhere on the spectrum, and the answer follows from who can actually retrieve the data rather than from whose logo is on the interface.
Automating Compliance Jump to heading
Compliance that depends on somebody remembering will eventually fail, usually at the least convenient moment. Three mechanisms make it structural instead.
Attribution as a build artefact. The credit string is generated from the pipeline’s own provenance record and written into every output format’s metadata — tile archive metadata, Parquet schema metadata, a database table, a documentation header. Nothing ships without it because nothing can.
Provenance as a first-class column. Every record carries, or is joinable to, the source extract and its date. This satisfies the licence, and it is independently the most useful debugging aid an OSM pipeline has — the point argued in Recording OSM Data Provenance in a Pipeline.
A gate in the build. A check that fails when an output lacks attribution costs almost nothing and turns a recurring review into a one-time implementation.
Performance and Scale Jump to heading
Compliance has essentially no runtime cost — a credit string and a provenance column are negligible next to geometry — but it has a real architectural cost if retrofitted. Adding provenance to a pipeline that never carried it means re-deriving every output to learn where it came from, which for a warehouse of any size is a project rather than a change.
The practical consequence is that this is a day-one decision. Carrying the source and date from the moment an extract is read costs one column and one string; adding them two years later costs a migration and a period during which nobody can answer questions about older data.
Guides in This Topic Jump to heading
- Automating ODbL Attribution in Derived Products — generating and embedding the credit in every output format the pipeline produces.
- Deciding if a Derived Database Triggers Share-Alike — working through the produced work, derived and collective distinction on a real output.
- Recording OSM Data Provenance in a Pipeline — carrying source, version and date through every transformation.
Frequently Asked Questions Jump to heading
Is a rendered map image subject to share-alike?
No. A rendered map is a produced work — something made from the database that is not itself a database — and produced works carry an attribution obligation but not share-alike. That is why many commercial products render rather than publish data: the image can be distributed under whatever terms they choose, provided the credit is visible. The tiles behind the image are a different question, because a vector tile set is data somebody could extract from.
Where does attribution have to appear?
Somewhere users of the work will actually see it, which depends on the medium. An interactive map needs a visible credit on the map itself rather than a link several pages away; a printed product needs it in the legend or credits; a data download needs it in the accompanying documentation and, better, in the data’s own metadata. Embedding it in the data is what keeps it attached when somebody copies the file elsewhere.
Does combining OSM with proprietary data make the proprietary data open?
It can, which is exactly why the architecture matters. If the combination produces a single derived database that you then distribute, share-alike applies to the whole of it. Keeping the two separable — distributed as distinct databases the consumer joins — avoids that, as does distributing only produced works, as does not distributing at all. The choice has to be made before the pipeline is built, because retrofitting separability is expensive.
Do I owe anything if the pipeline is entirely internal?
Distribution is what triggers the obligations, so a pipeline whose outputs never leave your organisation creates no share-alike duty. Attribution still applies to anything you do publish, including screenshots in a public document or a map shown to customers. It is also worth noting that “internal” has a habit of becoming external later, and a pipeline that carried provenance from the start is the one that can answer the question when it does.
Is a vector tile set a produced work or a database?
Generally a database, because a tile set contains structured features with attributes that a consumer can query and extract rather than merely look at. A rendered raster image of the same map is a produced work. The distinction is not about the file format but about whether what you distribute lets somebody get the data back out, and a vector tile set very clearly does.
Related Jump to heading
- OSM Data Fundamentals & Architecture — the parent section and the data model these obligations attach to.
- OSM Conflation & Data Enrichment — where combining datasets makes the derived-database question urgent.
- Preparing an OSM Import — the permission question in the other direction.
- OSM Vector Tiles & Rendering Pipelines — a common output whose classification people get wrong.
- OSM Extract Providers & Automated Downloads — where provenance recording naturally begins.
- Exporting OSM to GeoParquet & PostGIS — sinks whose metadata should carry the credit.
Up one level: OSM Data Fundamentals & Architecture.