Vessel Tracking API - MarineTraffic AIS Ship Positions, Ports
Pricing
from $5.00 / 1,000 vessel position or track point returneds
Vessel Tracking API - MarineTraffic AIS Ship Positions, Ports
AIS vessel tracking from the MarineTraffic API (Kpler): live ship positions by IMO or MMSI, fleet and area positions, historical tracks, port calls, expected port arrivals, voyage forecasts with ETA, vessel search and ship particulars. Bring your own key.
Pricing
from $5.00 / 1,000 vessel position or track point returneds
Rating
0.0
(0)
Developer
Nabeel Hassan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Track ships with the MarineTraffic AIS Data API (Kpler) using your own service key, and get live vessel positions, fleet and area positions, historical tracks, port calls, expected port arrivals, voyage forecasts with ETA, vessel search and ship particulars as clean dataset rows.
Works with the official MarineTraffic AIS API on services.marinetraffic.com, documented at servicedocs.marinetraffic.com. The actor turns IMO numbers, MMSI numbers, ports or vessel names into deduplicated rows you can download as JSON, CSV or Excel, schedule, or feed into fleet dashboards, supply chain visibility, freight and commodity analytics, port operations, Google Sheets and AI agents. Bring your own API key.
BYOK, not live-tested: every service, version, parameter and field comes from the OpenAPI document behind MarineTraffic's published API reference, and every route was confirmed to exist on services.marinetraffic.com (an invalid key gets "SERVICE KEY NOT FOUND", not a missing route), but the actor has not been run against a live MarineTraffic subscription.
What it does
- Latest vessel position by IMO or MMSI: the current AIS position of each vessel, with latitude, longitude, speed, course, heading, navigational status, terrestrial or satellite source, plus voyage data: destination, reported and calculated ETA, last, current and next port, draught, distance travelled and to go, and ship type, flag, size and DWT.
- Positions of your MarineTraffic fleet: every vessel in the fleet on your MarineTraffic account, paged with the documented cursor, filterable by vessel type.
- Positions in your area of interest: every vessel inside the area of interest set up for your key.
- Historical vessel track: past AIS positions of a vessel for up to 190 days at a time, back to January 2015, every position or one per hour or day, optionally with wind, wave, swell and current weather.
- Port calls by port or vessel: arrivals and departures at a port (MarineTraffic port ID or UN/LOCODE) or of a vessel, with local and UTC times, filterable by arrivals or departures, transit, DWT and GT, optionally with draught, load status and voyage statistics.
- Expected arrivals at a port: vessels heading to a port in the next 40 days, or currently in port, with ETA, position and optional particulars, filterable by previous port, ship type and size.
- Voyage forecast and ETA by vessel: destination, last port, next port and ETA (reported and MarineTraffic calculated), optionally with distances, load condition and the predicted route.
- Vessel search by name or identifier: find ships by name (up to 100 matches, exact first) or by IMO or MMSI, with call sign, type, flag, DWT, build year and MarineTraffic link.
- Vessel particulars by IMO or MMSI: builder, build year, dimensions, DWT, gross and net tonnage, TEU, owner, manager, financial owner, technical manager and insurer, optionally with engine, class society and hull data.
- Pay only for results: refused and empty lookups are recorded as a free row that says why, never charged.
How to get an API key
MarineTraffic sells API access per service (Vessel Positions, Historical Track, Port Calls, Expected Arrivals, Voyage Forecast, Search Vessel, Vessel Particulars and so on). Request the service you need from MarineTraffic (a Kpler company) through marinetraffic.com or your Kpler account manager. Once it is active, open the API Services page of your marinetraffic.com account and copy the 40 character key of that service. Paste it into the API key field, or set the DATA_API_KEY secret. Every service has its own key, so pick the mode that matches the key you paste. The MarineTraffic API takes the key as part of the URL path; this actor sends it only to services.marinetraffic.com and never logs it.
Input
| Field | Modes | Description |
|---|---|---|
mode | all | vesselPosition, fleetPositions, areaPositions, vesselTrack, portCalls, expectedArrivals, voyageForecast, vesselSearch or vesselParticulars |
vessels | vessel modes, port calls, vessel search | IMO 9241061, MMSI 310627000, shipid 371681, bare IMO or MMSI numbers, or MarineTraffic vessel URLs |
vesselNames | vessel search | Vessel names, at least 3 characters |
ports | port calls, expected arrivals | MarineTraffic port IDs such as 1766; port calls also take UN/LOCODEs such as NLAMS |
timespan | position modes, port calls | Minutes back: up to 1440 for positions (default 60), up to 2880 for port calls (default 1440) |
days | historical track | Days back, up to 190 (default 1) |
fromDate, toDate | track, port calls, expected arrivals | YYYY-MM-DD or YYYY-MM-DD HH:MM in UTC, at most 190 days apart |
daysAhead | expected arrivals | Up to 40 days ahead; empty means vessels currently in port |
trackPeriod | historical track | Every position, hourly or daily |
moveType, excludeInTransit | port calls | Arrivals, departures or both; skip vessels in transit |
shipType | expected arrivals, vessel search | Fishing, High speed craft, Passenger, Cargo or Tanker |
vesselTypeIds | fleet and area positions | MarineTraffic vessel type IDs |
fromPort | expected arrivals | Previous port ID or UN/LOCODE |
dwtMin, dwtMax, gtMin, gtMax | port calls, expected arrivals | Size filters |
extended | track, port calls, arrivals, forecast, particulars | MarineTraffic extended response |
maxResults | all | Row ceiling for the run (default 100) |
requestsPerMinute | all | Pacing, default 6 |
apiKey | all | Your MarineTraffic service key (or the DATA_API_KEY secret) |
Example: the latest position of two ships.
{"mode": "vesselPosition","vessels": ["IMO 9241061", "MMSI 244740452"],"timespan": 120}
Example: arrivals and departures at Amsterdam over one week.
{"mode": "portCalls","ports": ["1766"],"fromDate": "2026-10-01","toDate": "2026-10-08","excludeInTransit": true}
Example output
An illustrative latest position row, shaped like MarineTraffic's documented Single Vessel Positions response (values are an example, not real data). Every field MarineTraffic returns is kept; only some are shown.
{"mode": "vesselPosition","recordType": "position","identifier": "IMO 9241061","found": true,"shipName": "QUEEN MARY 2","imo": "9241061","mmsi": "310627000","shipId": "371681","vesselType": "Passenger","flag": "BM","latitude": 50.12345,"longitude": -3.45678,"speedKnots": 18.4,"course": 245,"heading": 244,"navStatus": "0","positionTime": "2026-10-15T09:41:12","destination": "NEW YORK","eta": "2026-10-21T06:00:00","portName": null,"MMSI": "310627000","IMO": "9241061","SHIP_ID": "371681","LAT": "50.123450","LON": "-3.456780","SPEED": "184","DSRC": "SAT","LAST_PORT": "SOUTHAMPTON","LAST_PORT_UNLOCODE": "GBSOU","NEXT_PORT_NAME": "NEW YORK","DISTANCE_TO_GO": "2911","retrievedAt": "2026-10-15T09:45:00.000Z","note": null}
FAQ
What is the MarineTraffic AIS API?
MarineTraffic, part of Kpler since 2023, runs one of the largest AIS vessel tracking networks, combining terrestrial and satellite AIS receivers. Its AIS Data API on services.marinetraffic.com serves vessel positions, historical tracks, port calls, expected arrivals, voyage forecasts, vessel search and vessel particulars, each as a separately licensed service with its own key.
Do I need my own MarineTraffic key?
Yes. This is a bring-your-own-key actor: it calls MarineTraffic with your key, under your MarineTraffic contract and terms. A missing, rejected, expired or exhausted key ends the run cleanly with a status message that explains what to change, and nothing is charged.
Why does my key work in one mode and not another?
MarineTraffic issues one key per API service. A Vessel Positions key answers "SERVICE KEY DOES NOT MATCH SERVICE TYPE" on Port Calls. Pick the mode that matches the service the key belongs to.
How do I find a vessel's IMO, MMSI or MarineTraffic ship ID?
Use Vessel search with the vessel name. Each match carries the IMO number, MMSI, MarineTraffic ship ID, call sign and a link to its MarineTraffic page. You can also paste a MarineTraffic vessel page URL into the vessels input.
How do I find a MarineTraffic port ID?
Open the port page on marinetraffic.com: the number in its URL is the port ID (1766 is Amsterdam). Port calls also accept the UN/LOCODE, such as NLAMS.
How far back does vessel history go?
Historical tracks and port calls go back to January 2015, with up to 190 days per request. Weather on tracks is available from 2015 for wind and from 2021 for waves, swell and currents.
What does speed mean in the rows?
MarineTraffic reports SPEED in knots times ten. The speedKnots column divides it by ten, and the raw SPEED field is kept. A heading of 511 or -1 means no heading and becomes null in the heading column.
What do I pay?
Pay per result: 0.005 USD per vessel position or track point, and 0.01 USD per port call, expected arrival, voyage forecast, vessel search match or vessel particulars record. Refused and empty lookups are never charged. Your MarineTraffic service is billed separately by MarineTraffic, under a contract that sets how many calls each key may make per period.
What happens if my key is wrong or my call limit runs out?
"SERVICE KEY NOT FOUND" or "INVALID KEY" ends the run cleanly. "SERVICE EXPIRED", "SERVICE INACTIVE", "IP NOT ALLOWED" and a key for another service do the same with MarineTraffic's own words. "ABOVE SERVICE CALL LIMIT" and "TOO MANY REQUESTS" are waited out and retried, and a call limit that stays used up ends the run cleanly. A vessel, port or date MarineTraffic refuses becomes a free row with the API's message, and the run moves on.
Pricing
| Event | Price | Charged for |
|---|---|---|
vessel-position | 0.005 USD | Each vessel position or historical track point |
voyage-event | 0.01 USD | Each port call, expected arrival or voyage forecast |
vessel-record | 0.01 USD | Each vessel search match or vessel particulars record |
Keyword map
vessel tracking API, ship tracking API, AIS API, MarineTraffic API, Kpler AIS, live ship position, vessel position by IMO, MMSI lookup, fleet tracking, ship location, historical vessel track, AIS history, port calls API, vessel arrivals and departures, expected port arrivals, vessel ETA, voyage forecast, ship search, vessel particulars, ship owner and manager, maritime data API.
Terms and data use
MarineTraffic data is licensed by Kpler under your MarineTraffic API contract, which governs what you may do with it. Kpler's public Terms of Use (kpler.com/company/terms-of-use) allow display, derived data and internal distribution "solely for research and internal business purposes", and, except as Kpler agrees in writing, forbid reselling, sublicensing or publishing the data, making it available to anyone not entitled to it, "mirroring" it on another server, and using it in financial products, indices or advertising. They also require deleting the data when your agreement ends. Run this actor only with your own key and only if your MarineTraffic contract allows keeping the results in your own Apify storage; keep the results for your own internal use and delete them when your agreement ends. Contact Kpler before republishing or reselling the data. This actor is not affiliated with or endorsed by MarineTraffic or Kpler.