Scandlines Scraper — Germany-Denmark Ferry Routes & Prices avatar

Scandlines Scraper — Germany-Denmark Ferry Routes & Prices

Pricing

Pay per event

Go to Apify Store
Scandlines Scraper — Germany-Denmark Ferry Routes & Prices

Scandlines Scraper — Germany-Denmark Ferry Routes & Prices

Extract ferry route data from Scandlines.com — routes between Germany and Denmark (Puttgarden-Rodby, Rostock-Gedser). Prices, schedules, and crossing times.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Categories

Share

Scandlines Scraper -- Ferry Routes, Schedules & Prices Between Denmark and Germany

Extract ferry route information, crossing times, departure schedules, and prices from Scandlines.com -- the major ferry operator connecting Denmark and Germany across the Baltic Sea, carrying millions of passengers and vehicles annually.

What is Scandlines Scraper?

Scandlines operates two of Northern Europe's busiest ferry corridors: the Puttgarden-Rodby crossing (45 minutes, connecting Germany's Fehmarn island to Denmark's Lolland) and the Rostock-Gedser route (2 hours, linking the German coast to southern Denmark). Together, these routes form a critical transport link between Scandinavia and continental Europe.

This actor scrapes route information from the Scandlines website, extracting structured data about routes, departure/arrival ports, crossing durations, frequency, pricing, and descriptions. What people build with it:

  • Travel planning applications -- developers integrate ferry schedules into multimodal route planners that combine road, rail, and sea crossings for trips between Scandinavia and mainland Europe.
  • Logistics cost modelling -- freight companies and supply chain analysts track Scandlines pricing to optimise their Denmark-Germany transport budgets.
  • Tourism content -- travel agencies and bloggers pull route data and descriptions to populate their Scandinavian travel guides with accurate ferry crossing information.
  • Competitive monitoring -- transport operators and the upcoming Fehmarn Belt tunnel project track Scandlines' pricing, frequency, and service offerings.
  • Price tracking -- regular travellers and commuter groups monitor fare changes on routes they use frequently.
  • Mobility research -- transport economists study the competitive dynamics between the Scandlines ferry corridor and the upcoming Fehmarn Belt fixed link (tunnel) to model traffic diversion scenarios.

What data does Scandlines Scraper extract?

Each route entry contains:

  • :ferry: Route name -- the crossing identification (e.g., "Puttgarden - Rodby")
  • :anchor: Departure and arrival ports -- origin and destination harbours
  • :clock1: Departure and arrival times -- scheduled crossing times
  • :hourglass: Duration -- crossing time in minutes
  • :repeat: Frequency -- departures per day
  • :euro: Price -- fare amount and currency (EUR or DKK)
  • :car: Vehicle type -- what the pricing applies to (car, motorcycle, camper, etc.)
  • :scroll: Description -- route description and facilities information
  • :camera: Image -- route hero image from the website
  • :link: URL -- direct link to the route page on scandlines.com

How to scrape Scandlines

FieldTypeRequiredDescription
startUrlsArrayNoScandlines pages to scrape (default: routes overview page)
searchQueryStringNoSearch by keyword: "Puttgarden", "Rostock", "Gedser"
maxResultsIntegerNoMaximum routes/departures to return (default: 100)
proxyConfigurationObjectNoProxy settings for reliability

Tips:

  • Leave all inputs empty to scrape the complete routes overview from scandlines.com/routes.
  • Use searchQuery to find specific route information by port name.
  • The actor follows route links from listing pages, then extracts detailed information from each route's detail page.

Output

{
"routeName": "Puttgarden - Rodby",
"departure": "Puttgarden",
"arrival": "Rodby",
"departureTime": "Every 30 minutes",
"arrivalTime": "",
"duration": "45 min",
"frequency": "Up to 46 departures daily",
"price": 49,
"currency": "EUR",
"vehicleType": "",
"description": "The Puttgarden-Rodby route is the fastest connection between Germany and Denmark. With a crossing time of just 45 minutes and departures every 30 minutes, it is the preferred choice for travellers on the E47 motorway corridor...",
"imageUrl": "https://www.scandlines.com/media/puttgarden-rodby-hero.jpg",
"url": "https://www.scandlines.com/routes/puttgarden-rodby",
"scrapedAt": "2026-04-03T11:30:00.000Z"
}

How much does it cost?

Scandlines Scraper uses lightweight CheerioCrawler:

VolumeEstimated CUsEstimated Cost
All routes (2-4)~0.01~$0.005
All route details + sub-pages~0.05~$0.025

Scandlines has a small number of routes, so even a complete scrape is very cheap.

Can I integrate?

Feed ferry data into your applications:

  • Google Sheets -- maintain a fare comparison sheet updated weekly
  • Slack -- get notified about price changes on your regular route
  • Zapier / Make -- trigger travel booking workflows based on fare thresholds
  • Webhooks -- pipe route data into your own travel planning application
  • PostgreSQL -- build a historical fare tracking database

Can I use it as an API?

Yes. Perfect for travel planning integrations:

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("studio-amba/scandlines-scraper").call(run_input={
"maxResults": 20,
})
for route in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{route['routeName']} | {route.get('duration', '?')} | EUR {route.get('price', '?')}")

JavaScript:

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const run = await client.actor("studio-amba/scandlines-scraper").call({
maxResults: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((route) => {
console.log(`${route.routeName} | ${route.duration || "?"} | EUR ${route.price || "?"}`);
});

FAQ

What routes does Scandlines operate? Two main corridors: Puttgarden (Germany) to Rodby (Denmark) and Rostock (Germany) to Gedser (Denmark). The Puttgarden-Rodby route has the most frequent departures.

Does this include real-time departure schedules? The actor extracts published route information and pricing. For real-time departure status, the Scandlines website may provide additional live data not captured here.

Can I get prices for specific vehicle types? The actor extracts pricing information as displayed on the website. Detailed per-vehicle-type pricing may require visiting the booking flow, which this actor does not access.

Does it cover the Fehmarn Belt tunnel? No. The Fehmarn Belt tunnel is a future fixed link that will compete with the Puttgarden-Rodby ferry when completed. This actor only covers existing Scandlines ferry services.

Is pricing in EUR or DKK? Scandlines displays prices in both currencies depending on the departure country and page context. The actor captures whichever currency is shown.

How frequent are departures on the Puttgarden-Rodby route? Puttgarden-Rodby is one of Europe's busiest ferry corridors, with departures roughly every 30 minutes during peak season. That translates to up to 46 daily crossings. The 45-minute crossing time makes it faster than driving around through Jutland for most Danish-German travel.

Can I use this for freight and logistics planning? The actor captures route-level information (schedule, duration, pricing). For freight-specific booking, capacity availability, and dangerous goods restrictions, you would need to access Scandlines' commercial freight portal directly.

Does Scandlines operate hybrid/electric ferries? Yes. Scandlines has invested heavily in hybrid-electric ferries, especially on the Puttgarden-Rodby route. The actor does not capture vessel specifications, but the route data itself is accurate regardless of which specific ferry operates a given crossing.

What about the Helsingborg-Helsingor route? That crossing is operated by ForSea (formerly HH Ferries), not Scandlines. This actor only covers Scandlines routes.

Limitations

  • Scandlines has a small number of routes (2 main corridors), so the dataset is naturally limited in size.
  • Dynamic pricing (prices that vary by date, time, vehicle type, and booking lead time) requires the booking flow. This actor captures advertised/starting prices.
  • The website structure may change seasonally as Scandlines updates promotional content.
  • Some route information pages use JavaScript-rendered content that CheerioCrawler cannot access. The actor extracts what is available in the initial HTML.
  • Sub-pages about onboard services, facilities, and restaurants may be included in results alongside route data.
  • NMBS Scraper -- Belgian train connections and live departure boards
  • Touring Scraper -- Belgian automobile club travel guides and border crossing info
  • Prisjakt Scraper -- Nordic price comparison (for shopping in Denmark/Sweden)
  • AutoVlan Scraper -- Belgian used cars (for the road trip to catch the ferry)

Your feedback

Need real-time departure data, seasonal pricing tracking, or support for other ferry operators? Open an issue on GitHub or contact us through Apify. We build based on what users need.