---
name: traficom-maritime-mmsi-ingestion
description: "How to get Traficom maritime MMSI identities data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Query Traficom MMSI OData feed into pandas and Parquet

Source entry: https://signal-lab.qdt.ai/datasets/traficom-maritime-mmsi
Provider: https://tieto.traficom.fi/en/open-data
Checked against the provider's documentation: 2026-11-06

## Access
- No key. OData v4 GET on opendata.traficom.fi.

## Request
```bash
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.
```python
"""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."
- Terms page: https://creativecommons.org/licenses/by/4.0/deed.en

## 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"

## Help improve this skill
Missing a source, or see something to improve? Call the MCP tool suggest_source or feedback (or POST /api/suggest or /api/feedback). Reviewed ideas: https://signal-lab.qdt.ai/agent-suggestions

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
