BUILD SOMETHING THE OCEAN NEEDS

Open by design.

A free observation API. Read-only MCP tools. A passive hardware bridge.

OpenAPI specification ↗
PUBLIC / NO API KEY

The observation playground

Query approved observations with their units, timestamps, licence and instrument metadata.

Maximum 100 returned observations; this is a bounded snapshot. Public queries use a 60 requests/minute IP limit.

GET /api/v1/observations/READY
Run a request to inspect the real response.

No API credential required.
No demo records mixed into this endpoint.
REST / OBSERVATIONS

Measurements with context.

/api/v1/observations/

Filter by bbox, hours and limit. Measurements that pass checks are projected into the public response.

REST / COVERAGE

See where evidence exists.

/api/v1/coverage/

Coastal grid cells from the returned snapshot, with latest times and observation counts.

REST / BRIEFING

Follow the evidence.

/api/v1/briefing/

Observed ranges and freshness, linked back to source observation IDs. No inferred forecasts.

THE CONNECTED ECOSYSTEM

Three useful connections.

MCP SERVER INCLUDED

FreeMCP + AI tools

Run python -m enviromarine_mcp for stdio, or add --http for Streamable HTTP on port 8011. Uses the official MCP SDK with three read-only tools.

FreeMCP catalog publication still needs a public deployment URL, provider declaration and operator review. The OpenAPI contract is ready for that process.

PASSIVE DEVICE TELEMETRY

FreeMHS

A marine.read manifest, heartbeat and durable telemetry adapter connects an enrolled bridge to FreeMHS. Use a separate outbox and FreeMHS bridge token.

The adapter does not expose AIS configuration, engine controls or other actuator commands.

SIGNED RADIO REPORTS

MeshCore

EM1 carries five weather values in a signed compact report. The shore relay needs no vessel upload secret. The cloud validates the signature and applies the same consent and quality checks.

Companion radios need a suitable route or configured repeaters. Software tests do not establish offshore range.

Send an observation

Create a vessel, register an instrument and issue a gateway credential in My fleet. Queue a report on the device before trying delivery.

POST /edge/api/v1/observations/
Authorization: Bearer $ENVIROMARINE_GATEWAY_TOKEN
Content-Type: application/json

{"observations": [{
  "id": "<stable event UUID generated before queueing>",
  "sensor_id": "<your registered instrument UUID>",
  "observed_at": "<ISO 8601 timestamp with timezone>",
  "latitude": 51.65, "longitude": -10.25,
  "measurements": {"sea_surface_temperature_c": 15.1},
  "simulation": false
}]}

Batch size 1–50. Canonical units only. Dates up to 30 days old; five-minute future clock tolerance, withheld until observation time. Retrying identical content is safe; changing content under the same ID returns 409.