SurfMap API

Put 5,000+ surf spots in your product.

The engine behind SurfMap, opened up as a simple REST API: named spots, hourly forecasts rated by surfer level, and tides. We are onboarding a first group of builders.

curl https://api.surf-map.com/v1/spots/lower-trestles/forecast

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.

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.

SurfMap

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 key

Or write to us and tell us what you are building.

Weather inputs include Open-Meteo data (CC BY 4.0).