What the API serves
A real spot database
5,000+ named surf spots worldwide, with coordinates and country, searchable by name or by location. Not grid points: the actual breaks surfers know.
Forecasts rated by level
Seven days of hourly waves, wind and tide for every spot, plus a simple rating for beginner, intermediate and advanced surfers. The same engine that powers the app.
Tides built in
High and low water for every spot, computed from harmonic constituents. No second subscription to a tide service.
Search spots, pull forecasts, read tides
Plain GETs, one API key. This is the whole flow.
GET /v1/spotsGET /v1/spots/nearbyGET /v1/spots/{id}GET /v1/spots/{id}/forecastGET /v1/spots/{id}/tides
Sample data. The response shapes are real.
- Format
- JSON over HTTPS
- Auth
- API key header
- Versioning
- /v1 from day one
- Units
- Metric, times in UTC
- Freshness
- Forecasts refreshed twice a day
- Horizon
- 7 days, hourly
One call, the whole picture
Stable JSON, versioned from day one. Here is the shape of a forecast response.
GET https://api.surf-map.com/v1/spots/anchor-point/forecast
{
"spot": { "id": "anchor-point", "name": "Anchor Point", "country": "Morocco" },
"units": "metric",
"hours": [
{
"time": "2026-08-09T08:00Z",
"waveHeight": 1.8, "wavePeriod": 12, "waveDirection": 305,
"windSpeed": 7, "windDirection": 71,
"tide": { "height": 1.2, "state": "rising" },
"rating": { "beginner": 2, "intermediate": 4, "advanced": 4 }
}
]
}SDK, MCP server, docs your tools can read
Whether you write every line yourself or your coding agent does the typing, integrating should take minutes, not a sprint.
A TypeScript SDK
A typed client for Node and serverless runtimes: search spots, fetch forecasts, autocomplete on every field. One install, no boilerplate.
An MCP server
Connect SurfMap to Claude Code, Cursor or any MCP client, and your coding agent can look up spots and pull rated forecasts while it builds for you.
Docs made for machines too
An OpenAPI spec and an llms.txt for the API from day one. Point your assistant at one URL and it knows every endpoint, every field, every unit.
quickstart.ts
import { SurfMap } from '@surfmap/sdk';
const surfmap = new SurfMap({
apiKey: process.env.SURFMAP_API_KEY,
});
const [spot] = await surfmap.spots.search({
q: 'hossegor',
});
const forecast = await surfmap.forecast.get(spot.id);
// rated 1 to 5 for each level
forecast.hours[0].rating.intermediate; // 4.mcp.json
{
"mcpServers": {
"surfmap": {
"type": "http",
"url": "https://api.surf-map.com/mcp"
}
}
}Who it is for
Surf apps and side projects, surf schools and camps that want live conditions on their site, travel platforms, watch faces and dashboards. If the Magicseaweed API shutdown left your project stranded, this is the replacement we wished existed.
Pricing
Monthly plans with clear limits. Start at the size that fits and move up when your traffic does.
Starter
$39per month
Your first production app.
- 500 calls a day
- 60 calls a minute
- 2 API keys
- One production app
- Attribution with a link
- Email support
Growth
$99per month
An app with real traffic.
- 2,500 calls a day
- 120 calls a minute
- 5 API keys
- Several apps
- Attribution with a link
- Priority email support
Pro
$249per month
Full volume, your branding only.
- 10,000 calls a day
- 300 calls a minute
- 10 API keys
- Apps and internal tools
- No attribution required
- A direct line to us
Scale
Custom
Bigger plans, custom terms.
- 25,000+ calls a day
- Custom limits and terms
- Offline use of the spot database
- Data embedded in your product
- A direct line to us
Access is by invite, there is no checkout here. Send us an email with the plan that fits and a line about what you are building, and we set up your account, your payment and your first key.
contact@surf-map.com
Every plan includes all five /v1 endpoints, the TypeScript SDK, the MCP server, the OpenAPI spec and llms.txt. Attribution means a visible "Surf data by SurfMap" link in your product.
Get early access
Create an account, name your key and make your first call in minutes. Questions or bigger plans? We answer every message ourselves.
Create your keyOr write to us and tell us what you are building.
contact@surf-map.com
Weather inputs include Open-Meteo data (CC BY 4.0).
