Documentation
Introduction
OpenDiveMap is an open database of dive sites around the world. Every site is a GeoJSON point with structured metadata — location, depth, environment, topology, entry type, region, and sea — served over a simple REST API with no authentication required.
The data is community-driven and version-controlled: every edit is tracked, and previous versions of any site can be retrieved at any time.
Key concepts
GeoJSON + OGC API Features
All API responses follow RFC 7946
with OGC API - Features pagination metadata.
A single site is a Feature, a list of sites is a
FeatureCollection with numberMatched,
numberReturned, and links.
Drop the response directly into MapLibre, Leaflet, or any GeoJSON-compatible tool.
Typed fields + flexible tags
Core attributes (name,
environment,
topologies,
entry,
max_depth,
sea_mrgid) are typed columns you can
filter on. Additional objective metadata — local names — lives in a flexible
tags JSON object.
Sea uses Marine Regions MRGIDs.
See the Schema for the full reference.
Version history
Every update to a dive site is automatically snapshotted. You can retrieve the full
edit history of any site via
GET /sites/:id/history.
Quick start
Fetch all dive sites with a single request:
curl "https://api.opendivemap.com/v1/sites" You'll get back a GeoJSON FeatureCollection:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-110.3981, 24.2156]
},
"properties": {
"id": "a7x3km",
"name": "El Bajo Seamount",
"country_code": "MX",
"country_name": "Mexico",
"sea_mrgid": 4314,
"sea_name": "Gulf of California",
"environment": "ocean",
"topologies": ["pinnacle"],
"max_depth": 40,
"entry": "boat",
"tags": { "names_es": ["El Bajo", "El Bajito"] }
}
},
...
],
"numberMatched": 4,
"numberReturned": 4,
"links": [
{ "rel": "self", "href": "...", "type": "application/geo+json" }
]
} Try it
Hit the API right now. Click "Try it" to make a live request.
/sites /sites?country=MX&entry=boat Endpoints
GET /enums All accepted classification values GET /stats Aggregate counts and breakdowns GET /sites List all dive sites with filters GET /sites/:id Get a single site by ID GET /sites/:id/history Get edit history See the full API Reference for parameters, response codes, and multi-language examples.
Next steps
Schema — Learn about the data model, field types, and the tags vocabulary.
API Reference — Full endpoint documentation with request/response examples in cURL, JavaScript, and Python.