Surfline Scraper avatar

Surfline Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Surfline Scraper

Surfline Scraper

[πŸ’° $3.0 / 1K] Extract Surfline surf forecasts β€” wave height, swell direction & period, wind, tides, water temperature, and weather for any spot. Search by name, paste spot URLs, or filter by region. Up to a 16-day horizon.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Pull complete surf forecasts from Surfline for any break on earth β€” wave height, primary and secondary swell trains, wind, tides, water temperature, weather, and sunrise/sunset β€” all merged into one timestamp-aligned forecast for each spot. Search by spot name, paste report URLs, or filter by region, then get a clean forecast up to 16 days out. Built for surf-travel planners, surf schools, and coastal researchers who need structured, ready-to-use forecast data without clicking through Surfline spot by spot.

Why This Scraper?

  • Five forecast dimensions in one row β€” waves, wind, tides, weather, and sunlight are merged onto a single timestamp grid per spot, so every reading lines up instead of arriving as five separate feeds you have to stitch together.
  • Up to a 16-day horizon β€” wave, wind, and tide data run out to 10 days; air temperature and daylight extend to a full 16, and you pick 1, 2, 3, 5, 7, 10, or 16 days per run.
  • Hourly, 3-hourly, or 6-hourly resolution β€” dial reading density from one point every hour for dawn-patrol precision down to a light 6-hour summary.
  • Primary and secondary swell trains β€” each wave reading carries every real swell partition with its height, period (seconds), and direction (degrees), so you can tell a clean groundswell from messy windswell.
  • Exact high and low tide extrema β€” every reading gets a tide height, and the precise high/low turning points are tagged with tideType in place, not just an interpolated grid.
  • Wind type classification plus gusts β€” every reading labels the wind as offshore, onshore, or cross-shore alongside speed, compass direction, and gust strength.
  • Overall condition rating and water temperature per spot β€” Surfline's spot rating (e.g. POOR, FAIR, GOOD) and the day's water-temperature range come on every spot row.
  • Global coverage, one search returns them all β€” search any named break worldwide (e.g. "Ocean Beach" surfaces every matching Surfline spot); narrow with a region breadcrumb filter like "California" or "Portugal".
  • Metric or imperial, your call β€” switch wave height, wind speed, and temperature between meters/kph/Β°C and feet/mph/Β°F for the whole run.

Use Cases

Surf Travel Planning

  • Compare the forecast across a shortlist of breaks before booking a trip
  • Spot the best swell window in the next 10 days for a target coastline
  • Rank nearby spots by wave height and wind direction on a given day
  • Plan around daylight with per-day sunrise and sunset times

Surf Schools & Camps

  • Schedule beginner sessions around the mildest wave and wind windows
  • Build daily condition briefings for students and instructors
  • Match lesson locations to forecast rating across a region

Coastal Research & Tide Analysis

  • Extract exact high/low tide times and heights for study sites
  • Correlate swell period and direction with local coastal behavior
  • Track water temperature trends across spots and seasons

Surf Media & Content

  • Auto-populate forecast widgets and daily reports for surf websites
  • Feed swell, wind, and tide data into newsletters and social posts
  • Build "best conditions this week" roundups across multiple regions

Watersports & Coastal Businesses

  • Time rentals, tours, and staffing to favorable wind and tide windows
  • Alert customers when conditions at a home break turn favorable
  • Enrich booking apps with live wave, wind, and daylight data

Getting Started

Search by Spot Name

The simplest way to start β€” one break by name:

{
"spotSearch": ["Pipeline"]
}

Compare Several Spots at Higher Detail

{
"spotSearch": ["Trestles", "Malibu", "Rincon"],
"forecastDays": "5",
"intervalHours": "1",
"units": "imperial"
}

Region-Filtered Search with Selected Conditions

{
"spotSearch": ["Ocean Beach"],
"region": "California",
"forecastDays": "7",
"conditions": ["wave", "wind", "tides"],
"maxSpots": 10
}

Exact Spots by URL

Paste Surfline surf-report URLs to target precise breaks you already know:

{
"spotUrls": [
"https://www.surfline.com/surf-report/blacks-beach/5842041f4e65fad6a770883b"
],
"forecastDays": "16",
"intervalHours": "3",
"units": "metric"
}

Input Reference

What to Scrape

ParameterTypeDefaultDescription
spotSearchstring[]["Pipeline"]Search surf spots by name (e.g. "Pipeline", "San Diego", "Bondi Beach"). Each term returns the best-matching spots. Leave empty if you are pasting spot URLs instead.
spotUrlsstring[][]Direct Surfline spot URLs (e.g. a /surf-report/<name>/<id> link). Use these to target exact spots you already know.
regionstring""Keep only spots whose location breadcrumb contains this text (e.g. "California", "Portugal", "Gold Coast"). Only affects name-searched spots; spots targeted directly by URL are always kept.

Forecast Options

ParameterTypeDefaultDescription
forecastDaysselect7 daysForecast horizon, starting today: 1, 2, 3, 5, 7, 10, or 16 days. Waves, wind, and tides run to 10 days; temperature and sunrise/sunset extend to 16.
intervalHoursselectEvery 3 hoursSpacing between forecast readings: every hour, every 3 hours, or every 6 hours. Hourly gives the most detail.
conditionsmulti-selectallWhich conditions to include: Waves & swell, Wind, Tides, Weather, Sunrise & sunset. Leave empty to include all of them.
unitsselectImperial (ft, mph, Β°F)Measurement units for wave height, wind speed, and temperature: Metric (m, kph, Β°C) or Imperial (ft, mph, Β°F).

Limits

ParameterTypeDefaultDescription
maxSpotsinteger20Hard cap on how many spots to forecast in one run. Protects you from an over-broad search returning thousands of spots. Set to 0 for no limit (capped at 2,000 spots as a safety ceiling).

Output

Each result is one surf spot with its full forecast embedded as a forecast[] time-series. Here is a representative row (trimmed to a few forecast readings):

{
"spotId": "5842041f4e65fad6a770883b",
"spotName": "Blacks Beach",
"region": "United States / California / San Diego",
"latitude": 32.8894,
"longitude": -117.2519,
"timezone": "America/Los_Angeles",
"url": "https://www.surfline.com/surf-report/blacks-beach/5842041f4e65fad6a770883b",
"rating": "FAIR",
"ratingScore": 2,
"waterTempMin": 64,
"waterTempMax": 66,
"waveHeightMin": 3,
"waveHeightMax": 4,
"units": "imperial",
"forecastDays": 3,
"scrapedAt": "2026-07-02T14:30:00+00:00",
"forecast": [
{
"timestamp": "2026-07-02T06:00:00-07:00",
"waveMin": 3,
"waveMax": 4,
"waveHumanRelation": "Waist to shoulder high",
"swells": [
{ "height": 2.6, "period": 14, "direction": 201 },
{ "height": 1.1, "period": 8, "direction": 285 }
],
"windSpeed": 6,
"windDirection": 240,
"windType": "Offshore",
"windGust": 9,
"temperature": 68,
"weatherCondition": "CLEAR",
"tideHeight": 2.1,
"tideType": "HIGH",
"sunrise": "2026-07-02T05:47:00-07:00",
"sunset": "2026-07-02T20:01:00-07:00"
}
]
}

Spot Fields

FieldTypeDescription
spotIdstringSurfline spot identifier
spotNamestringHuman-readable spot name
regionstringLocation breadcrumb (Country / State / Region)
latitudenumberSpot latitude
longitudenumberSpot longitude
timezonestringSpot timezone (e.g. "America/Los_Angeles")
urlstringSurfline surf-report URL
ratingstringOverall condition rating (e.g. POOR, FAIR, GOOD)
ratingScorenumberNumeric sort value behind the rating
waterTempMinnumberDay's minimum water temperature
waterTempMaxnumberDay's maximum water temperature
waveHeightMinnumberSummary minimum wave height
waveHeightMaxnumberSummary maximum wave height
unitsstringUnits used for this row (metric or imperial)
forecastDaysnumberNumber of days actually covered by the forecast
scrapedAtstringISO timestamp of data collection
forecastobject[]Per-reading forecast time-series (see below)

Forecast Reading Fields

Each entry in forecast[] is one timestamp on the merged grid.

FieldTypeDescription
timestampstringReading time in the spot's local timezone
waveMinnumberMinimum surf height at this reading
waveMaxnumberMaximum surf height at this reading
waveHumanRelationstringPlain-language size (e.g. "Waist to shoulder high")
swellsobject[]Swell trains, each with height, period (seconds), direction (degrees)
windSpeednumberWind speed at this reading
windDirectionnumberWind direction in degrees
windTypestringWind quality: Offshore, Onshore, or Cross-shore
windGustnumberGust speed at this reading
temperaturenumberAir temperature at this reading
weatherConditionstringWeather condition code (e.g. CLEAR, RAIN)

Tide & Sunlight Fields

Also carried on each forecast[] entry.

FieldTypeDescription
tideHeightnumberTide height at this reading
tideTypestringHIGH or LOW when the reading falls on a tide turning point
sunrisestringLocal sunrise time for this reading's day
sunsetstringLocal sunset time for this reading's day

Tips for Best Results

  • Start with one or two spots to confirm the units, horizon, and conditions match what you need, then widen the search or raise maxSpots.
  • Use intervalHours: 1 with a 3-day horizon for the most granular dawn-patrol planning β€” hourly readings across three days give you precise swell and wind windows without a huge, slow response.
  • Select only the conditions you need β€” dropping to ["wave", "wind"] skips tide, weather, and sunlight lookups for faster runs when you only care about the surf.
  • Choosing 16 days returns the full 10-day surf forecast plus 16-day temperature and daylight β€” the reported forecastDays reflects the actual horizon of the merged data.
  • Filter broad names with region β€” searching "Ocean Beach" alone returns matches worldwide, so add a breadcrumb like "California" or "New Zealand" to zero in.
  • Read swell direction in degrees β€” the direction on each swell in swells[] is a compass bearing the swell comes from, letting you match it to a spot's ideal swell window.
  • Pair spotUrls with a saved list β€” the exact spot URL always targets the break you mean, even when several spots share a name.

Pricing

From $3.00 per 1,000 results β€” one result is a single surf spot with its complete embedded forecast, not a per-reading charge, so a heavy 16-day hourly spot still counts as one result. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

ResultsNo discountBronzeSilverGold
100$0.36$0.34$0.32$0.30
1,000$3.60$3.40$3.20$3.00
10,000$36.00$34.00$32.00$30.00
100,000$360.00$340.00$320.00$300.00

No compute or time-based charges β€” you pay per result, plus a small fixed per-run start fee. Each result is one surf spot with its full embedded forecast.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n β€” Workflow automation
  • Google Sheets β€” Direct spreadsheet export
  • Slack / Email β€” Notifications on new results
  • Webhooks β€” Trigger custom APIs on run completion
  • Apify API β€” Full programmatic access

This actor is designed for legitimate surf-forecast research, travel planning, and content use. You are responsible for complying with applicable laws and Surfline's Terms of Service. Use the data responsibly, respect reasonable request volumes, and do not use it for any unlawful purpose.