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
Was this page helpful?