{"uid":"cap_SqP0SWlRQsUy9qUMXXuu2","slug":"geoprimitives-marine-hazards-b657db77","name":"geoprimitives Marine Hazards","description":"Give it a latitude, a longitude and a radius in metres and it answers with every charted underwater rock, obstruction and wreck inside that circle, nearest first, each with its charted depth, its water level effect, its name where the chart names it, and the geodesic distance from your position. 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. Derived from NOAA Electronic Navigational Charts and redistributed; not an official NOAA ENC, and it does not meet federal chart carriage regulations under 33 CFR 164 or SOLAS chapter V. Every response repeats this under `disclaimer`. NOAA and NOAA ENC are registered trademarks of NOAA, which does not endorse this service. COVERAGE is the same 65 cells as GET /v1/marine/depth: bands 3 to 5 over 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. Not statewide and not the whole coast. The check reads the coordinate, so it happens after payment; a position off the charts is refused with outside_coverage, which does not settle. Every response repeats the coverage under `coverage`. WHAT AN EMPTY ANSWER MEANS, because this is the one that can hurt: an empty list means the chart shows nothing there, not that the water is clear. Read the zone of confidence from GET /v1/marine/depth for the same position before you read anything into a clean result. Zones C, D and U mean the area was never fully searched and NOAA says so; in zone D large depth anomalies may be expected. Only three S-57 classes are searched -- UWTROC, OBSTRN and WRECKS -- so a charted danger that is a buoy, a cable, a fish haven area, a spoil ground or a restricted area is not in this store and will not appear. WHICH CHART ANSWERS, and why it is not just one: the largest-scale cell covering each part of the search wins, applied per location rather than once for the whole circle. A harbour cell ends at its own edge and the water a kilometre outside it is charted by the approach cell, so a search that fixed on one chart would drop those hazards silently. `cellsSearched` lists every cell that contributed, and each hazard names the cell it came from. Where two cells chart the same rock at a seam it is returned once. DEPTHS are metres below Mean Lower Low Water. A null depth is a hazard the chart gives no sounding for; read `waterLevel` instead, since an object that covers and uncovers, or is awash, has no single depth. `chartedAsArea` marks a wreck or obstruction the chart carries as an area rather than a point, in which case the position given is its centroid and the thing itself is larger. LIMITS: the radius runs from 1 to 5000 metres and defaults to 1000. A search may read 100 chart tiles, counted from the geometry before any read, so an over-wide request is refused for free rather than part-served; the widest legal radius needs at most 81, so the radius is the limit you meet and the tile count is a backstop. At most 200 hazards come back, nearest first, and the response says when it truncated. VINTAGE is a 2026-05-02 snapshot of charts NOAA reissues weekly; the cell edition and issue date that answered are in each hazard's cell and in `source`. For how deep the water is rather than what is in it, use GET /v1/marine/depth.","url":"https://api.geoprimitives.dev/v1/marine/hazards?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","required":["lat","lon"],"properties":{"lat":{"type":"number","maximum":90,"minimum":-90,"description":"Latitude in decimal degrees, EPSG:4326. Refused outside -90..90."},"lon":{"type":"number","maximum":180,"minimum":-180,"description":"Longitude in decimal degrees, EPSG:4326. Refused outside -180..180."},"radiusMetres":{"type":"number","default":1000,"maximum":5000,"minimum":1,"description":"Search radius in metres, 1 to 5000. Omit for 1000. A wider search is refused rather than truncated silently."}},"additionalProperties":false}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.005","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_V7Duo8viRpHnuArwBVJbq","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Returns all charted underwater rocks, obstructions, and wrecks within a radius of a given lat/lon, sorted nearest-first with depth, water level effect, name, and geodesic distance.","exampleAgentPrompt":"Show me all the charted underwater rocks, wrecks, and obstructions within 800 metres of 57.0516° N, 135.3414° W — I need each hazard's depth and how far it is from that position.","exampleUseCases":[{"title":"Pre-anchor hazard check for a cruising sailboat","prompt":"Before I drop anchor at 55.9482° N, 133.6051° W near Kasaan Bay, can you pull up all the charted underwater rocks and obstructions within 500 metres so I know what to watch out for?"},{"title":"Route planning around Ketchikan Channel","prompt":"I'm planning a passage through Revillagigedo Channel near 55.3422° N, 131.6461° W — can you list every charted wreck and submerged hazard within 2000 metres of that position, sorted by how close they are?"},{"title":"Marina approach depth check for a charter operator","prompt":"We're approaching the Cordova small boat harbor at 60.5441° N, 145.7572° W — show me all charted obstructions and wrecks within 300 metres with their depths so the captain can pick the safest line in."}],"resultDescription":"A JSON array of marine hazards (underwater rocks, obstructions, wrecks) within the requested radius, each with charted depth, water level effect, name (if charted), and geodesic distance from the query point, sorted nearest-first. Every response also includes a disclaimer noting this is not an official NOAA ENC and is NOT FOR NAVIGATION.","failureModes":["lat or lon outside valid range (-90..90, -180..180) → request refused","radiusMetres exceeds 5000 → request refused rather than silently truncated","query point outside the 65 supported ENC cells (Sitka Sound, Kasaan Bay, Clarence Strait, Metlakatla, Ketchikan, Revillagigedo Channel, Juneau, Gastineau Channel, Lynn Canal, Cordova area) → empty results or coverage error","missing required lat/lon parameters → 400 error","payment not provided or invalid (x402 protocol) → 402 Payment Required"],"whenToPreferThis":"Choose this endpoint when you need programmatic, radius-based lookup of charted underwater hazards (rocks, obstructions, wrecks) with depth data for a specific geographic point in the covered Alaskan coastal cells. It is the right choice for pre-anchor checks, passage planning tools, or any agent workflow that needs structured hazard data from NOAA ENC source material. Do NOT use it as a substitute for official nautical charts or for navigation decisions; the disclaimer is mandatory. Prefer alternatives for areas outside the covered 65 ENC cells.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-10T00:41:29.640Z","isFirstParty":false,"canonicalSlug":"geoprimitives-marine-hazards-b657db77"}