← APIs / geoprimitives
Verified

geoprimitives

Coinbase Bazaarby Coinbase Bazaar · marketplace

Pay-per-call x402 service at api.geoprimitives.dev, listed in the Coinbase Bazaar. Give it a latitude and longitude and it answers with what the nautical chart says about the water there: the depth range of the charted depth area containing the position, the nearest charted sounding and how far away it is, and the chart's own zone of confidence for that area. Parameters go in the query string: this is a GET, there is no body. NOT FOR NAVIGATION, stated first because it is a condition of using the source. This is derived from NOAA Electronic Navigational Charts and redistributed; it is not an o

locationfederated
Price per request
$0.0066
Base URL
https://gateway.apiosk.com/cbz-api-geoprimitives-dev
Technical Specs
Auth MethodNone (x402 payment proof only)
Response FormatJSON
Endpoints1
Endpoints
MethodPathDescriptionCost
GET /v1/marine/depth Give it a latitude and longitude and it answers with what the nautical chart says about the water there: the depth range of the charted depth area containing the position, the nearest charted sounding and how far away it is, and the chart's own zone of confidence for that area. Parameters go in the query string: this is a GET, there is no body. NOT FOR NAVIGATION, stated first because it is a condition of using the source. This is derived from NOAA Electronic Navigational Charts and redistributed; it is not an official NOAA ENC and does not meet federal chart carriage regulations under 33 CFR 164 or SOLAS chapter V, which only charts from NOAA or a certified NOAA ENC distributor do. Every response repeats this under `disclaimer`. NOAA and NOAA ENC are registered trademarks of NOAA, which does not endorse this service. COVERAGE is 65 NOAA ENC cells of usage bands 3, 4 and 5 over five working areas of southeast and southcentral Alaska: Sitka Sound; Kasaan Bay and Clarence Strait; Metlakatla, Ketchikan and Revillagigedo Channel; Juneau, Gastineau Channel and Lynn Canal; and Cordova with eastern Prince William Sound. It is not statewide, it is not the whole coast, and the small-scale cells that would make it look wider were deliberately left out. The coverage check reads the coordinate, so it runs in the handler after payment rather than in front of the 402: a position off the charts is quoted like any other and then refused with outside_coverage. A refusal does not settle and nothing is charged, but it costs a signature and a round trip, so check the coverage first. Every response repeats it under `coverage`. NOTHING IS INTERPOLATED, and that is the difference between this and GET /v1/elevation. Terrain is a continuous surface and sampling it between pixels is legitimate; a chart is a set of assertions a hydrographer made, and averaging two of them invents a depth nobody surveyed. So `depthAreaMinimum` is DRVAL1 of the charted depth area the position falls inside, the
$0.0057 default
View details
Endpoint documentation
GET/v1/marine/depth
$0.0057 default
Description

Give it a latitude and longitude and it answers with what the nautical chart says about the water there: the depth range of the charted depth area containing the position, the nearest charted sounding and how far away it is, and the chart's own zone of confidence for that area. Parameters go in the query string: this is a GET, there is no body. NOT FOR NAVIGATION, stated first because it is a condition of using the source. This is derived from NOAA Electronic Navigational Charts and redistributed; it is not an official NOAA ENC and does not meet federal chart carriage regulations under 33 CFR 164 or SOLAS chapter V, which only charts from NOAA or a certified NOAA ENC distributor do. Every response repeats this under `disclaimer`. NOAA and NOAA ENC are registered trademarks of NOAA, which does not endorse this service. COVERAGE is 65 NOAA ENC cells of usage bands 3, 4 and 5 over five working areas of southeast and southcentral Alaska: Sitka Sound; Kasaan Bay and Clarence Strait; Metlakatla, Ketchikan and Revillagigedo Channel; Juneau, Gastineau Channel and Lynn Canal; and Cordova with eastern Prince William Sound. It is not statewide, it is not the whole coast, and the small-scale cells that would make it look wider were deliberately left out. The coverage check reads the coordinate, so it runs in the handler after payment rather than in front of the 402: a position off the charts is quoted like any other and then refused with outside_coverage. A refusal does not settle and nothing is charged, but it costs a signature and a round trip, so check the coverage first. Every response repeats it under `coverage`. NOTHING IS INTERPOLATED, and that is the difference between this and GET /v1/elevation. Terrain is a continuous surface and sampling it between pixels is legitimate; a chart is a set of assertions a hydrographer made, and averaging two of them invents a depth nobody surveyed. So `depthAreaMinimum` is DRVAL1 of the charted depth area the position falls inside, the

Pricing
$0.0057 default
Parameters
{
  "additionalProperties": false,
  "properties": {
    "lat": {
      "description": "Latitude in decimal degrees, EPSG:4326. Refused outside -90..90.",
      "maximum": 90,
      "minimum": -90,
      "type": "number"
    },
    "lon": {
      "description": "Longitude in decimal degrees, EPSG:4326. Refused outside -180..180.",
      "maximum": 180,
      "minimum": -180,
      "type": "number"
    }
  },
  "required": [
    "lat",
    "lon"
  ],
  "type": "object"
}
Example response
{
  "chart": {
    "band": "harbour",
    "cell": "US5AK2NE",
    "cellsConsulted": [
      "US5AK2NE"
    ],
    "edition": 3,
    "issued": "20260302",
    "scale": 12000,
    "update": 0
  },
  "coverage": {
    "areas": [
      "Sitka Sound",
      "Kasaan Bay and Clarence Strait",
      "Metlakatla, Ketchikan and Revillagigedo Channel",
      "Juneau, Gastineau Channel and Lynn Canal",
      "Cordova and eastern Prince William Sound"
    ],
    "bands": [
      "coastal (band 3)",
      "approach (band 4)",
      "harbour (band 5)"
    ],
    "cells": 65,
    "classes": [
      "SOUNDG",
      "DEPARE",
      "DRGARE",
      "UWTROC",
      "OBSTRN",
      "WRECKS",
      "M_QUAL"
    ],
    "reason": "The charts are the 65 NOAA ENC cells of usage bands 3 to 5 that cover five working areas of southeast and southcentral Alaska. This is not statewide and it is not the whole coast. The coverage check reads the coordinate, so it runs in the handler and after payment, not in front of the 402: a position off the charts is quoted like any other and then refused with outside_coverage. A refusal does not settle, so nothing is charged, but it costs a signature and a round trip. Check the coverage against this list first.",
    "region": "Southeast and southcentral Alaska, 65 NOAA ENC cells"
  },
  "depthAreaMaximum": 36.5,
  "depthAreaMinimum": 18.2,
  "disclaimer": {
    "notForNavigation": true,
    "origin": "https://www.charts.noaa.gov/ENCs/",
    "statement": "Derived from NOAA ENC data and redistributed. This is NOT an official NOAA ENC and does NOT meet federal chart carriage regulations under 33 CFR 164 or SOLAS chapter V; only charts from NOAA or a certified NOAA ENC distributor do. Do not navigate on this answer.",
    "surveyAge": "NOAA's own warning, repeated because it governs how much any of this is worth: much of the depth information on NOAA charts comes from surveys conducted before 1940 and the shoreline is more than 20 years old. The zone of confidence in every depth answer is the chart's own assessment of that, per area.",
    "trademark": "NOAA and NOAA ENC are registered trademarks of the National Oceanic and Atmospheric Administration, which does not endorse this service.",
    "vintage": "Chart data as held on 2026-05-02. NOAA reissues ENCs weekly for Notice to Mariners and this snapshot does not track them; the cell edition and issue date that answered are in \"source\" so you can compare against NOAA's own catalog."
  },
  "interpolation": "none. depthAreaMinimum is DRVAL1 of the charted depth area containing the position, and nearestSounding is a real charted sounding with the distance to it. Nothing between them is invented.",
  "nearestSounding": {
    "depth": 20.1,
    "distanceMetres": 5.88,
    "lat": 57.0405259,
    "lon": -135.3420156
  },
  "notes": [],
  "query": {
    "lat": 57.0405,
    "lon": -135.3421
  },
  "soundingDatum": "Mean Lower Low Water",
  "source": {
    "cell": "US5AK2NE",
    "cellBand": "harbour",
    "cellEdition": 3,
    "cellIssued": "20260302",
    "cellScale": 12000,
    "cellUpdate": 0,
    "dataset": "NOAA Electronic Navigational Charts, S-57 edition 3.1",
    "horizontalDatum": "WGS 84",
    "publisher": "NOAA Office of Coast Survey (IHO S-62 producer code 550)",
    "release": "20260502",
    "rights": "Public domain (US government work, 17 U.S.C. 105). NOAA ENC is a registered trademark of NOAA.",
    "soundingDatum": "Mean Lower Low Water",
    "units": "metres",
    "url": "https://www.charts.noaa.gov/ENCs/"
  },
  "surveyQuality": {
    "depthAccuracy": "0.50 m + 1% depth; full area search, all significant seafloor features detected",
    "positionAccuracy": "5 m + 5% depth",
    "positionAccuracyMetres": null,
    "soundingAccuracyMetres": null,
    "surveyEnd": "20020510",
    "surveyStart": "20020429",
    "zoneOfConfidence": "A1"
  },
  "tilesRead": 1,
  "units": "metres"
}