REST APIDocs live - keys by invitation

The Buoy API

Real-time and historical ocean buoy data for developers. Use read-only GET endpoints to list active buoys, search by country or geography, retrieve historical readings, and build chart time series.

terminal
$ curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://thesurfkit.com/api/v2/buoys?country=FR&per_page=5"
{
  "status": "success",
  "data": {
    "buoys": [
      {
        "id": 12,
        "name": "Anglet",
        "slug": "anglet",
        "source": "Candhis",
        "last_reading": {
          "significient_height": 1.8,
          "maximum_height": 2.4,
          "period": 9.5,
          "direction": 285,
          "water_temperature": 14.2,
          "time": "2026-03-27T08:00:00Z"
        }
      }
    ],
    "count": 28
  },
  "meta": {
    "page": 1,
    "per_page": 5,
    "total_pages": 6
  }
}

What the published API covers

The public docs currently focus on buoy discovery, latest readings, and historical retrieval.

Reading fields

  • significient_height
  • maximum_height
  • period
  • direction
  • water_temperature

Queries and filters

  • country=FR
  • bounds={north,south,east,west}
  • near=lat,lng + radius
  • query=anglet
  • lat/lng nearest lookup

Conventions

  • GET-only endpoints
  • Authorization: Bearer <api_key>
  • {status, data, meta}
  • X-RateLimit-* headers
  • page / per_page / total_pages

Published buoy endpoints

The official reference currently documents nine read-only GET endpoints for listing, searching, locating, and reading buoy data.

MethodEndpoint
GET/api/v2/buoys
GET/api/v2/buoys/{buoy_id}
GET/api/v2/buoys/last_readings
GET/api/v2/buoys/search
GET/api/v2/buoys/nearest
GET/api/v2/buoys/{buoy_id}/readings
GET/api/v2/buoys/{buoy_id}/readings/search
GET/api/v2/buoys/{buoy_id}/readings/{reading_id}
GET/api/v2/buoys/{buoy_id}/readings/chart

A simpler public API

The live docs describe a focused buoy API with predictable payloads and public discovery endpoints.

Official networks, one API

Candhis, Meteo France, NOAA/NDBC, Sofar Ocean, Vegagerdin, and other active buoy networks feed the same API.

Latest readings included

GET /buoys already returns each buoy with its latest reading, which makes country and region bootstrapping a one-call flow.

Consistent status/data/meta

List, search, nearest, and reading endpoints use the same envelope so client parsing stays simple.

Country and geographic lookup

Filter with country, bounds, or near + radius, or jump straight to /buoys/nearest for coordinate-based lookup.

Historical and chart endpoints

Use /readings, /readings/search, /readings/{reading_id}, and /readings/chart for drill-down and time series retrieval.

Public docs, invite-only auth

The reference is public at docs.labouee.app. Authenticated calls use Bearer keys, while search and nearest stay public.

Built for Any Wave Data Application

From surf apps to oceanographic research, our wave buoy data API powers a wide range of products.

Surf Apps

Power surf condition checks with real-time wave height, swell period, and buoy readings.

Coastal Monitoring

Build wave monitoring tools for harbors, marinas, coastal engineering, and offshore operations.

Oceanographic Research

Access historical wave buoy readings for climate studies, wave modeling, and machine learning.

IoT & Hardware

Connect devices to live wave buoy data for alerting, displays, and automation.

Frequently Asked Questions

The public docs currently call out sources such as Candhis, Meteo France, NOAA/NDBC, Sofar Ocean, Vegagerdin, and other active buoy networks. The website keeps the broader source directory, while the API reference stays focused on the published buoy endpoints.

Authenticated v2 requests use Authorization: Bearer <api_key>. The docs also allow api_key as a query parameter for constrained environments, but recommend the Authorization header. API keys are currently issued by invitation.

Yes. GET /api/v2/buoys/search and GET /api/v2/buoys/nearest do not require authentication and can be tested before you have credentials.

GET /api/v2/buoys returns a paginated list of buoys and already embeds last_reading for each result. You can also filter by country, source, bounds, or near + radius without needing a second request for the latest measurement.

Yes. Use GET /api/v2/buoys/{buoy_id}/readings for paginated history, /readings/search to find the closest reading to a target time, and /readings/chart for chart-ready time series.

Use bounds for a bounding box, near plus radius for radial filtering, or /api/v2/buoys/nearest with lat/lng to resolve the closest active buoy. The list endpoint also supports country filtering.

The documented buoy endpoints use a consistent JSON envelope with status, data, and meta. Pagination and timestamps live in meta, and authenticated responses also include X-RateLimit-* headers.

Yes. The official docs live at docs.labouee.app with a quickstart, authentication guide, use-case guides, and a published API reference for the buoy endpoints.

The default quota is 1,000 requests per hour. Responses expose X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset, and 429 responses include retry_after when the quota is exceeded.

Start with the public docs, test search or nearest if you do not have credentials yet, then request API access when you are ready to call the authenticated endpoints.

Docs live - keys by invitation

Get API Access

The docs are public. Request credentials when you are ready to call authenticated endpoints beyond the public search and nearest lookup.

The Buoy API - Real-time ocean buoy data for developers | The Buoy | La Bouée