Traficom maritime MMSI identities
Traficom maritime MMSI identities
Traficom publishes maritime mobile service identities (MMSI, ship name, ship call sign) as a keyless OData v4 feed (Meriradionumerot) updated daily, with the same open-data licence as its other Traficom open datasets.
Coverage
Finnish maritime mobile service identities. An OData call with $count=true on 2026-11-06 returned @odata.count 14049. History depth beyond the current register is Not stated.
Verdict
This is Finland's official daily MMSI / call-sign register for agents joining radio identities to vessel names. Traficom's open-data page describes the feed as "Data on identities used in the maritime mobile service (MMSI, ship name, ship call sign). The data is updated daily," under the same CC BY 4.0 / source-attribution open-data terms. Attribute Traficom.
Get the free weekly email
Free weekly email of newly verified free data. Unsubscribe by emailing us.
By entering your email and clicking Subscribe, you agree to receive the Signal Lab weekly email from Quantum Data Technologies Ltd., 3200-650 West Georgia Street, Vancouver, BC V6B 4P7, Canada (signal-lab@qdt.ai). You can unsubscribe at any time: reply "unsubscribe" to any email or write to signal-lab@qdt.ai. See our Privacy Policy.
Use in your agent
Query Traficom MMSI OData feed into pandas and Parquet. Checked against the provider's documentation on Nov 6, 2026.
Access
- No key. OData v4 GET on opendata.traficom.fi.
Request
curl -sS 'https://opendata.traficom.fi/api/v1/Meriradionumerot?$top=5&$count=true'Format
OData JSON with value[] rows of MMSINumber, ShipName, ShipCallSign and @odata.count.
Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
"""Traficom MMSI OData -> pandas -> Parquet. No key. CC BY 4.0 — attribute Traficom."""
import requests
import pandas as pd
URL = "https://opendata.traficom.fi/api/v1/Meriradionumerot"
rows = []
url = URL
params = {"$top": 500, "$count": "true"}
while url:
r = requests.get(url, params=params if url == URL else None, timeout=30)
r.raise_for_status()
body = r.json()
rows += body["value"]
url = body.get("@odata.nextLink")
params = None
if len(rows) >= 2000: # keep the sample bounded for the skill demo
break
df = pd.DataFrame(rows)
df.to_parquet("traficom_mmsi_sample.parquet", index=False)
print(len(df), "rows", "count_header", body.get("@odata.count"))
Run by us on 2026-11-06 (python 3 | pandas | requests). Result: OData returned HTTP 200 on 2026-11-06 with @odata.count 14049.
Limits
- Not stated numeric rate limit on the checked Traficom open-data / OData pages.
Quirks
- Entity set name is Meriradionumerot (Finnish).
- Updated daily per the Traficom open-data page.
- CC BY 4.0 — attribute Traficom.
Terms and attribution
- Traficom open data may be "freely used by anyone for any purpose, as long as the original source of the data is mentioned."
- Maritime mobile service identities: "The data is updated daily."
Sources
- https://tieto.traficom.fi/en/open-data: “Maritime mobile service identities”
- https://creativecommons.org/licenses/by/4.0/deed.en: “Attribution 4.0 International”
Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer