curl --request GET \
--url https://api.terminal49.com/v2/containers/{id}/map_geojson \
--header 'Authorization: <api-key>'{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
100.896831042,
13.065302386
]
},
"properties": {
"feature_type": "port",
"ports_sequence": 1,
"ports_total": 3,
"location_id": "c5adae24-6fd4-4720-8813-976cf206feb1",
"location_type": "Port",
"name": "Laem Chabang",
"state_abbr": "20",
"state": null,
"country_code": "TH",
"country": "Thailand",
"time_zone": "Asia/Bangkok",
"inbound_eta_at": null,
"inbound_ata_at": null,
"outbound_etd_at": null,
"outbound_atd_at": "2025-11-08T00:44:52Z",
"label": "POL",
"updated_at": "2025-12-11T09:01:08Z"
}
},
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
100.868768333,
13.07306
],
[
100.839155,
13.079318333
],
[
118.038213333,
24.43842
],
[
118.03862,
24.440998333
]
]
},
"properties": {
"feature_type": "past_vessel_locations",
"ports_sequence": 1,
"vessel_id": "87a12f43-766c-4078-89bc-ac6595082f7b",
"start_time": "2025-11-08T00:44:52Z",
"end_time": "2025-11-15T16:00:00Z",
"point_count": 546,
"outbound_atd_at": "2025-11-08T00:44:52Z",
"inbound_ata_at": "2025-11-15T16:00:00Z",
"inbound_eta_at": null
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
118.0293,
24.50318
]
},
"properties": {
"feature_type": "port",
"ports_sequence": 2,
"ports_total": 3,
"location_id": "ed64d446-9098-420c-ab08-c127e62509fe",
"location_type": "Port",
"name": "Xiamen",
"state_abbr": "FJ",
"state": null,
"country_code": "CN",
"country": "China",
"time_zone": "Asia/Shanghai",
"inbound_eta_at": null,
"inbound_ata_at": "2025-11-15T16:00:00Z",
"outbound_etd_at": null,
"outbound_atd_at": "2025-11-19T16:00:00Z",
"label": "TS1",
"updated_at": "2025-12-11T09:01:08Z"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-131.128473333,
31.023033333
]
},
"properties": {
"feature_type": "current_vessel",
"ports_sequence": 2,
"vessel_id": "93fc5dce-4c7f-4089-bd28-f20cd9202ab0",
"vessel_name": "ZIM BANGKOK",
"vessel_imo": "9936525",
"voyage_number": "13E",
"vessel_location_timestamp": "2025-12-11T11:46:03Z",
"vessel_location_heading": 108,
"vessel_location_speed": 21,
"departure_port_id": "ed64d446-9098-420c-ab08-c127e62509fe",
"departure_port_name": "Xiamen",
"departure_port_state_abbr": "FJ",
"departure_port_state": null,
"departure_port_country_code": "CN",
"departure_port_country": "China",
"departure_port_label": "TS1",
"departure_port_atd": "2025-11-19T16:00:00Z",
"departure_port_time_zone": "Asia/Shanghai",
"arrival_port_id": "6129528d-846e-4571-ae16-b5328a4285ab",
"arrival_port_name": "Savannah",
"arrival_port_state_abbr": "GA",
"arrival_port_state": "Georgia",
"arrival_port_country_code": "US",
"arrival_port_country": "United States",
"arrival_port_label": "POD",
"arrival_port_eta": "2025-12-31T05:00:00Z",
"arrival_port_time_zone": "America/New_York"
}
},
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
118.045325,
23.518831667
],
[
118.076886667,
23.556158333
],
[
-131.583741667,
31.153668333
],
[
-131.128473333,
31.023033333
]
]
},
"properties": {
"feature_type": "past_vessel_locations",
"ports_sequence": 2,
"vessel_id": "93fc5dce-4c7f-4089-bd28-f20cd9202ab0",
"start_time": "2025-11-19T16:00:00Z",
"end_time": "2026-01-07T05:00:00Z",
"point_count": 1402,
"outbound_atd_at": "2025-11-19T16:00:00Z",
"inbound_ata_at": null,
"inbound_eta_at": "2025-12-31T05:00:00Z"
}
},
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
-131.128473333,
31.023033333
],
[
-130.9177,
30.67224
],
[
-80.70766,
31.96363
],
[
-80.91232,
32.03728
]
]
},
"properties": {
"feature_type": "estimated_partial_leg",
"ports_sequence": 2,
"current_port_id": "ed64d446-9098-420c-ab08-c127e62509fe",
"next_port_id": "6129528d-846e-4571-ae16-b5328a4285ab",
"point_count": 364
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-81.140998396,
32.128923976
]
},
"properties": {
"feature_type": "port",
"ports_sequence": 3,
"ports_total": 3,
"location_id": "6129528d-846e-4571-ae16-b5328a4285ab",
"location_type": "Port",
"name": "Savannah",
"state_abbr": "GA",
"state": "Georgia",
"country_code": "US",
"country": "United States",
"time_zone": "America/New_York",
"inbound_eta_at": "2025-12-31T05:00:00Z",
"inbound_ata_at": null,
"outbound_etd_at": null,
"outbound_atd_at": null,
"label": "POD",
"updated_at": "2025-12-11T09:01:08Z"
}
}
]
}Returns a GeoJSON FeatureCollection containing all map-related data for a container, including port locations, current vessel position (if at sea), past vessel paths, and estimated future routes. The response can be directly used with most mapping libraries (Leaflet, Mapbox GL, Google Maps, etc.).
curl --request GET \
--url https://api.terminal49.com/v2/containers/{id}/map_geojson \
--header 'Authorization: <api-key>'{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
100.896831042,
13.065302386
]
},
"properties": {
"feature_type": "port",
"ports_sequence": 1,
"ports_total": 3,
"location_id": "c5adae24-6fd4-4720-8813-976cf206feb1",
"location_type": "Port",
"name": "Laem Chabang",
"state_abbr": "20",
"state": null,
"country_code": "TH",
"country": "Thailand",
"time_zone": "Asia/Bangkok",
"inbound_eta_at": null,
"inbound_ata_at": null,
"outbound_etd_at": null,
"outbound_atd_at": "2025-11-08T00:44:52Z",
"label": "POL",
"updated_at": "2025-12-11T09:01:08Z"
}
},
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
100.868768333,
13.07306
],
[
100.839155,
13.079318333
],
[
118.038213333,
24.43842
],
[
118.03862,
24.440998333
]
]
},
"properties": {
"feature_type": "past_vessel_locations",
"ports_sequence": 1,
"vessel_id": "87a12f43-766c-4078-89bc-ac6595082f7b",
"start_time": "2025-11-08T00:44:52Z",
"end_time": "2025-11-15T16:00:00Z",
"point_count": 546,
"outbound_atd_at": "2025-11-08T00:44:52Z",
"inbound_ata_at": "2025-11-15T16:00:00Z",
"inbound_eta_at": null
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
118.0293,
24.50318
]
},
"properties": {
"feature_type": "port",
"ports_sequence": 2,
"ports_total": 3,
"location_id": "ed64d446-9098-420c-ab08-c127e62509fe",
"location_type": "Port",
"name": "Xiamen",
"state_abbr": "FJ",
"state": null,
"country_code": "CN",
"country": "China",
"time_zone": "Asia/Shanghai",
"inbound_eta_at": null,
"inbound_ata_at": "2025-11-15T16:00:00Z",
"outbound_etd_at": null,
"outbound_atd_at": "2025-11-19T16:00:00Z",
"label": "TS1",
"updated_at": "2025-12-11T09:01:08Z"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-131.128473333,
31.023033333
]
},
"properties": {
"feature_type": "current_vessel",
"ports_sequence": 2,
"vessel_id": "93fc5dce-4c7f-4089-bd28-f20cd9202ab0",
"vessel_name": "ZIM BANGKOK",
"vessel_imo": "9936525",
"voyage_number": "13E",
"vessel_location_timestamp": "2025-12-11T11:46:03Z",
"vessel_location_heading": 108,
"vessel_location_speed": 21,
"departure_port_id": "ed64d446-9098-420c-ab08-c127e62509fe",
"departure_port_name": "Xiamen",
"departure_port_state_abbr": "FJ",
"departure_port_state": null,
"departure_port_country_code": "CN",
"departure_port_country": "China",
"departure_port_label": "TS1",
"departure_port_atd": "2025-11-19T16:00:00Z",
"departure_port_time_zone": "Asia/Shanghai",
"arrival_port_id": "6129528d-846e-4571-ae16-b5328a4285ab",
"arrival_port_name": "Savannah",
"arrival_port_state_abbr": "GA",
"arrival_port_state": "Georgia",
"arrival_port_country_code": "US",
"arrival_port_country": "United States",
"arrival_port_label": "POD",
"arrival_port_eta": "2025-12-31T05:00:00Z",
"arrival_port_time_zone": "America/New_York"
}
},
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
118.045325,
23.518831667
],
[
118.076886667,
23.556158333
],
[
-131.583741667,
31.153668333
],
[
-131.128473333,
31.023033333
]
]
},
"properties": {
"feature_type": "past_vessel_locations",
"ports_sequence": 2,
"vessel_id": "93fc5dce-4c7f-4089-bd28-f20cd9202ab0",
"start_time": "2025-11-19T16:00:00Z",
"end_time": "2026-01-07T05:00:00Z",
"point_count": 1402,
"outbound_atd_at": "2025-11-19T16:00:00Z",
"inbound_ata_at": null,
"inbound_eta_at": "2025-12-31T05:00:00Z"
}
},
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[
-131.128473333,
31.023033333
],
[
-130.9177,
30.67224
],
[
-80.70766,
31.96363
],
[
-80.91232,
32.03728
]
]
},
"properties": {
"feature_type": "estimated_partial_leg",
"ports_sequence": 2,
"current_port_id": "ed64d446-9098-420c-ab08-c127e62509fe",
"next_port_id": "6129528d-846e-4571-ae16-b5328a4285ab",
"point_count": 364
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-81.140998396,
32.128923976
]
},
"properties": {
"feature_type": "port",
"ports_sequence": 3,
"ports_total": 3,
"location_id": "6129528d-846e-4571-ae16-b5328a4285ab",
"location_type": "Port",
"name": "Savannah",
"state_abbr": "GA",
"state": "Georgia",
"country_code": "US",
"country": "United States",
"time_zone": "America/New_York",
"inbound_eta_at": "2025-12-31T05:00:00Z",
"inbound_ata_at": null,
"outbound_etd_at": null,
"outbound_atd_at": null,
"label": "POD",
"updated_at": "2025-12-11T09:01:08Z"
}
}
]
}Token YOUR_API_TOKEN
The APIs require authentication to be done using header-based API Key and Secret Authentication.
API key and secret are sent va the Authorization request header.
You send your API key and secret in the following way:
Authorization: Token YOUR_API_KEY
OK
FeatureCollection Show child attributes
Feature Show child attributes
port The sequence number of this port in the route (1 = POL, last = POD)
Total number of ports in the route
Unique identifier for the port location
Port Name of the port
State abbreviation (if applicable)
State name (if applicable)
ISO country code
Country name
IANA timezone identifier
Port label: POL, POD, or TS1, TS2, etc.
Estimated time of arrival (ISO 8601)
Actual time of arrival (ISO 8601)
Estimated time of departure (ISO 8601)
Actual time of departure (ISO 8601)
Last update timestamp from the shipment (ISO 8601)
Was this page helpful?