Ocean Currents API

Hourly surface current speed and direction anywhere at sea, up to 5 days ahead. Circulation, tide and wave drift are summed, so you get the current a boat or a drifter actually feels.

50 free requests, no credit card.
GET/api/v1/currentsMonterey Bay, offshore
{
    "lat": 36.7,
    "lon": -122.05,
    "days": 1,
    "unit": {
        "speed": "knots",
        "direction": "degrees, direction the current flows TOWARDS"
    },
    "scope": "open_water",
    "scope_note": "Model resolution ~8 km: reliable in open water. Small islands and reefs may be invisible to the model. Values cached per ~0.1 deg cell for up to 6 h.",
    "model_point": {
        "lat": 36.6667,
        "lon": -122.0833,
        "distance_km": 4.7
    },
    "hours": [
        {
            "t": "2026-10-18 15:00",
            "u_ms": 0.062,
            "v_ms": 0.079,
            "speed_kn": 0.2,
            "dir_deg": 38
        },
        {
            "t": "2026-10-18 16:00",
            "u_ms": 0.082,
            "v_ms": 0.079,
            "speed_kn": 0.22,
            "dir_deg": 46
        },
        {
            "t": "2026-10-18 17:00",
            "u_ms": 0.092,

  …
Forecast rangeup to 5 days
Time step1 hour
Model grid1/12° (~8 km)
SourceCopernicus Marine

Request

GEThttps://tidesatlas.com/api/v1/currents
ParameterTypeDescription
lat, lonfloatPosition at sea (decimal degrees).
portstringInstead of lat/lon: a station slug, with optional country (ISO-2).
daysint1 to 5. Default 3.
X-API-KeyheaderYour API key (or ?api_key= in the query string).

Code examples

curl "https://tidesatlas.com/api/v1/currents?lat=36.70&lon=-122.05&days=1" \
  -H "X-API-Key: YOUR_KEY"

Response

Real response for Monterey Bay, offshore, 18 October 2026 (arrays shortened).

{
    "lat": 36.7,
    "lon": -122.05,
    "days": 1,
    "unit": {
        "speed": "knots",
        "direction": "degrees, direction the current flows TOWARDS"
    },
    "scope": "open_water",
    "scope_note": "Model resolution ~8 km: reliable in open water. Small islands and reefs may be invisible to the model. Values cached per ~0.1 deg cell for up to 6 h.",
    "model_point": {
        "lat": 36.6667,
        "lon": -122.0833,
        "distance_km": 4.7
    },
    "hours": [
        {
            "t": "2026-10-18 15:00",
            "u_ms": 0.062,
            "v_ms": 0.079,
            "speed_kn": 0.2,
            "dir_deg": 38
        },
        {
            "t": "2026-10-18 16:00",
            "u_ms": 0.082,
            "v_ms": 0.079,
            "speed_kn": 0.22,
            "dir_deg": 46
        },
        {
            "t": "2026-10-18 17:00",
            "u_ms": 0.092,
            "v_ms": 0.069,
            "speed_kn": 0.22,
            "dir_deg": 53
        }
    ],
    "model": "Copernicus Marine GLOBAL_ANALYSISFORECAST_PHY_001_024 (1/12 deg, hourly, total = circulation + tide + Stokes drift)",
    "attribution": "Generated using E.U. Copernicus Marine Service Information; https://doi.org/10.48670/moi-00016",
    "disclaimer": "Not for navigation."
}
FieldMeaning
hours[].speed_knCurrent speed, knots
hours[].dir_degDirection the current flows towards, degrees
hours[].u_ms / v_msEast and north components, m/s
scopeopen_water or near_shore: how far you can trust the value
model_pointModel cell actually used and its distance from your point
attribution / disclaimerRequired credit line and safety notice

Data sources

Data: E.U. Copernicus Marine Service, product GLOBAL_ANALYSISFORECAST_PHY_001_024 (1/12°, hourly), total surface current = ocean circulation + tide + Stokes drift. Credit line returned in every response (doi:10.48670/moi-00016).

Good to know

  • The ~8 km grid cannot resolve tidal races, narrow channels or harbour entrances. Near the coast the response says near_shore: treat it as indicative.
  • Small islands and reefs may be invisible to the model. Values are cached per ~0.1° cell for up to 6 hours.
  • Not for navigation. Always cross-check with official sources.

FAQ

Is the tide included in the current?

Yes. The value is the total surface current: ocean circulation, tidal current and wave-induced (Stokes) drift.

Why is the first call slower?

A new area is fetched from Copernicus on demand (a few seconds); later calls in the same cell come from cache.

Which plans include it?

The Complete pack, which also includes tides, and the weather-only pack. New accounts get 50 free requests; see the docs for current prices.