Discover/Port of Rotterdam API
live

Port of Rotterdam APIportofrotterdam.com

Access vessel movements, container throughput statistics, anchorage performance, and nautical notices for the Port of Rotterdam via a single REST API.

Endpoint health
verified 5d ago
get_vessel_details
get_container_throughput_statistics
get_port_notices
get_vessel_movements
get_port_performance_anchorage
5/5 passing latest checkself-healing
Endpoints
5
Updated
21d ago

What is the Port of Rotterdam API?

This API provides 5 endpoints covering live and scheduled vessel movements, port performance metrics, and official nautical notices for the Port of Rotterdam. The get_vessel_movements endpoint returns vessels grouped into Present, Expected, and Departed arrays — each record including IMO number, berth, operator, and datetime. Container throughput, anchorage statistics, and active port notices round out the coverage.

Try it
Optional vessel name filter (case-insensitive partial match). Filters across Present, Expected, and Departed lists.
api.parse.bot/scraper/5828d945-9313-405f-8026-3a26e1d63dfb/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/5828d945-9313-405f-8026-3a26e1d63dfb/get_vessel_movements?query=NORDIC' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace portofrotterdam-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Port of Rotterdam: vessel movements, statistics, and notices."""
from parse_apis.port_of_rotterdam_api import (
    PortOfRotterdam, VesselStatus, VesselNotFound,
)

client = PortOfRotterdam()

# Get vessel movements overview — typed field access on the grouped result.
overview = client.movements.get(query="NORDIC")
print(f"Expected vessels matching 'NORDIC': {len(overview.expected)}")
for vessel in overview.expected[:3]:
    print(f"  {vessel.name} (IMO: {vessel.imo}) — operator: {vessel.operator}")

# Drill-down: fetch full details for a single vessel by IMO.
try:
    detail = client.vessels.get(imo=overview.expected[0].imo)
    print(f"\nVessel detail: {detail.name}, flag: {detail.flag_code}, "
          f"built: {detail.year_of_build}, status: {detail.current_status}")
except VesselNotFound as exc:
    print(f"Vessel not found: {exc}")

# Port performance — anchorage statistics for a given year.
anchorage = client.statistics.anchorage(year=2025)
print(f"\nAnchorage periods: {len(anchorage.anchorage_years_months)}")
print(f"  Latest deep-sea avg time: {anchorage.ds_avg_anchorage_time_in_days[-1]} days")
print(f"  Latest direct-to-berth: {anchorage.percent_direct_to_berth[-1]}%")

# Container throughput — current year totals.
throughput = client.statistics.throughput()
print(f"\nTotal TEU: {throughput.total_teu}")
for cat in throughput.throughput_by_type:
    print(f"  {cat.name}: {cat.y} TEU")

# Active nautical notices — bounded iteration.
for notice in client.notices.list(limit=3):
    print(f"\nNotice: {notice.content[:80]}...")

print("\nExercised: movements.get / vessels.get / statistics.anchorage / "
      "statistics.throughput / notices.list")
All endpoints · 5 totalmissing one? ·

Get current (Present), expected, and departed vessel movements at the Port of Rotterdam. Returns a grouped object with three arrays of vessels by their movement status. Supports optional case-insensitive partial name filtering across all three groups. Each vessel record includes IMO, name, berth, operator, flag, tonnage, and timestamps.

Input
ParamTypeDescription
querystringOptional vessel name filter (case-insensitive partial match). Filters across Present, Expected, and Departed lists.
Response
{
  "type": "object",
  "fields": {
    "Present": "array of vessels currently at port",
    "Departed": "array of vessels that have departed",
    "Expected": "array of vessels expected to arrive"
  }
}

About the Port of Rotterdam API

Vessel Movements and Details

get_vessel_movements returns three arrays — Present, Expected, and Departed — each containing vessel records with fields like imo, name, berth, operator, and datetime. An optional query parameter filters results by vessel name using a case-insensitive partial match, making it straightforward to track vessels operated by a specific carrier such as 'MAERSK'. For deeper lookup, get_vessel_details accepts an imo number, a UCRN, or an exact vessel name and returns fields including flag_code, port_of_registry, and current_status. The endpoint returns a stale_input indicator if the vessel is not found in current movements.

Port Performance Statistics

get_port_performance_anchorage exposes time-series data for anchorage area activity. Response fields include anchorage_years_months (period labels in YYYY-M format), ds_avg_anchorage_time_in_days and ss_avg_anchorage_time_in_days for deep-sea and short-sea vessels respectively, percent_direct_to_berth, and port_visits. Filtering is available by date_from, date_to, year, month, and vessel_type. get_container_throughput_statistics returns quarterly TEU figures (teu_q), year-over-year change percentages (teu_q_diff_percentage), import/export splits, empty/full container ratios, and throughput broken down by service type — deep sea, short sea, and no liner.

Nautical Notices

get_port_notices returns the current set of active PIN and BAS nautical notices. Each notice object contains a content string with the full notice text, including start date, duration, and description. Typical notices cover navigation warnings, bridge disruptions, and capacity arrangements. This endpoint takes no input parameters and always reflects the currently active notice set.

Reliability & maintenanceVerified

The Port of Rotterdam API is a managed, monitored endpoint for portofrotterdam.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when portofrotterdam.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official portofrotterdam.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
5d ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Monitor which vessels are currently berthed at Rotterdam and which are expected to arrive, using Present and Expected arrays from get_vessel_movements.
  • Look up a specific container ship's berth assignment and flag state by querying get_vessel_details with its IMO number.
  • Track quarterly TEU throughput trends and year-over-year changes with teu_q_diff_percentage from get_container_throughput_statistics.
  • Analyze the percentage of vessels arriving direct-to-berth versus anchoring first, using percent_direct_to_berth from get_port_performance_anchorage.
  • Alert logistics teams to active navigation warnings or bridge disruptions by polling get_port_notices for current BAS and PIN notices.
  • Compare average anchorage wait times for deep-sea versus short-sea vessels across custom date ranges using ds_avg_anchorage_time_in_days and ss_avg_anchorage_time_in_days.
  • Filter vessel arrivals by carrier name to track fleet presence at Rotterdam in near-real time.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does the Port of Rotterdam offer an official developer API?+
The Port of Rotterdam publishes some data and digital services through its Portbase platform (portbase.com), which provides message-based port logistics services mainly for registered port community members. There is no general-purpose public REST API for the vessel movement and performance data covered here.
What does `get_vessel_details` return, and how do I search for a vessel?+
The endpoint returns fields including imo, name, berth, operator, flag_code, port_of_registry, and current_status (one of 'Present', 'Expected', or 'Departed'). You can pass an imo number, a UCRN, or an exact vessel name via the vessel_id parameter. If the vessel is not found in current movements, the response includes a stale_input indicator rather than an error.
Does the API cover cargo tonnage or commodity-level breakdowns beyond container TEU?+
Not currently. The API covers container throughput (TEU, import/export split, empty/full ratios, and service-type breakdowns) and anchorage performance statistics. Bulk, liquid, and ro-ro cargo tonnage figures are not exposed. You can fork this API on Parse and revise it to add an endpoint targeting those commodity categories.
How current is the vessel movement data, and does it cover historical arrivals?+
The vessel data reflects the current movements snapshot — vessels listed as Present, Expected, or Departed in the live port movements feed. Deep historical voyage records are not part of the response. get_port_performance_anchorage and get_container_throughput_statistics both accept date_from/date_to or year/quarter filters for historical statistical data, but individual historical vessel calls are not retrievable through this API. You can fork it on Parse and revise to add a historical vessel calls endpoint if that data becomes accessible.
Can I filter nautical notices by type, such as only navigation warnings or only bridge disruptions?+
get_port_notices takes no input parameters and returns all currently active notices in a single array. Filtering by notice type (PIN vs BAS, or by category like bridge disruption) is not available — each notice is returned as a full content string. You can fork this API on Parse and revise it to add type-based filtering on top of the returned notice set.
Page content last updated . Spec covers 5 endpoints from portofrotterdam.com.
Related APIs in Maps GeoSee all →
marinetraffic.com API
Track maritime vessels in real-time by searching for ships by name, MMSI, or IMO number, viewing their current positions and navigational status, and accessing detailed specifications and photos. Filter vessels by type to get the maritime intelligence you need for shipping, logistics, or maritime awareness.
portoflosangeles.org API
Access real-time container and tonnage statistics, browse terminal information and details, and retrieve the latest Port of Los Angeles news, key facts, and social media feeds.
maersk.com API
Track your Maersk shipping containers in real-time, monitor vessel schedules and locations, and discover available routes between ports and countries. Access comprehensive port data, search for specific locations, and view detailed shipping route information to plan your logistics more effectively.
cma-cgm.com API
Track shipping routes and vessel schedules across CMA CGM's 280+ shipping lines, including detailed port-to-port rotations, fleet information, and service specifics. Search for specific routes or browse complete shipping schedules to plan logistics and monitor maritime transportation options.
maritime-executive.com API
Search and access maritime news articles, industry insights, and directory listings from The Maritime Executive, with the ability to browse by category, listen to podcasts, and read magazine editions. Find the latest maritime industry information, company directories, and multimedia content all in one place.
dat.com API
Track real-time market conditions, fuel prices, and freight rate trends to make data-driven logistics decisions. Access industry insights through blog posts and resource materials to stay informed on transportation market dynamics.
flexport.com API
Get real-time air and ocean freight rates, search shipping routes, and access logistics service information to compare pricing and plan international shipments. Discover popular routes and retrieve freight rate quotes for any origin-destination pair.
flightradar24.com API
Track live flights worldwide, view real-time airport schedules, and search for specific flights with detailed information about aircraft and routes. Monitor the most tracked flights and get comprehensive airport details including gates, terminals, and operational status.