Download OpenAPI specification:
PortAPI is a rest full API for Finnish ports to send statistics data over to Nemo for Maritime statistics purpose and to request data for traffic taking place in Finnish ports. The National API now uses MIG 1.0.0.0 and 2.0.0.0 versions.
You can find the information needed to make a valid request at the address https://fintraffic-vts.github.io/mnsw/ :
- National rules and EMSA rules, conditions and guidelines
- List of data elements suggested by Finnish authorities to use, whn submitting formalities
- MIG JSON schema definitions
- Nemo codelists
- Guides
Each request to the API must be authenticated with a JWT token. The token must be obtained from the IDP (Identity Provider) using the client credentials flow.
How to get JWT token for port organization
curl -X POST 'https://<IDP>/realms/nemo/protocol/openid-connect/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'client_id=<client_id>' \
-d 'client_secret=<secret>' \
-d 'grant_type=client_credentials'
IDP - DEV: mnsw-dev.mnsw.fi/keycloak
IDP - TST: mnsw-tst.mnsw.fi/keycloak
IDP - STG: mnsw-stg.mnsw.fi/keycloak
IDP - PRD: mnsw.mnsw.fi/keycloak
Example request with CURL:
curl --request GET 'https://mnsw-dev.mnsw.fi/port-api/v1/ports/data?endDate=2025-08-22&startDate=2025-08-01' \
--header 'Authorization: Bearer <access_token>'
The national port API will enable ports to send statistics data over to Nemo for Maritime statistics purpose and to request data for traffic taking place in Finnish ports. The API access and documentation will be shared by Fintraffic and is not publicly available compared to national declarant API. Ports should have the following formalities available and the data they have: ATA, ATD, CGA, CGD, COA, CWA, CWD, HZA, HZD, MDH, MTS, NOA, NOD, PXA, PXD, SEC, SRV, VID, WAR and WAS
Send statistics data for its own port to Nemo for Maritime statistics purposes.
Statistics data
required | object (Mlt2StatisticsReportHeaderData) |
required | Array of objects (Mlt2StatisticsPortCallInformationInner) |
success_request
{- "reportHeaderData": {
- "reporter": "Oulun Satama Oy",
- "type": "Port",
- "timeframeStart": "2025-06-27T21:15:30+02:00",
- "timeframeEnd": "2025-06-30T10:15:30+02:00"
}, - "portCallInformation": [
- {
- "shipName": "ZEUS OF FINLAND",
- "esdId": "ESDID0000005704",
- "mmsiNumber": "212409000"
}, - {
- "shipName": "ARABELLA",
- "callSign": "5BXD5"
}
]
}{- "eventType": "MLT2",
- "messageStatus": "Success",
- "reportedError": { }
}Request port formalities data for traffic taking place in Finnish ports. If necessary, data can be queried for the desired period. Returns all saved formalities from the following formalities: ATA, ATD, CGA, CGD, COA, CWA, CWD, HZA, HZD, MDH, MTS, NOA, NOD, PXA, PXD, SEC, SRV, VID, WAR and WAS
| startDate | string <date> Examples:
Searching by eta, where the date starts with the value of startDate. Format in YYYY-MM-DD. |
| endDate | string <date> Examples:
Searching by eta, where the date ends with the value of endDate. Format in YYYY-MM-DD |
success_request
[- {
- "formality": {
- "env:Envelope": {
- "mai:MAI": {
- "mai:ExchangedDocument": {
- "ram:ID": "bc2242f3-7c9b-42d3-bc15-bd57ec24c54e",
- "ram:TypeCode": "VID",
- "ram:VersionID": "2.0.0.0",
- "ram:PurposeCode": "9",
- "ram:FirstSignatoryDocumentAuthentication": {
- "ram:FormattedActualDateTime": "2025-08-23T07:53:03.738356906Z"
}
}, - "mai:ExchangedDeclaration": {
- "ram:DeclarantTradeParty": {
- "ram:ID": "FI0201126-4",
- "ram:Name": "Shipping Company Nova",
- "ram:RoleCode": "CA",
- "ram:PostalTradeAddress": {
- "ram:CityName": "Helsinki",
- "ram:CountryID": "FI",
- "ram:StreetName": "PL 91",
- "ram:PostcodeCode": "00501"
}, - "ram:DefinedTradeContact": [
- {
- "ram:PersonName": "eva Nemo",
- "ram:EmailURIUniversalCommunication": {
- "ram:URIID": "eva.nemo@nemosiili.onmicrosoft.com"
}, - "ram:TelephoneUniversalCommunication": {
- "ram:CompleteNumber": "+358401122334"
}
}
]
}
}, - "mai:SpecifiedLogisticsTransportMovement": {
- "ram:CallTransportEvent": {
- "ram:ID": "512d1c9ced2c41f4891daf3b6a55f1c1"
}
}
}, - "vid:VID": {
- "vid:SpecifiedLogisticsTransportMovement": {
- "ram:CallTransportEvent": {
- "ram:OccurrenceLogisticsLocation": {
- "ram:ID": "FIKJO"
}, - "ram:EstimatedTransportMeansArrivalOccurrenceDateTime": "2025-09-17T12:53:02Z"
}, - "ram:UsedLogisticsTransportMeans": {
- "ram:Name": "Test No net tonnage cargo",
- "ram:IMOID": "0000013",
- "ram:MMSIID": "000000000",
- "ram:CallSignID": "A8PQ5",
- "ram:IMONumberIndicator": 1
}
}
}
}
}, - "formalityType": "VID",
- "metadata": null,
- "formalityId": "bc2242f3-7c9b-42d3-bc15-bd57ec24c54e",
- "status": "SUBMITTED",
- "modifiedDate": "2025-08-23T07:53:03.738356906Z"
}, - {
- "formality": {
- "env:Envelope": {
- "mai:MAI": {
- "mai:ExchangedDocument": {
- "ram:ID": "aee96166-3276-4ec4-971c-782bab69ea9e",
- "ram:TypeCode": "VID",
- "ram:VersionID": "2.0.0.0",
- "ram:PurposeCode": "9",
- "ram:FirstSignatoryDocumentAuthentication": {
- "ram:FormattedActualDateTime": "2025-08-26T07:00:17.128922626Z"
}
}, - "mai:ExchangedDeclaration": {
- "ram:DeclarantTradeParty": {
- "ram:ID": "FI1979903-5",
- "ram:Name": "Armas Agentuuri",
- "ram:RoleCode": "AG",
- "ram:PostalTradeAddress": {
- "ram:CityName": "Vantaa",
- "ram:CountryID": "FI",
- "ram:StreetName": "Ruoholahdenkatu 22",
- "ram:PostcodeCode": "00180"
}, - "ram:DefinedTradeContact": [
- {
- "ram:PersonName": "Aina-Ilona Onnenpotkutes",
- "ram:EmailURIUniversalCommunication": {
- "ram:URIID": "user1.nemo@nemosiili.onmicrosoft.com"
}, - "ram:TelephoneUniversalCommunication": {
- "ram:CompleteNumber": "+358503464545"
}
}
]
}
}, - "mai:SpecifiedLogisticsTransportMovement": {
- "ram:CallTransportEvent": {
- "ram:ID": "ea749e27b777440cad8e267eee442320"
}
}
}, - "vid:VID": {
- "vid:SpecifiedLogisticsTransportMovement": {
- "ram:CallTransportEvent": {
- "ram:OccurrenceLogisticsLocation": {
- "ram:ID": "FIKJO"
}, - "ram:EstimatedTransportMeansArrivalOccurrenceDateTime": "2025-08-27T07:00:00Z"
}, - "ram:UsedLogisticsTransportMeans": {
- "ram:Name": "Customs test cargo ship 2",
- "ram:IMOID": "0000102",
- "ram:MMSIID": "000000000",
- "ram:CallSignID": "A8PQ6",
- "ram:IMONumberIndicator": 1
}
}
}
}
}, - "formalityType": "VID",
- "formalityId": "aee96166-3276-4ec4-971c-782bab69ea9e",
- "metadata": null,
- "status": "SUBMITTED",
- "modifiedDate": "2025-08-26T07:00:17.128922626Z"
}, - {
- "formality": {
- "env:Envelope": {
- "mai:MAI": {
- "mai:ExchangedDocument": {
- "ram:ID": "43acfc56-c5c0-405f-af9d-09171408e4ba",
- "ram:TypeCode": "NOA",
- "ram:VersionID": "2.0.0.0",
- "ram:PurposeCode": "9",
- "ram:FirstSignatoryDocumentAuthentication": {
- "ram:FormattedActualDateTime": "2025-08-26T07:02:11.962086851Z"
}
}, - "mai:ExchangedDeclaration": {
- "ram:DeclarantTradeParty": {
- "ram:ID": "FI1979903-5",
- "ram:Name": "Armas Agentuuri",
- "ram:RoleCode": "AG",
- "ram:PostalTradeAddress": {
- "ram:CityName": "Vantaa",
- "ram:CountryID": "FI",
- "ram:StreetName": "Ruoholahdenkatu 22",
- "ram:PostcodeCode": "00180"
}, - "ram:DefinedTradeContact": [
- {
- "ram:PersonName": "Aina-Ilona Onnenpotkutes",
- "ram:EmailURIUniversalCommunication": {
- "ram:URIID": "user1.nemo@nemosiili.onmicrosoft.com"
}, - "ram:TelephoneUniversalCommunication": {
- "ram:CompleteNumber": "+358503464545"
}
}
]
}
}, - "mai:SpecifiedLogisticsTransportMovement": {
- "ram:CallTransportEvent": {
- "ram:ID": "ea749e27b777440cad8e267eee442320"
}
}
}, - "noa:NOA": {
- "noa:SpecifiedLogisticsTransportMovement": {
- "ram:ModeCode": "1",
- "ram:CallPurposeCode": [
- "13"
], - "ram:CallTransportEvent": {
- "ram:EstimatedTransportMeansArrivalOccurrenceDateTime": "2025-08-27T07:00:00Z",
- "ram:EstimatedTransportMeansDepartureOccurrenceDateTime": "2025-08-28T07:00:00Z"
}, - "ram:ArrivalTransportEvent": {
- "ram:OccurrenceLogisticsLocation": {
- "ram:SubordinateLocation": {
- "ram:Name": "FIBRA-MUU-MUU"
}
}
}, - "ram:ItineraryTransportRoute": {
- "ram:ItineraryStopTransportEvent": [
- {
- "ram:SequenceNumeric": -1,
- "ram:OccurrenceLogisticsLocation": {
- "ram:ID": "FIVAA"
}
}
]
}
}
}
}
}, - "formalityType": "NOA",
- "metadata": null,
- "formalityId": "8cb60aea-418b-4db6-afe2-54afed38e440",
- "status": "SUBMITTED",
- "modifiedDate": "2025-08-26T07:02:12.902006001Z"
}, - {
- "formality": {
- "env:Envelope": {
- "ata:ATA": {
- "ata:SpecifiedLogisticsTransportMovement": {
- "ram:CallTransportEvent": {
- "ram:ActualArrivalRelatedDateTime": "2025-08-26T07:09:00.000Z"
}
}
}, - "mai:MAI": {
- "mai:ExchangedDocument": {
- "ram:ID": "10da6c66-863c-49fe-b04d-d8cb4afb8147",
- "ram:TypeCode": "ATA",
- "ram:VersionID": "2.0.0.0",
- "ram:PurposeCode": "9",
- "ram:FirstSignatoryDocumentAuthentication": {
- "ram:FormattedActualDateTime": "2025-08-26T07:09:19.305443424Z"
}
}, - "mai:ExchangedDeclaration": {
- "ram:DeclarantTradeParty": {
- "ram:ID": "FI1979903-5",
- "ram:Name": "Armas Agentuuri",
- "ram:RoleCode": "AG",
- "ram:PostalTradeAddress": {
- "ram:CityName": "Vantaa",
- "ram:CountryID": "FI",
- "ram:StreetName": "Ruoholahdenkatu 22",
- "ram:PostcodeCode": "00180"
}, - "ram:DefinedTradeContact": [
- {
- "ram:PersonName": "Aina-Ilona Onnenpotkutes",
- "ram:EmailURIUniversalCommunication": {
- "ram:URIID": "user1.nemo@nemosiili.onmicrosoft.com"
}, - "ram:TelephoneUniversalCommunication": {
- "ram:CompleteNumber": "+358503464545"
}
}
]
}
}, - "mai:SpecifiedLogisticsTransportMovement": {
- "ram:CallTransportEvent": {
- "ram:ID": "ea749e27b777440cad8e267eee442320"
}
}
}
}
}, - "formalityType": "ATA",
- "metadata": null,
- "formalityId": "37067ebf-0ccf-4382-8374-4e63c2ca5e95",
- "status": "SUBMITTED",
- "modifiedDate": "2025-10-30T11:21:06.733932Z"
}
]Get Ship data with SID, SHP and certificate data. Search by ship name, IMO number, call sign, cfr number, eni number, MMSI number or other unique ID.
| callSignId | string Example: callSignId=OJCS Ships call sign. |
| imoId | string Example: imoId=8715259 Ships IMO number. |
| name | string Example: name=SILJA SERENADE Name of the ship. |
| cfrId | string Community Fleet Register Number (EU fishing ships). |
| eniId | string European Number of Identification for inland ships. |
| mmsiId | string Example: mmsiId=230184000 Ships MMSI number. |
| otherId | string Another unique ID if no IMO/MMSI are assigned. |
success
[- {
- "shipId": {
- "id": "9255d25c-476f-4d3e-b0a7-1c8efecefbed",
- "name": "SILJA SERENADE",
- "callsignid": "OJCS",
- "mmsiid": "230184000",
- "imoid": "8715259",
- "esdid": "ESDID0000002248"
}, - "shipData": {
- "id": "9255d25c-476f-4d3e-b0a7-1c8efecefbed",
- "flagstate": "FI",
- "registrationcountry": "FI"
}, - "iceClass": {
- "status": "UNCONFIRMED",
- "code": "FSIII",
- "validTo": "1970-01-01"
}, - "shipCertificates": [
- {
- "certificateTypeCode": "CL",
- "certificateIssueDate": "2025-10-01",
- "certificateIssuerCode": "CCS",
- "certificateIssuerTypeCode": "04",
- "certificateIssuerName": "Turvallisuus ensin Oy",
- "certificateIssuerFlagStateCode": "FI",
- "certificateDateOfExpiry": "2025-12-28",
- "attachments": [
- {
- "objectKey": "4a265214-1b25-4a0f-ad12-375a706b8e4e",
- "filename": "Ohjeet-Nemo-testipalvelun-testaukseen.pdf",
- "id": "9e47efca-2d27-4bd0-81ba-52c319b2d05a",
- "contentType": "application/pdf",
- "fileSize": 1760616
}
]
}, - {
- "certificateTypeCode": "ISPS",
- "certificateIssueDate": "2025-10-01",
- "certificateIssuerCode": "DBS",
- "certificateIssuerTypeCode": "04",
- "certificateIssuerName": "Turvallisuus ensin Oy",
- "certificateIssuerFlagStateCode": "FI",
- "certificateDateOfExpiry": "2026-01-31",
- "attachments": [
- {
- "objectKey": "b16163e3-6681-433e-99b1-7301468d0952",
- "filename": "Ohjeet-Nemo-testipalvelun-testaukseen.pdf",
- "id": "5e6fd78b-e1ae-4e9a-b9cc-ac788c0ddfd1",
- "contentType": "application/pdf",
- "fileSize": 1760616
}, - {
- "objectKey": "f5da733a-b09c-4952-b54e-3fb746d50fb1",
- "filename": "Ohjeet-Nemo-testipalvelun-testaukseen.pdf",
- "id": "0211e551-3d99-453e-a80c-0205b449db6d",
- "contentType": "application/pdf",
- "fileSize": 1760616
}
]
}, - {
- "certificateTypeCode": "LL",
- "certificateIssueDate": "2025-10-14",
- "certificateIssuerCode": "CCRS",
- "certificateIssuerTypeCode": "03",
- "certificateIssuerName": "Testi Yritys Oy",
- "certificateIssuerFlagStateCode": "FI",
- "certificateDateOfExpiry": "2026-10-31",
- "attachments": [
- {
- "objectKey": "10b53b3a-d12a-4c00-84d7-05d1b3e2dafd",
- "filename": "Ohjeet-Nemo-testipalvelun-testaukseen.pdf",
- "id": "496a6629-e77c-4f34-a1ee-1adc711eb14a",
- "contentType": "application/pdf",
- "fileSize": 1760616
}, - {
- "objectKey": "979be810-7dc3-404b-8249-0186da513ae5",
- "filename": "Ohjeet-Nemo-testipalvelun-testaukseen.pdf",
- "id": "26e8649a-da36-4836-8a09-ff22fb60f56e",
- "contentType": "application/pdf",
- "fileSize": 1760616
}
]
}
], - "activeExemptions": [
- {
- "exemptionId": "SEZ1h1EJ2EdHZN0lTuDzRT94",
- "exemptionDetails": {
- "exemptionType": "WasteDelivery",
- "dateFrom": "2022-02-16",
- "dateTo": "2022-02-16",
- "routes": [
- {
- "port": "FIHEL"
}, - {
- "port": "SESTO"
}, - {
- "port": "FIMHQ"
}
], - "exemptedWasteTypes": [
- {
- "wasteCode": "0000",
- "wasteDescription": "all"
}
], - "exemptionAppliesTo": [
- {
- "port": "SESTO",
- "exemptedPortFacilities": [ ]
}
], - "authority": {
- "country": "SE",
- "authorityType": "NCA",
- "authorityName": "Swedish Transport Agency"
}, - "contract247": {
- "contactName": "Stina Paulin",
- "loCode": "SENRK",
- "phoneNumber": "+46771503503",
- "email": "stina.paulin@transportstyrelsen.se"
}
}
}, - {
- "exemptionId": "EEExID0000000063",
- "exemptionDetails": {
- "exemptionType": "Security",
- "dateFrom": "2021-06-14",
- "dateTo": "2021-06-14",
- "routes": [
- {
- "port": "FIHEL"
}, - {
- "port": "EEVAN"
}
], - "exemptedWasteTypes": [
- {
- "wasteCode": "0000"
}
], - "exemptionAppliesTo": [
- {
- "port": "EEVAN",
- "exemptedPortFacilities": [ ]
}
], - "authority": {
- "country": "EE",
- "authorityType": "NCA",
- "authorityName": "Estonian Transport Administration, Maritime Division"
}, - "contract247": {
- "contactName": "Tallinn Traffic",
- "loCode": "EETLL",
- "phoneNumber": "+3726205669"
}
}
}, - {
- "exemptionId": "FIhnSQXJYDt4tfCe2cv",
- "exemptionDetails": {
- "exemptionType": "Security",
- "dateFrom": "2022-04-16",
- "dateTo": "2022-04-16",
- "routes": [
- {
- "port": "FIHEL"
}, - {
- "port": "SESTO"
}, - {
- "port": "FIMHQ"
}
], - "exemptedWasteTypes": [ ],
- "exemptionAppliesTo": [
- {
- "port": "FIHEL",
- "exemptedPortFacilities": [ ]
}, - {
- "port": "FIMHQ",
- "exemptedPortFacilities": [ ]
}
], - "authority": {
- "country": "FI",
- "authorityType": "NCA",
- "authorityName": "Finnish Transport Agency"
}, - "contract247": {
- "contactName": "Antti Arkima",
- "loCode": "FIHEL",
- "phoneNumber": "+358407077960",
- "email": "antti.arkima@fta.fi"
}
}
}, - {
- "exemptionId": "FINQmXsWgMf7pWfiMDJWuy",
- "exemptionDetails": {
- "exemptionType": "WasteNotification",
- "dateFrom": "2021-03-25",
- "dateTo": "2021-03-25",
- "routes": [
- {
- "port": "FIHEL"
}, - {
- "port": "FIKTK"
}, - {
- "port": "SESTO"
}, - {
- "port": "FIMHQ"
}
], - "exemptedWasteTypes": [
- {
- "wasteCode": "0000"
}
], - "exemptionAppliesTo": [
- {
- "port": "FIHEL",
- "exemptedPortFacilities": [ ]
}, - {
- "port": "FILAN",
- "exemptedPortFacilities": [ ]
}, - {
- "port": "FIMHQ",
- "exemptedPortFacilities": [ ]
}
], - "authority": {
- "country": "FI",
- "authorityType": "NCA",
- "authorityName": "Finnish Transport Agency"
}, - "contract247": {
- "contactName": "Antti Arkima",
- "loCode": "FIHEL",
- "phoneNumber": "+358407077960",
- "email": "antti.arkima@fta.fi"
}
}
}, - {
- "exemptionId": "SEIgEOczXaFNTjSlpbhUWt0OuSYKcc0zpT",
- "exemptionDetails": {
- "exemptionType": "WasteNotification",
- "dateFrom": "2022-02-16",
- "dateTo": "2022-02-16",
- "routes": [
- {
- "port": "FIHEL"
}, - {
- "port": "SESTO"
}, - {
- "port": "FIMHQ"
}
], - "exemptedWasteTypes": [
- {
- "wasteCode": "0000",
- "wasteDescription": "all"
}
], - "exemptionAppliesTo": [
- {
- "port": "SESTO",
- "exemptedPortFacilities": [ ]
}
], - "authority": {
- "country": "SE",
- "authorityType": "NCA",
- "authorityName": "Swedish Transport Agency"
}, - "contract247": {
- "contactName": "Stina Paulin",
- "loCode": "SENRK",
- "phoneNumber": "+46771503503",
- "email": "stina.paulin@transportstyrelsen.se"
}
}
}, - {
- "exemptionId": "SEWQMPBZ",
- "exemptionDetails": {
- "exemptionType": "Security",
- "dateFrom": "2022-05-19",
- "dateTo": "2022-05-19",
- "routes": [
- {
- "port": "FIHEL"
}, - {
- "port": "SESTO"
}, - {
- "port": "FIMHQ"
}
], - "exemptedWasteTypes": [ ],
- "exemptionAppliesTo": [
- {
- "port": "SESTO",
- "exemptedPortFacilities": [ ]
}
], - "authority": {
- "country": "SE",
- "authorityType": "NCA",
- "authorityName": "Swedish Transport Agency"
}, - "contract247": {
- "contactName": "Dan Sarenius",
- "loCode": "SENRK",
- "phoneNumber": "+46771520052",
- "email": "sjofart@transportstyrelsen.se"
}
}
}
]
}
]Search by ESD ID, ship name, imo number, mmsi number or call sign
| search required | string Example: search=9691503 search parameter |
success
{- "id": "d256d3e3-6465-4824-b855-7eb1ac7905ec",
- "name": "AMIRA SARA",
- "callsignid": "8PBE6",
- "mmsiid": "314573000",
- "imoid": "9691503",
- "esdid": "ESDID0000000005"
}