OpenDiveMap

Documentation

Introduction

OpenDiveMap is an open database of dive sites around the world. Every site is a GeoJSON point with structured metadata — location, depth, difficulty, wildlife, conditions — 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 everywhere

All API responses follow RFC 7946. A single site is a Feature, a list of sites is a FeatureCollection. Drop the response directly into MapLibre, Leaflet, or any GeoJSON-compatible tool.

Typed fields + flexible tags

Core attributes (name, dive_type, level, max_depth_m) are typed columns you can filter on. Everything else — wildlife, season, currents — lives in a flexible tags JSON object. 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:

Request
curl "https://api.opendivemap.com/v1/sites"

You'll get back a GeoJSON FeatureCollection:

Response
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [-110.3981, 24.2156]
      },
      "properties": {
        "id": "dccaf1e1-...",
        "name": "El Bajo Seamount",
        "country_code": "MX",
        "dive_type": "seamount",
        "max_depth_m": 40,
        "level": "advanced",
        "tags": { ... }
      }
    },
    ...
  ]
}

Try it

Hit the API right now. Click "Try it" to make a live request.

GET /sites
GET /sites?country=MX&level=advanced

Endpoints

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.