Official networks, one API
Candhis, Meteo France, NOAA/NDBC, Sofar Ocean, Vegagerdin, and other active buoy networks feed the same 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.
$ 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
}
}The public docs currently focus on buoy discovery, latest readings, and historical retrieval.
The official reference currently documents nine read-only GET endpoints for listing, searching, locating, and reading buoy data.
| Method | Endpoint |
|---|---|
| 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 |
The live docs describe a focused buoy API with predictable payloads and public discovery endpoints.
Candhis, Meteo France, NOAA/NDBC, Sofar Ocean, Vegagerdin, and other active buoy networks feed the same API.
GET /buoys already returns each buoy with its latest reading, which makes country and region bootstrapping a one-call flow.
List, search, nearest, and reading endpoints use the same envelope so client parsing stays simple.
Filter with country, bounds, or near + radius, or jump straight to /buoys/nearest for coordinate-based lookup.
Use /readings, /readings/search, /readings/{reading_id}, and /readings/chart for drill-down and time series retrieval.
The reference is public at docs.labouee.app. Authenticated calls use Bearer keys, while search and nearest stay public.
The published docs highlight official sources such as Candhis, Meteo France, NOAA/NDBC, Sofar Ocean, Vegagerdin, and other active buoy networks.
Observation network
CANDHIS
France
Observation network
Cefas WaveNet
United Kingdom, Ireland
Observation network
Instituto Hidrográfico
Portugal
Observation network
ISPRA Rete Ondametrica Nazionale
Italy
Forecast service
Météo-France
France
Observation network
NOAA NDBC
United States, Global
Observation network
Puertos del Estado
Spain
Observation network
Queensland Waves
Australia
Observation network
SHOA
Chile
Observation network
Sofar Ocean
Global
Observation network
Vegagerðin
Iceland
From surf apps to oceanographic research, our wave buoy data API powers a wide range of products.
Power surf condition checks with real-time wave height, swell period, and buoy readings.
Build wave monitoring tools for harbors, marinas, coastal engineering, and offshore operations.
Access historical wave buoy readings for climate studies, wave modeling, and machine learning.
Connect devices to live wave buoy data for alerting, displays, and automation.
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.
The docs are public. Request credentials when you are ready to call authenticated endpoints beyond the public search and nearest lookup.