{
  "info": {
    "name": "Panvaya integration starter",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": "Import and inspect saved examples without calling Panvaya. Set api_key and receiver_secret in a local, unsynced environment or secret store; leave exported values blank. Set allow_live_calls=true explicitly before sending Panvaya requests. Both pv_test and pv_live keys use real providers, credits and limits. Successful cache hits are billed. B/L and booking values must be replaced with your own references. Optional webhook setup additionally requires allow_webhook_setup=true, enabled WEBHOOK_SEA_TRACKING, a public HTTPS port-443 receiver and sufficient quota. Creating a subscription starts recurring billable acquisitions even with runImmediately=false; cancel it when finished. Set a new UUID idempotency key for each intentional destination/subscription creation, and reuse that same key when retrying it. Copy endpoint/subscription IDs manually from responses. Current webhooks are scheduled complete Ocean responses, authenticated with receiver credentials over TLS, without HMAC signatures. The local receiver check uses the fixed delivery_id to demonstrate deduplication; change it for a new delivery. Documentation: https://panvaya.com/developers"
  },
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "X-API-Key",
        "type": "string"
      },
      {
        "key": "value",
        "value": "{{api_key}}",
        "type": "string"
      },
      {
        "key": "in",
        "value": "header",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://api.panvaya.com/api/v1",
      "type": "string"
    },
    {
      "key": "api_key",
      "value": "",
      "type": "string"
    },
    {
      "key": "allow_live_calls",
      "value": "false",
      "type": "string"
    },
    {
      "key": "allow_webhook_setup",
      "value": "false",
      "type": "string"
    },
    {
      "key": "container",
      "value": "MEDU8611713",
      "type": "string"
    },
    {
      "key": "shipping_line_scac",
      "value": "MSCU",
      "type": "string"
    },
    {
      "key": "bol",
      "value": "YOUR_BILL_OF_LADING",
      "type": "string"
    },
    {
      "key": "bk",
      "value": "YOUR_BOOKING_REFERENCE",
      "type": "string"
    },
    {
      "key": "awb",
      "value": "044-45428036",
      "type": "string"
    },
    {
      "key": "receiver_base_url",
      "value": "http://127.0.0.1:8089",
      "type": "string"
    },
    {
      "key": "receiver_https_url",
      "value": "",
      "type": "string"
    },
    {
      "key": "receiver_secret",
      "value": "",
      "type": "string"
    },
    {
      "key": "endpoint_id",
      "value": "",
      "type": "string"
    },
    {
      "key": "subscription_id",
      "value": "0192a6b2-031f-7000-8000-000000000001",
      "type": "string"
    },
    {
      "key": "delivery_id",
      "value": "0192a71f-0a21-7000-8000-000000000042",
      "type": "string"
    },
    {
      "key": "endpoint_idempotency_key",
      "value": "8c192cb3-04c6-481b-b315-422df39ddc92",
      "type": "string"
    },
    {
      "key": "subscription_idempotency_key",
      "value": "146ce001-01f1-43b9-af42-b068585f6358",
      "type": "string"
    }
  ],
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [
          "if (pm.info.requestName !== \"Test local receiver\" && pm.variables.get(\"allow_live_calls\") !== \"true\") {",
          "  pm.execution.skipRequest();",
          "}"
        ]
      }
    }
  ],
  "item": [
    {
      "name": "Tracking",
      "item": [
        {
          "name": "Container",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/track/ocean",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"container\": \"{{container}}\",\n  \"shipping_line_scac\": \"{{shipping_line_scac}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Excerpt from our developer example. Static sample; live data and availability vary. Optional route geometry is omitted."
          },
          "response": [
            {
              "name": "Illustrative developer example (not a live result)",
              "originalRequest": {
                "method": "POST",
                "url": "{{base_url}}/track/ocean",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"container\": \"{{container}}\",\n  \"shipping_line_scac\": \"{{shipping_line_scac}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "Excerpt from our developer example. Static sample; live data and availability vary. Optional route geometry is omitted."
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"reference\": {\n      \"number\": \"MEDU8611713\",\n      \"type\": \"container\"\n    },\n    \"shipping_line\": {\n      \"scac\": \"MSCU\",\n      \"name\": \"Mediterranean Shipping Company (MSC)\"\n    },\n    \"status\": \"in_transit\",\n    \"journey\": {\n      \"origin\": null,\n      \"port_of_lading\": {\n        \"location_id\": 1,\n        \"estimated_departure_at\": \"2026-10-24T00:00:00\",\n        \"actual_departure_at\": null,\n        \"estimated_arrival_at\": null,\n        \"actual_arrival_at\": null\n      },\n      \"port_of_discharge\": {\n        \"location_id\": 3,\n        \"estimated_departure_at\": null,\n        \"actual_departure_at\": null,\n        \"estimated_arrival_at\": \"2026-11-11T00:00:00\",\n        \"actual_arrival_at\": null\n      },\n      \"destination\": null\n    },\n    \"locations\": [\n      {\n        \"id\": 1,\n        \"name\": \"Montreal\",\n        \"state\": \"QC\",\n        \"country\": \"Canada\",\n        \"country_code\": \"CA\",\n        \"locode\": \"CAMTR\",\n        \"latitude\": 45.545,\n        \"longitude\": -73.528,\n        \"timezone\": \"America/Toronto\"\n      },\n      {\n        \"id\": 2,\n        \"name\": \"Gioia Tauro\",\n        \"state\": null,\n        \"country\": \"Italy\",\n        \"country_code\": \"IT\",\n        \"locode\": \"ITGIT\",\n        \"latitude\": 38.442,\n        \"longitude\": 15.902,\n        \"timezone\": \"Europe/Rome\"\n      },\n      {\n        \"id\": 3,\n        \"name\": \"Mersin\",\n        \"state\": \"33\",\n        \"country\": \"Türkiye\",\n        \"country_code\": \"TR\",\n        \"locode\": \"TRMER\",\n        \"latitude\": 36.798,\n        \"longitude\": 34.642,\n        \"timezone\": \"Europe/Istanbul\"\n      }\n    ],\n    \"transports\": [\n      {\n        \"id\": 1,\n        \"mode\": \"truck\",\n        \"name\": null,\n        \"imo\": null,\n        \"call_sign\": null,\n        \"mmsi\": null,\n        \"flag\": null,\n        \"vehicle_number\": null,\n        \"voyage_number\": null\n      },\n      {\n        \"id\": 2,\n        \"mode\": \"vessel\",\n        \"name\": \"MSC KILIMANJARO IV\",\n        \"imo\": 9318175,\n        \"call_sign\": \"A8JX3\",\n        \"mmsi\": 636013001,\n        \"flag\": \"LR\",\n        \"vehicle_number\": null,\n        \"voyage_number\": \"CD643R\"\n      },\n      {\n        \"id\": 3,\n        \"mode\": \"vessel\",\n        \"name\": \"MSC PAMIRA III\",\n        \"imo\": 9239903,\n        \"call_sign\": \"5LCZ6\",\n        \"mmsi\": 636021246,\n        \"flag\": \"MH\",\n        \"vehicle_number\": null,\n        \"voyage_number\": \"AH645R\"\n      }\n    ],\n    \"containers\": [\n      {\n        \"number\": \"MEDU8611713\",\n        \"equipment\": {\n          \"carrier_code\": \"40 HIGH CUBE\",\n          \"iso_code\": \"45G1\",\n          \"description\": \"High Cube Dry Standard\",\n          \"size\": 40,\n          \"length\": \"40'\",\n          \"height\": \"9'6''\",\n          \"width\": \"8'\",\n          \"bulk\": false,\n          \"liquid\": false,\n          \"reefer\": false,\n          \"high_cube\": true,\n          \"dry\": true\n        },\n        \"status\": \"in_transit\",\n        \"events\": [\n          {\n            \"id\": 1,\n            \"location_id\": 1,\n            \"event_code\": \"PICK\",\n            \"event_name\": \"Empty equipment picked up\",\n            \"event_category\": \"equipment\",\n            \"carrier_event_name\": \"Start Export Cycle\",\n            \"event_time\": \"2026-10-14T00:00:00\",\n            \"actual\": true,\n            \"transport_id\": 1\n          },\n          {\n            \"id\": 2,\n            \"location_id\": 1,\n            \"event_code\": \"GTIN\",\n            \"event_name\": \"Gate in\",\n            \"event_category\": \"equipment\",\n            \"carrier_event_name\": \"Export received at CY\",\n            \"event_time\": \"2026-10-16T00:00:00\",\n            \"actual\": true,\n            \"transport_id\": 1\n          },\n          {\n            \"id\": 3,\n            \"location_id\": 1,\n            \"event_code\": \"DEPA\",\n            \"event_name\": \"Vessel departed\",\n            \"event_category\": \"transport\",\n            \"carrier_event_name\": \"Estimated Time of Departure\",\n            \"event_time\": \"2026-10-24T00:00:00\",\n            \"actual\": false,\n            \"transport_id\": 2\n          },\n          {\n            \"id\": 4,\n            \"location_id\": 2,\n            \"event_code\": \"DISC\",\n            \"event_name\": \"Discharged at transshipment port\",\n            \"event_category\": \"equipment\",\n            \"carrier_event_name\": \"Full Intended Transshipment\",\n            \"event_time\": \"2026-11-07T00:00:00\",\n            \"actual\": false,\n            \"transport_id\": 2\n          },\n          {\n            \"id\": 5,\n            \"location_id\": 2,\n            \"event_code\": \"LOAD\",\n            \"event_name\": \"Loaded at transshipment port\",\n            \"event_category\": \"equipment\",\n            \"carrier_event_name\": \"Full Intended Transshipment\",\n            \"event_time\": \"2026-11-07T00:00:00\",\n            \"actual\": false,\n            \"transport_id\": 3\n          },\n          {\n            \"id\": 6,\n            \"location_id\": 3,\n            \"event_code\": \"ARRI\",\n            \"event_name\": \"Vessel arrived\",\n            \"event_category\": \"transport\",\n            \"carrier_event_name\": \"Estimated Time of Arrival\",\n            \"event_time\": \"2026-11-11T00:00:00\",\n            \"actual\": false,\n            \"transport_id\": 3\n          }\n        ]\n      }\n    ],\n    \"route_data\": {\n      \"segments\": [\n        {\n          \"sequence\": 1,\n          \"transport_mode\": \"vessel\",\n          \"origin_location_id\": 1,\n          \"destination_location_id\": 2,\n          \"transport_id\": 2,\n          \"voyage_number\": \"CD643R\",\n          \"path\": [\n            [\n              -73.52800000000002,\n              45.545\n            ],\n            [\n              -70.375,\n              47.375\n            ],\n            [\n              -68.875,\n              48.625\n            ],\n            [\n              -66.125,\n              49.375\n            ],\n            [\n              -63.875,\n              49.375\n            ],\n            [\n              -63.125,\n              49.125\n            ],\n            [\n              -61.875,\n              48.875\n            ],\n            [\n              -59.125,\n              47.375\n            ],\n            [\n              -53.375,\n              46.625\n            ],\n            [\n              -8.625,\n              36.875\n            ],\n            [\n              -5.875,\n              36.125\n            ],\n            [\n              -5.125,\n              36.125\n            ],\n            [\n              -1.875,\n              36.625\n            ],\n            [\n              15.875,\n              38.625\n            ],\n            [\n              15.902000000000044,\n              38.442\n            ]\n          ],\n          \"path_source\": \"calculated\"\n        },\n        {\n          \"sequence\": 2,\n          \"transport_mode\": \"vessel\",\n          \"origin_location_id\": 2,\n          \"destination_location_id\": 3,\n          \"transport_id\": 3,\n          \"voyage_number\": \"AH645R\",\n          \"path\": [\n            [\n              15.902000000000044,\n              38.442\n            ],\n            [\n              15.875,\n              38.625\n            ],\n            [\n              15.625,\n              38.375\n            ],\n            [\n              15.625,\n              37.875\n            ],\n            [\n              22.375,\n              36.625\n            ],\n            [\n              28.625,\n              36.625\n            ],\n            [\n              29.375,\n              36.125\n            ],\n            [\n              33.375,\n              35.875\n            ],\n            [\n              34.625,\n              36.625\n            ],\n            [\n              34.64200000000005,\n              36.798\n            ]\n          ],\n          \"path_source\": \"calculated\"\n        }\n      ],\n      \"current_position\": {\n        \"latitude\": 45.545,\n        \"longitude\": -73.52800000000002,\n        \"source\": \"last_event\",\n        \"estimated\": true,\n        \"observed_at\": null,\n        \"active_segment_sequence\": null\n      },\n      \"ais\": {\n        \"from_cache\": null,\n        \"speed_knots\": null,\n        \"course\": null,\n        \"heading\": null,\n        \"distance_to_go\": null,\n        \"empty\": true\n      }\n    }\n  },\n  \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Bill of lading",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/track/ocean",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"bol\": \"{{bol}}\",\n  \"shipping_line_scac\": \"{{shipping_line_scac}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Illustrative adaptation of our Ocean developer sample. Replace the reference with your own; B/L and booking results can contain multiple containers. Support varies by carrier."
          },
          "response": [
            {
              "name": "Illustrative developer example (not a live result)",
              "originalRequest": {
                "method": "POST",
                "url": "{{base_url}}/track/ocean",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"bol\": \"{{bol}}\",\n  \"shipping_line_scac\": \"{{shipping_line_scac}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "Illustrative adaptation of our Ocean developer sample. Replace the reference with your own; B/L and booking results can contain multiple containers. Support varies by carrier."
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"reference\": {\n      \"number\": \"YOUR_BILL_OF_LADING\",\n      \"type\": \"bol\"\n    },\n    \"shipping_line\": {\n      \"scac\": \"MSCU\",\n      \"name\": \"Mediterranean Shipping Company (MSC)\"\n    },\n    \"status\": \"in_transit\",\n    \"journey\": {\n      \"origin\": null,\n      \"port_of_lading\": {\n        \"location_id\": 1,\n        \"estimated_departure_at\": \"2026-10-24T00:00:00\",\n        \"actual_departure_at\": null,\n        \"estimated_arrival_at\": null,\n        \"actual_arrival_at\": null\n      },\n      \"port_of_discharge\": {\n        \"location_id\": 3,\n        \"estimated_departure_at\": null,\n        \"actual_departure_at\": null,\n        \"estimated_arrival_at\": \"2026-11-11T00:00:00\",\n        \"actual_arrival_at\": null\n      },\n      \"destination\": null\n    },\n    \"locations\": [\n      {\n        \"id\": 1,\n        \"name\": \"Montreal\",\n        \"state\": \"QC\",\n        \"country\": \"Canada\",\n        \"country_code\": \"CA\",\n        \"locode\": \"CAMTR\",\n        \"latitude\": 45.545,\n        \"longitude\": -73.528,\n        \"timezone\": \"America/Toronto\"\n      },\n      {\n        \"id\": 2,\n        \"name\": \"Gioia Tauro\",\n        \"state\": null,\n        \"country\": \"Italy\",\n        \"country_code\": \"IT\",\n        \"locode\": \"ITGIT\",\n        \"latitude\": 38.442,\n        \"longitude\": 15.902,\n        \"timezone\": \"Europe/Rome\"\n      },\n      {\n        \"id\": 3,\n        \"name\": \"Mersin\",\n        \"state\": \"33\",\n        \"country\": \"Türkiye\",\n        \"country_code\": \"TR\",\n        \"locode\": \"TRMER\",\n        \"latitude\": 36.798,\n        \"longitude\": 34.642,\n        \"timezone\": \"Europe/Istanbul\"\n      }\n    ],\n    \"transports\": [\n      {\n        \"id\": 1,\n        \"mode\": \"truck\",\n        \"name\": null,\n        \"imo\": null,\n        \"call_sign\": null,\n        \"mmsi\": null,\n        \"flag\": null,\n        \"vehicle_number\": null,\n        \"voyage_number\": null\n      },\n      {\n        \"id\": 2,\n        \"mode\": \"vessel\",\n        \"name\": \"MSC KILIMANJARO IV\",\n        \"imo\": 9318175,\n        \"call_sign\": \"A8JX3\",\n        \"mmsi\": 636013001,\n        \"flag\": \"LR\",\n        \"vehicle_number\": null,\n        \"voyage_number\": \"CD643R\"\n      },\n      {\n        \"id\": 3,\n        \"mode\": \"vessel\",\n        \"name\": \"MSC PAMIRA III\",\n        \"imo\": 9239903,\n        \"call_sign\": \"5LCZ6\",\n        \"mmsi\": 636021246,\n        \"flag\": \"MH\",\n        \"vehicle_number\": null,\n        \"voyage_number\": \"AH645R\"\n      }\n    ],\n    \"containers\": [\n      {\n        \"number\": \"MEDU8611713\",\n        \"equipment\": {\n          \"carrier_code\": \"40 HIGH CUBE\",\n          \"iso_code\": \"45G1\",\n          \"description\": \"High Cube Dry Standard\",\n          \"size\": 40,\n          \"length\": \"40'\",\n          \"height\": \"9'6''\",\n          \"width\": \"8'\",\n          \"bulk\": false,\n          \"liquid\": false,\n          \"reefer\": false,\n          \"high_cube\": true,\n          \"dry\": true\n        },\n        \"status\": \"in_transit\",\n        \"events\": [\n          {\n            \"id\": 1,\n            \"location_id\": 1,\n            \"event_code\": \"PICK\",\n            \"event_name\": \"Empty equipment picked up\",\n            \"event_category\": \"equipment\",\n            \"carrier_event_name\": \"Start Export Cycle\",\n            \"event_time\": \"2026-10-14T00:00:00\",\n            \"actual\": true,\n            \"transport_id\": 1\n          },\n          {\n            \"id\": 2,\n            \"location_id\": 1,\n            \"event_code\": \"GTIN\",\n            \"event_name\": \"Gate in\",\n            \"event_category\": \"equipment\",\n            \"carrier_event_name\": \"Export received at CY\",\n            \"event_time\": \"2026-10-16T00:00:00\",\n            \"actual\": true,\n            \"transport_id\": 1\n          },\n          {\n            \"id\": 3,\n            \"location_id\": 1,\n            \"event_code\": \"DEPA\",\n            \"event_name\": \"Vessel departed\",\n            \"event_category\": \"transport\",\n            \"carrier_event_name\": \"Estimated Time of Departure\",\n            \"event_time\": \"2026-10-24T00:00:00\",\n            \"actual\": false,\n            \"transport_id\": 2\n          },\n          {\n            \"id\": 4,\n            \"location_id\": 2,\n            \"event_code\": \"DISC\",\n            \"event_name\": \"Discharged at transshipment port\",\n            \"event_category\": \"equipment\",\n            \"carrier_event_name\": \"Full Intended Transshipment\",\n            \"event_time\": \"2026-11-07T00:00:00\",\n            \"actual\": false,\n            \"transport_id\": 2\n          },\n          {\n            \"id\": 5,\n            \"location_id\": 2,\n            \"event_code\": \"LOAD\",\n            \"event_name\": \"Loaded at transshipment port\",\n            \"event_category\": \"equipment\",\n            \"carrier_event_name\": \"Full Intended Transshipment\",\n            \"event_time\": \"2026-11-07T00:00:00\",\n            \"actual\": false,\n            \"transport_id\": 3\n          },\n          {\n            \"id\": 6,\n            \"location_id\": 3,\n            \"event_code\": \"ARRI\",\n            \"event_name\": \"Vessel arrived\",\n            \"event_category\": \"transport\",\n            \"carrier_event_name\": \"Estimated Time of Arrival\",\n            \"event_time\": \"2026-11-11T00:00:00\",\n            \"actual\": false,\n            \"transport_id\": 3\n          }\n        ]\n      }\n    ]\n  },\n  \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Booking",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/track/ocean",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"bk\": \"{{bk}}\",\n  \"shipping_line_scac\": \"{{shipping_line_scac}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Illustrative adaptation of our Ocean developer sample. Replace the reference with your own; B/L and booking results can contain multiple containers. Support varies by carrier."
          },
          "response": [
            {
              "name": "Illustrative developer example (not a live result)",
              "originalRequest": {
                "method": "POST",
                "url": "{{base_url}}/track/ocean",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"bk\": \"{{bk}}\",\n  \"shipping_line_scac\": \"{{shipping_line_scac}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "Illustrative adaptation of our Ocean developer sample. Replace the reference with your own; B/L and booking results can contain multiple containers. Support varies by carrier."
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": {\n    \"reference\": {\n      \"number\": \"YOUR_BOOKING_REFERENCE\",\n      \"type\": \"bk\"\n    },\n    \"shipping_line\": {\n      \"scac\": \"MSCU\",\n      \"name\": \"Mediterranean Shipping Company (MSC)\"\n    },\n    \"status\": \"in_transit\",\n    \"journey\": {\n      \"origin\": null,\n      \"port_of_lading\": {\n        \"location_id\": 1,\n        \"estimated_departure_at\": \"2026-10-24T00:00:00\",\n        \"actual_departure_at\": null,\n        \"estimated_arrival_at\": null,\n        \"actual_arrival_at\": null\n      },\n      \"port_of_discharge\": {\n        \"location_id\": 3,\n        \"estimated_departure_at\": null,\n        \"actual_departure_at\": null,\n        \"estimated_arrival_at\": \"2026-11-11T00:00:00\",\n        \"actual_arrival_at\": null\n      },\n      \"destination\": null\n    },\n    \"locations\": [\n      {\n        \"id\": 1,\n        \"name\": \"Montreal\",\n        \"state\": \"QC\",\n        \"country\": \"Canada\",\n        \"country_code\": \"CA\",\n        \"locode\": \"CAMTR\",\n        \"latitude\": 45.545,\n        \"longitude\": -73.528,\n        \"timezone\": \"America/Toronto\"\n      },\n      {\n        \"id\": 2,\n        \"name\": \"Gioia Tauro\",\n        \"state\": null,\n        \"country\": \"Italy\",\n        \"country_code\": \"IT\",\n        \"locode\": \"ITGIT\",\n        \"latitude\": 38.442,\n        \"longitude\": 15.902,\n        \"timezone\": \"Europe/Rome\"\n      },\n      {\n        \"id\": 3,\n        \"name\": \"Mersin\",\n        \"state\": \"33\",\n        \"country\": \"Türkiye\",\n        \"country_code\": \"TR\",\n        \"locode\": \"TRMER\",\n        \"latitude\": 36.798,\n        \"longitude\": 34.642,\n        \"timezone\": \"Europe/Istanbul\"\n      }\n    ],\n    \"transports\": [\n      {\n        \"id\": 1,\n        \"mode\": \"truck\",\n        \"name\": null,\n        \"imo\": null,\n        \"call_sign\": null,\n        \"mmsi\": null,\n        \"flag\": null,\n        \"vehicle_number\": null,\n        \"voyage_number\": null\n      },\n      {\n        \"id\": 2,\n        \"mode\": \"vessel\",\n        \"name\": \"MSC KILIMANJARO IV\",\n        \"imo\": 9318175,\n        \"call_sign\": \"A8JX3\",\n        \"mmsi\": 636013001,\n        \"flag\": \"LR\",\n        \"vehicle_number\": null,\n        \"voyage_number\": \"CD643R\"\n      },\n      {\n        \"id\": 3,\n        \"mode\": \"vessel\",\n        \"name\": \"MSC PAMIRA III\",\n        \"imo\": 9239903,\n        \"call_sign\": \"5LCZ6\",\n        \"mmsi\": 636021246,\n        \"flag\": \"MH\",\n        \"vehicle_number\": null,\n        \"voyage_number\": \"AH645R\"\n      }\n    ],\n    \"containers\": [\n      {\n        \"number\": \"MEDU8611713\",\n        \"equipment\": {\n          \"carrier_code\": \"40 HIGH CUBE\",\n          \"iso_code\": \"45G1\",\n          \"description\": \"High Cube Dry Standard\",\n          \"size\": 40,\n          \"length\": \"40'\",\n          \"height\": \"9'6''\",\n          \"width\": \"8'\",\n          \"bulk\": false,\n          \"liquid\": false,\n          \"reefer\": false,\n          \"high_cube\": true,\n          \"dry\": true\n        },\n        \"status\": \"in_transit\",\n        \"events\": [\n          {\n            \"id\": 1,\n            \"location_id\": 1,\n            \"event_code\": \"PICK\",\n            \"event_name\": \"Empty equipment picked up\",\n            \"event_category\": \"equipment\",\n            \"carrier_event_name\": \"Start Export Cycle\",\n            \"event_time\": \"2026-10-14T00:00:00\",\n            \"actual\": true,\n            \"transport_id\": 1\n          },\n          {\n            \"id\": 2,\n            \"location_id\": 1,\n            \"event_code\": \"GTIN\",\n            \"event_name\": \"Gate in\",\n            \"event_category\": \"equipment\",\n            \"carrier_event_name\": \"Export received at CY\",\n            \"event_time\": \"2026-10-16T00:00:00\",\n            \"actual\": true,\n            \"transport_id\": 1\n          },\n          {\n            \"id\": 3,\n            \"location_id\": 1,\n            \"event_code\": \"DEPA\",\n            \"event_name\": \"Vessel departed\",\n            \"event_category\": \"transport\",\n            \"carrier_event_name\": \"Estimated Time of Departure\",\n            \"event_time\": \"2026-10-24T00:00:00\",\n            \"actual\": false,\n            \"transport_id\": 2\n          },\n          {\n            \"id\": 4,\n            \"location_id\": 2,\n            \"event_code\": \"DISC\",\n            \"event_name\": \"Discharged at transshipment port\",\n            \"event_category\": \"equipment\",\n            \"carrier_event_name\": \"Full Intended Transshipment\",\n            \"event_time\": \"2026-11-07T00:00:00\",\n            \"actual\": false,\n            \"transport_id\": 2\n          },\n          {\n            \"id\": 5,\n            \"location_id\": 2,\n            \"event_code\": \"LOAD\",\n            \"event_name\": \"Loaded at transshipment port\",\n            \"event_category\": \"equipment\",\n            \"carrier_event_name\": \"Full Intended Transshipment\",\n            \"event_time\": \"2026-11-07T00:00:00\",\n            \"actual\": false,\n            \"transport_id\": 3\n          },\n          {\n            \"id\": 6,\n            \"location_id\": 3,\n            \"event_code\": \"ARRI\",\n            \"event_name\": \"Vessel arrived\",\n            \"event_category\": \"transport\",\n            \"carrier_event_name\": \"Estimated Time of Arrival\",\n            \"event_time\": \"2026-11-11T00:00:00\",\n            \"actual\": false,\n            \"transport_id\": 3\n          }\n        ]\n      }\n    ]\n  },\n  \"errors\": null\n}"
            }
          ]
        },
        {
          "name": "Air waybill",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/track/air",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"awb\": \"{{awb}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Illustrative excerpt from our Air developer sample. Air returns a camelCase object directly. Missing carrier values remain null."
          },
          "response": [
            {
              "name": "Illustrative developer example (not a live result)",
              "originalRequest": {
                "method": "POST",
                "url": "{{base_url}}/track/air",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"awb\": \"{{awb}}\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                },
                "description": "Illustrative excerpt from our Air developer sample. Air returns a camelCase object directly. Missing carrier values remain null."
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"awbNumber\": \"044-45428036\",\n  \"airlineId\": 52,\n  \"airlineName\": \"Aerolíneas Argentinas\",\n  \"airlinePrefix\": \"044\",\n  \"originAirportCode\": \"MAD\",\n  \"originAirportName\": \"Adolfo Suárez Madrid–Barajas Airport\",\n  \"originLat\": 40.4719,\n  \"originLng\": -3.56264,\n  \"destinationAirportCode\": \"SCL\",\n  \"destinationAirportName\": \"Arturo Merino Benítez International Airport\",\n  \"destinationLat\": -33.393,\n  \"destinationLng\": -70.7858,\n  \"departureEstimated\": \"2026-10-02T09:00:00\",\n  \"departureActual\": \"2026-10-02T09:15:00\",\n  \"arrivalEstimated\": \"2026-10-03T06:30:00\",\n  \"arrivalActual\": null,\n  \"piece\": 2,\n  \"weight\": 295.5,\n  \"status\": \"IN_TRANSIT\",\n  \"flightNumber\": \"AR1135\",\n  \"events\": [\n    {\n      \"orderId\": 1,\n      \"code\": \"DEP\",\n      \"description\": \"Departed\",\n      \"rawDescription\": \"Shipment departed\",\n      \"airportCode\": \"MAD\",\n      \"airportName\": \"Adolfo Suárez Madrid–Barajas Airport\",\n      \"lat\": 40.4719,\n      \"lng\": -3.56264,\n      \"eventTime\": \"2026-10-02T09:15:00\",\n      \"eventTimeUtc\": \"2026-10-02T07:15:00Z\",\n      \"actual\": true,\n      \"piece\": 2,\n      \"weight\": 295.5,\n      \"flightNumber\": \"AR1135\",\n      \"fromAirport\": \"MAD\",\n      \"toAirport\": \"EZE\",\n      \"uld\": null\n    }\n  ],\n  \"routes\": [\n    {\n      \"orderId\": 1,\n      \"fromAirport\": \"MAD\",\n      \"toAirport\": \"EZE\",\n      \"flightNumber\": \"AR1135\",\n      \"departureEstimated\": \"2026-10-02T09:00:00\",\n      \"departureActual\": \"2026-10-02T09:15:00\",\n      \"arrivalEstimated\": \"2026-10-02T17:00:00\",\n      \"arrivalActual\": null,\n      \"departureEstimatedUtc\": \"2026-10-02T07:00:00Z\",\n      \"departureActualUtc\": \"2026-10-02T07:15:00Z\",\n      \"arrivalEstimatedUtc\": \"2026-10-02T20:00:00Z\",\n      \"arrivalActualUtc\": null,\n      \"pieces\": 2,\n      \"weight\": 295.5,\n      \"status\": \"Departed\"\n    },\n    {\n      \"orderId\": 2,\n      \"fromAirport\": \"EZE\",\n      \"toAirport\": \"SCL\",\n      \"flightNumber\": \"AR1284\",\n      \"departureEstimated\": \"2026-10-03T05:00:00\",\n      \"departureActual\": null,\n      \"arrivalEstimated\": \"2026-10-03T06:30:00\",\n      \"arrivalActual\": null,\n      \"departureEstimatedUtc\": \"2026-10-03T08:00:00Z\",\n      \"departureActualUtc\": null,\n      \"arrivalEstimatedUtc\": \"2026-10-03T09:30:00Z\",\n      \"arrivalActualUtc\": null,\n      \"pieces\": 2,\n      \"weight\": 295.5,\n      \"status\": \"Booked\"\n    }\n  ],\n  \"routePoints\": [\n    {\n      \"lat\": 40.4719,\n      \"lng\": -3.56264\n    },\n    {\n      \"lat\": -34.8222,\n      \"lng\": -58.5358\n    },\n    {\n      \"lat\": -33.393,\n      \"lng\": -70.7858\n    }\n  ],\n  \"waypoints\": [\n    {\n      \"airportCode\": \"MAD\",\n      \"airportName\": \"Adolfo Suárez Madrid–Barajas Airport\",\n      \"lat\": 40.4719,\n      \"lng\": -3.56264,\n      \"role\": \"ORIGIN\",\n      \"order\": 1\n    },\n    {\n      \"airportCode\": \"EZE\",\n      \"airportName\": \"Ministro Pistarini International Airport\",\n      \"lat\": -34.8222,\n      \"lng\": -58.5358,\n      \"role\": \"TRANSIT\",\n      \"order\": 2\n    },\n    {\n      \"airportCode\": \"SCL\",\n      \"airportName\": \"Arturo Merino Benítez International Airport\",\n      \"lat\": -33.393,\n      \"lng\": -70.7858,\n      \"role\": \"DESTINATION\",\n      \"order\": 3\n    }\n  ],\n  \"carbonEstimate\": null,\n  \"found\": true,\n  \"errorMessage\": null\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Logistics APIs",
      "item": [
        {
          "name": "Sailing schedules",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/schedules/search",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"origin\": \"CNSHA\",\n  \"destination\": \"NLRTM\",\n  \"date\": \"2025-09-01\",\n  \"weeks\": 8,\n  \"carriers\": [\n    \"MAEU\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "Illustrative developer example (not a live result)",
              "originalRequest": {
                "method": "POST",
                "url": "{{base_url}}/schedules/search",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"origin\": \"CNSHA\",\n  \"destination\": \"NLRTM\",\n  \"date\": \"2025-09-01\",\n  \"weeks\": 8,\n  \"carriers\": [\n    \"MAEU\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"origin\": {\n    \"name\": \"Shanghai\",\n    \"locode\": \"CNSHA\",\n    \"timezone\": \"Asia/Shanghai\"\n  },\n  \"destination\": {\n    \"name\": \"Rotterdam\",\n    \"locode\": \"NLRTM\",\n    \"timezone\": \"Europe/Amsterdam\"\n  },\n  \"fromDate\": \"2025-09-01\",\n  \"weeks\": 8,\n  \"carriers\": [\n    \"MAERSK\"\n  ],\n  \"successfulCarriers\": [\n    \"MAERSK\"\n  ],\n  \"cached\": true,\n  \"servedAt\": \"2025-09-01T11:25:00Z\",\n  \"carrierStatuses\": {\n    \"MAEU\": {\n      \"carrier\": \"MAERSK\",\n      \"carrierCode\": \"MAEU\",\n      \"status\": \"FOUND\",\n      \"count\": 2,\n      \"cached\": true,\n      \"durationMs\": 420.5\n    }\n  },\n  \"sailings\": [\n    {\n      \"carrier\": \"MAERSK\",\n      \"carrierCode\": \"MAEU\",\n      \"service\": \"AE1\",\n      \"direct\": true,\n      \"routingType\": \"Direct\",\n      \"transshipments\": 0,\n      \"originName\": \"Shanghai\",\n      \"originLocode\": \"CNSHA\",\n      \"originTerminal\": \"Yangshan Deepwater Port\",\n      \"originTimezone\": \"Asia/Shanghai\",\n      \"destinationName\": \"Rotterdam\",\n      \"destinationLocode\": \"NLRTM\",\n      \"destinationTerminal\": \"APM Terminals Maasvlakte II\",\n      \"destinationTimezone\": \"Europe/Amsterdam\",\n      \"retrievedAt\": \"2025-09-01T08:00:00Z\",\n      \"cached\": true,\n      \"sourceUpdatedAt\": null,\n      \"sourceResultTimestamp\": null,\n      \"sourceIdentifier\": \"carrier:MAEU\",\n      \"departure\": \"2025-09-03T18:00:00+08:00\",\n      \"arrival\": \"2025-10-05T06:00:00+02:00\",\n      \"finalEtaStatus\": \"PUBLISHED\",\n      \"transitTime\": \"32 days\",\n      \"transitHours\": 756,\n      \"vesselName\": \"MADRID MAERSK\",\n      \"vesselImo\": \"9778791\",\n      \"voyageNo\": \"2501W\",\n      \"legs\": [\n        {\n          \"sequence\": 1,\n          \"transportMode\": \"VESSEL\",\n          \"vesselName\": \"MADRID MAERSK\",\n          \"vesselImo\": \"9778791\",\n          \"voyageNo\": \"2501W\",\n          \"service\": \"AE1\",\n          \"fromName\": \"Shanghai\",\n          \"fromLocode\": \"CNSHA\",\n          \"fromTerminal\": \"Yangshan Deepwater Port\",\n          \"fromTimezone\": \"Asia/Shanghai\",\n          \"departure\": \"2025-09-03T18:00:00+08:00\",\n          \"toName\": \"Rotterdam\",\n          \"toLocode\": \"NLRTM\",\n          \"toTerminal\": \"APM Terminals Maasvlakte II\",\n          \"toTimezone\": \"Europe/Amsterdam\",\n          \"arrival\": \"2025-10-05T06:00:00+02:00\",\n          \"transitHours\": 756\n        }\n      ]\n    },\n    {\n      \"carrier\": \"MAERSK\",\n      \"carrierCode\": \"MAEU\",\n      \"service\": \"AE1\",\n      \"direct\": true,\n      \"routingType\": \"Direct\",\n      \"transshipments\": 0,\n      \"originName\": \"Shanghai\",\n      \"originLocode\": \"CNSHA\",\n      \"originTerminal\": \"Yangshan Deepwater Port\",\n      \"originTimezone\": \"Asia/Shanghai\",\n      \"destinationName\": \"Rotterdam\",\n      \"destinationLocode\": \"NLRTM\",\n      \"destinationTerminal\": \"APM Terminals Maasvlakte II\",\n      \"destinationTimezone\": \"Europe/Amsterdam\",\n      \"retrievedAt\": \"2025-09-01T08:00:00Z\",\n      \"cached\": true,\n      \"sourceUpdatedAt\": null,\n      \"sourceResultTimestamp\": null,\n      \"sourceIdentifier\": \"carrier:MAEU\",\n      \"departure\": \"2025-09-10T12:00:00+08:00\",\n      \"arrival\": \"2025-10-12T08:00:00+02:00\",\n      \"finalEtaStatus\": \"PUBLISHED\",\n      \"transitTime\": \"32 days\",\n      \"transitHours\": 764,\n      \"vesselName\": \"MUNICH MAERSK\",\n      \"vesselImo\": \"9778806\",\n      \"voyageNo\": \"2502W\",\n      \"legs\": [\n        {\n          \"sequence\": 1,\n          \"transportMode\": \"VESSEL\",\n          \"vesselName\": \"MUNICH MAERSK\",\n          \"vesselImo\": \"9778806\",\n          \"voyageNo\": \"2502W\",\n          \"service\": \"AE1\",\n          \"fromName\": \"Shanghai\",\n          \"fromLocode\": \"CNSHA\",\n          \"fromTerminal\": \"Yangshan Deepwater Port\",\n          \"fromTimezone\": \"Asia/Shanghai\",\n          \"departure\": \"2025-09-10T12:00:00+08:00\",\n          \"toName\": \"Rotterdam\",\n          \"toLocode\": \"NLRTM\",\n          \"toTerminal\": \"APM Terminals Maasvlakte II\",\n          \"toTimezone\": \"Europe/Amsterdam\",\n          \"arrival\": \"2025-10-12T08:00:00+02:00\",\n          \"transitHours\": 764\n        }\n      ]\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "CO2 calculator",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/carbon/calculate",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"origin\": \"NLRTM\",\n  \"destination\": \"SGSIN\",\n  \"weightKg\": 18000,\n  \"mode\": \"ocean\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "Illustrative developer example (not a live result)",
              "originalRequest": {
                "method": "POST",
                "url": "{{base_url}}/carbon/calculate",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"origin\": \"NLRTM\",\n  \"destination\": \"SGSIN\",\n  \"weightKg\": 18000,\n  \"mode\": \"ocean\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"origin\": {\n    \"name\": \"Shanghai\",\n    \"locode\": \"CNSHA\",\n    \"latitude\": 31.23,\n    \"longitude\": 121.47\n  },\n  \"destination\": {\n    \"name\": \"Rotterdam\",\n    \"locode\": \"NLRTM\",\n    \"latitude\": 51.92,\n    \"longitude\": 4.48\n  },\n  \"mode\": \"ocean\",\n  \"weightKg\": 18000,\n  \"greatCircleKm\": 8868.42,\n  \"distanceKm\": 14189.47,\n  \"co2Kg\": 2554.1,\n  \"co2Tonnes\": 2.55,\n  \"factorGramsPerTonneKm\": 10,\n  \"treesToOffset\": 121.62,\n  \"carKmEquivalent\": 15024.12\n}"
            }
          ]
        },
        {
          "name": "CBAM & ETS",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/carbon/cbam",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"cnCode\": \"72083900\",\n  \"netWeightKg\": 20000,\n  \"originCountry\": \"DEFAULT\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "Illustrative developer example (not a live result)",
              "originalRequest": {
                "method": "POST",
                "url": "{{base_url}}/carbon/cbam",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"cnCode\": \"72083900\",\n  \"netWeightKg\": 20000,\n  \"originCountry\": \"DEFAULT\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"shipmentIdentifier\": null,\n  \"carrierName\": null,\n  \"cnCode\": \"72083900\",\n  \"commodityName\": \"Flat-rolled hot-rolled coils, thickness < 3 mm (HRC)\",\n  \"sector\": \"IRON_STEEL\",\n  \"originCountry\": \"DEFAULT\",\n  \"netWeightKg\": 20000,\n  \"netWeightTonnes\": 20,\n  \"cbamEmissions\": {\n    \"directTco2e\": 43,\n    \"indirectTco2e\": 5.2,\n    \"totalEmbeddedTco2e\": 48.2,\n    \"directFactor\": 2.15,\n    \"indirectFactor\": 0.26\n  },\n  \"freightEmissions\": {\n    \"transportTco2e\": null,\n    \"totalLandedCarbonTco2e\": null\n  },\n  \"euEtsMaritimeAudit\": {\n    \"isEuDestination\": null,\n    \"euPodLocode\": null,\n    \"liableDistanceKm\": null,\n    \"liabilityRatio\": null,\n    \"euaPriceEurPerTonne\": 70,\n    \"panvayaAuditedCostEur\": null,\n    \"invoicedEtsSurcharge\": null,\n    \"invoicedCurrency\": \"EUR\",\n    \"discrepancyAmount\": null,\n    \"auditStatus\": \"UNAVAILABLE\"\n  },\n  \"reports\": {\n    \"xmlReportUrl\": null,\n    \"excelReportUrl\": null\n  }\n}"
            }
          ]
        },
        {
          "name": "Distance & time",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/distance-time/calculate",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"origin\": \"NLRTM\",\n  \"destination\": \"SGSIN\",\n  \"avoidDangerZones\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "Illustrative developer example (not a live result)",
              "originalRequest": {
                "method": "POST",
                "url": "{{base_url}}/distance-time/calculate",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"origin\": \"NLRTM\",\n  \"destination\": \"SGSIN\",\n  \"avoidDangerZones\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"safe\": false,\n  \"totalNm\": 8305.2,\n  \"totalKm\": 15381.2,\n  \"speedKnots\": 13,\n  \"transitHours\": 638.9,\n  \"legs\": [\n    {\n      \"fromName\": \"Rotterdam\",\n      \"fromLocode\": \"NLRTM\",\n      \"from\": [\n        51.9244,\n        4.4777\n      ],\n      \"toName\": \"Singapore\",\n      \"toLocode\": \"SGSIN\",\n      \"to\": [\n        1.264,\n        103.84\n      ],\n      \"distanceNm\": 8305.2,\n      \"cached\": true,\n      \"error\": null,\n      \"route\": [\n        [\n          51.9244,\n          4.4777\n        ],\n        [\n          50.5,\n          0.1\n        ],\n        [\n          36,\n          -5.3\n        ],\n        [\n          31.2,\n          32.3\n        ],\n        [\n          12.6,\n          43.3\n        ],\n        [\n          1.264,\n          103.84\n        ]\n      ]\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "Port congestion",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/port-congestion?locode=SGSIN",
            "header": []
          },
          "response": [
            {
              "name": "Illustrative developer example (not a live result)",
              "originalRequest": {
                "method": "GET",
                "url": "{{base_url}}/port-congestion?locode=SGSIN",
                "header": []
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"count\": 1,\n  \"ports\": [\n    {\n      \"name\": \"Singapore\",\n      \"locode\": \"SGSIN\",\n      \"locodeAlt\": \"SGSIN\",\n      \"country\": \"SG\",\n      \"latitude\": 1.264,\n      \"longitude\": 103.84,\n      \"anchorLast30\": {\n        \"median\": 0.72,\n        \"q1\": 0.31,\n        \"q3\": 1.44\n      },\n      \"berthingLast30\": {\n        \"median\": 1.18,\n        \"q1\": 0.77,\n        \"q3\": 1.92\n      },\n      \"approachingLast30\": {\n        \"vessels\": 1240,\n        \"teu\": 1840000,\n        \"vesselsNext7\": 286\n      },\n      \"within50nmiLast30\": {\n        \"vesselsInArea\": 45,\n        \"vesselsAnchoredOutside\": 18,\n        \"vesselsMooredHere\": 27,\n        \"teuInArea\": 320000\n      },\n      \"capLast30\": {\n        \"vesselsArriving\": 890,\n        \"teuArriving\": 1420000,\n        \"vesselsDeparting\": 875,\n        \"teuDeparting\": 1395000\n      }\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "Vessel details",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/vessels?imo=9525338",
            "header": []
          },
          "response": [
            {
              "name": "Illustrative developer example (not a live result)",
              "originalRequest": {
                "method": "GET",
                "url": "{{base_url}}/vessels?imo=9525338",
                "header": []
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"imo\": 9525338,\n  \"mmsi\": 566093000,\n  \"name\": \"MAERSK CHENNAI\",\n  \"flag\": \"Singapore\",\n  \"callSign\": \"9V9403\",\n  \"buildYear\": 2011,\n  \"type\": \"Cargo\",\n  \"grossTonnage\": 93646,\n  \"deadweight\": 104696,\n  \"teu\": 7450,\n  \"length\": 299.9,\n  \"beam\": 48.2\n}"
            }
          ]
        },
        {
          "name": "Vessel position",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/vessels/position?imo=9525338",
            "header": []
          },
          "response": [
            {
              "name": "Illustrative developer example (not a live result)",
              "originalRequest": {
                "method": "GET",
                "url": "{{base_url}}/vessels/position?imo=9525338",
                "header": []
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"imo\": 9525338,\n  \"mmsi\": 566093000,\n  \"name\": \"MAERSK CHENNAI\",\n  \"latitude\": 18.2,\n  \"longitude\": 72.4,\n  \"originPort\": \"Singapore\",\n  \"originLocode\": \"SGSIN\",\n  \"currentPort\": null,\n  \"currentLocode\": null,\n  \"destinationPort\": \"Rotterdam\",\n  \"destinationLocode\": \"NLRTM\",\n  \"speedKnots\": 14.5,\n  \"course\": 285,\n  \"heading\": 283,\n  \"distanceRemainingKm\": 1420,\n  \"atd\": \"2025-05-12T06:15:00Z\",\n  \"eta\": \"2025-06-02T14:30:00Z\",\n  \"calculatedEta\": \"2025-06-02T12:45:00Z\"\n}"
            }
          ]
        },
        {
          "name": "Incoterms",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/incoterms/FOB",
            "header": []
          },
          "response": [
            {
              "name": "Illustrative developer example (not a live result)",
              "originalRequest": {
                "method": "GET",
                "url": "{{base_url}}/incoterms/FOB",
                "header": []
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"code\": \"FOB\",\n  \"name\": \"Free On Board\",\n  \"mode\": \"Sea and inland waterway transport only\",\n  \"riskTransfer\": \"When goods are loaded on board the vessel nominated by the buyer at the named port of shipment.\",\n  \"costTransfer\": \"Seller pays all costs until goods are on board; buyer pays freight, import clearance, and onward costs.\",\n  \"stages\": [\n    {\n      \"stage\": \"Packaging\",\n      \"seller\": true,\n      \"buyer\": false\n    },\n    {\n      \"stage\": \"Loading at origin\",\n      \"seller\": true,\n      \"buyer\": false\n    },\n    {\n      \"stage\": \"Export customs\",\n      \"seller\": true,\n      \"buyer\": false\n    },\n    {\n      \"stage\": \"Main carriage (freight)\",\n      \"seller\": false,\n      \"buyer\": true\n    },\n    {\n      \"stage\": \"Import customs & duties\",\n      \"seller\": false,\n      \"buyer\": true\n    }\n  ]\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Directories and usage",
      "item": [
        {
          "name": "Ocean carriers",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/carriers",
            "header": []
          },
          "response": [
            {
              "name": "Illustrative developer example (not a live result)",
              "originalRequest": {
                "method": "GET",
                "url": "{{base_url}}/carriers",
                "header": []
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"mode\": \"ocean\",\n  \"carriers\": [\n    {\n      \"name\": \"Maersk\",\n      \"code\": \"MAEU\"\n    },\n    {\n      \"name\": \"Mediterranean Shipping Company (MSC)\",\n      \"code\": \"MSCU\"\n    },\n    {\n      \"name\": \"CMA CGM\",\n      \"code\": \"CMDU\"\n    },\n    {\n      \"name\": \"COSCO Shipping Lines\",\n      \"code\": \"COSU\"\n    },\n    {\n      \"name\": \"Hapag-Lloyd\",\n      \"code\": \"HLCU\"\n    },\n    {\n      \"name\": \"Ocean Network Express (ONE)\",\n      \"code\": \"ONEY\"\n    },\n    {\n      \"name\": \"Evergreen Line\",\n      \"code\": \"EGLV\"\n    },\n    {\n      \"name\": \"HMM (Hyundai Merchant Marine)\",\n      \"code\": \"HDMU\"\n    },\n    {\n      \"name\": \"Yang Ming Marine Transport\",\n      \"code\": \"YMLU\"\n    },\n    {\n      \"name\": \"ZIM Integrated Shipping\",\n      \"code\": \"ZIMU\"\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "Cargo airlines",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/airlines",
            "header": []
          },
          "response": [
            {
              "name": "Illustrative developer example (not a live result)",
              "originalRequest": {
                "method": "GET",
                "url": "{{base_url}}/airlines",
                "header": []
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"mode\": \"air\",\n  \"airlines\": [\n    {\n      \"name\": \"Aerolíneas Argentinas\",\n      \"prefix\": \"044\"\n    },\n    {\n      \"name\": \"Air Canada Cargo\",\n      \"prefix\": \"014\"\n    },\n    {\n      \"name\": \"Air France Cargo\",\n      \"prefix\": \"057\"\n    },\n    {\n      \"name\": \"Cathay Cargo\",\n      \"prefix\": \"160\"\n    },\n    {\n      \"name\": \"Emirates SkyCargo\",\n      \"prefix\": \"176\"\n    },\n    {\n      \"name\": \"Etihad Cargo\",\n      \"prefix\": \"607\"\n    },\n    {\n      \"name\": \"Korean Air Cargo\",\n      \"prefix\": \"180\"\n    },\n    {\n      \"name\": \"Lufthansa Cargo\",\n      \"prefix\": \"020\"\n    },\n    {\n      \"name\": \"Qatar Airways Cargo\",\n      \"prefix\": \"157\"\n    },\n    {\n      \"name\": \"Singapore Airlines Cargo\",\n      \"prefix\": \"618\"\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "Credit usage",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/usage",
            "header": []
          },
          "response": [
            {
              "name": "Illustrative developer example (not a live result)",
              "originalRequest": {
                "method": "GET",
                "url": "{{base_url}}/usage",
                "header": []
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"creditLimit\": 12000,\n  \"creditsUsed\": 1280,\n  \"creditsRemaining\": 10720,\n  \"creditPeriodStartedAt\": \"2025-07-18T10:30:00\",\n  \"creditResetAt\": \"2025-08-17T10:30:00\",\n  \"enabledProducts\": [\n    {\n      \"productCode\": \"SEA_TRACKING\",\n      \"creditCost\": 1\n    },\n    {\n      \"productCode\": \"AIR_TRACKING\",\n      \"creditCost\": 1\n    },\n    {\n      \"productCode\": \"PORT_CONGESTION\",\n      \"creditCost\": 2\n    },\n    {\n      \"productCode\": \"SAILING_SCHEDULES\",\n      \"creditCost\": 2\n    },\n    {\n      \"productCode\": \"VESSEL_DETAILS\",\n      \"creditCost\": 1\n    },\n    {\n      \"productCode\": \"VESSEL_POSITION\",\n      \"creditCost\": 1\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "Usage CSV",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/usage/report",
            "header": []
          }
        }
      ]
    },
    {
      "name": "Optional webhook setup (enable explicitly)",
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "if (pm.variables.get(\"allow_webhook_setup\") !== \"true\") { pm.execution.skipRequest(); }"
            ]
          }
        }
      ],
      "item": [
        {
          "name": "Create receiver destination",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/webhook-endpoints",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{endpoint_idempotency_key}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Operations webhook receiver\",\n  \"environment\": \"live\",\n  \"url\": \"{{receiver_https_url}}\",\n  \"authType\": \"API_KEY\",\n  \"authHeaderName\": \"X-Custom-Webhook-Secret\",\n  \"authSecret\": \"{{receiver_secret}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create scheduled subscription",
          "request": {
            "method": "POST",
            "url": "{{base_url}}/webhook-subscriptions",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{subscription_idempotency_key}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"High-priority container monitoring\",\n  \"endpointId\": \"{{endpoint_id}}\",\n  \"productCode\": \"WEBHOOK_SEA_TRACKING\",\n  \"requestConfig\": {\n    \"input\": {\n      \"container\": \"{{container}}\",\n      \"shipping_line_scac\": \"{{shipping_line_scac}}\"\n    }\n  },\n  \"schedule\": {\n    \"type\": \"INTERVAL\",\n    \"intervalSeconds\": 300,\n    \"timezone\": \"UTC\"\n  },\n  \"externalReference\": \"order-po-98421\",\n  \"runImmediately\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List subscriptions",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/webhook-subscriptions?page=0&pageSize=25",
            "header": []
          }
        },
        {
          "name": "Cancel subscription",
          "request": {
            "method": "DELETE",
            "url": "{{base_url}}/webhook-subscriptions/{{subscription_id}}",
            "header": []
          }
        }
      ]
    },
    {
      "name": "Local receiver check",
      "item": [
        {
          "name": "Test local receiver",
          "request": {
            "method": "POST",
            "url": "{{receiver_base_url}}/panvaya/ocean",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-Custom-Webhook-Secret",
                "value": "{{receiver_secret}}"
              },
              {
                "key": "X-Panvaya-Delivery-Id",
                "value": "{{delivery_id}}"
              },
              {
                "key": "X-Panvaya-Subscription-Id",
                "value": "{{subscription_id}}"
              },
              {
                "key": "X-Panvaya-Product",
                "value": "WEBHOOK_SEA_TRACKING"
              },
              {
                "key": "X-Panvaya-Environment",
                "value": "live"
              },
              {
                "key": "X-Panvaya-Sequence",
                "value": "1"
              },
              {
                "key": "X-Panvaya-Timestamp",
                "value": "1791633600"
              },
              {
                "key": "X-Panvaya-Schema-Version",
                "value": "v1"
              },
              {
                "key": "X-Panvaya-External-Reference",
                "value": "order-po-98421"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"data\": {\n    \"reference\": {\n      \"number\": \"MSKU8094830\",\n      \"type\": \"container\"\n    },\n    \"shipping_line\": {\n      \"scac\": \"MSCU\",\n      \"name\": \"Mediterranean Shipping Company\"\n    },\n    \"status\": \"IN_TRANSIT\",\n    \"journey\": {\n      \"origin\": {\n        \"location_id\": 1,\n        \"estimated_departure_at\": null,\n        \"actual_departure_at\": null,\n        \"estimated_arrival_at\": null,\n        \"actual_arrival_at\": null\n      },\n      \"port_of_lading\": {\n        \"location_id\": 1,\n        \"estimated_departure_at\": null,\n        \"actual_departure_at\": \"2026-10-04T08:15:00Z\",\n        \"estimated_arrival_at\": null,\n        \"actual_arrival_at\": null\n      },\n      \"port_of_discharge\": {\n        \"location_id\": 2,\n        \"estimated_departure_at\": null,\n        \"actual_departure_at\": null,\n        \"estimated_arrival_at\": \"2026-10-18T14:30:00Z\",\n        \"actual_arrival_at\": null\n      },\n      \"destination\": {\n        \"location_id\": 2,\n        \"estimated_departure_at\": null,\n        \"actual_departure_at\": null,\n        \"estimated_arrival_at\": null,\n        \"actual_arrival_at\": null\n      }\n    },\n    \"locations\": [\n      {\n        \"id\": 1,\n        \"name\": \"Shanghai\",\n        \"state\": null,\n        \"country\": \"China\",\n        \"country_code\": \"CN\",\n        \"locode\": \"CNSHA\",\n        \"latitude\": 31.23,\n        \"longitude\": 121.47,\n        \"timezone\": \"Asia/Shanghai\"\n      },\n      {\n        \"id\": 2,\n        \"name\": \"Los Angeles\",\n        \"state\": \"California\",\n        \"country\": \"United States\",\n        \"country_code\": \"US\",\n        \"locode\": \"USLAX\",\n        \"latitude\": 33.74,\n        \"longitude\": -118.27,\n        \"timezone\": \"America/Los_Angeles\"\n      }\n    ],\n    \"transports\": [\n      {\n        \"id\": 1,\n        \"mode\": \"vessel\",\n        \"name\": \"MSC GULSUN\",\n        \"imo\": 9839430,\n        \"call_sign\": null,\n        \"mmsi\": null,\n        \"flag\": null,\n        \"vehicle_number\": null,\n        \"voyage_number\": \"639W\"\n      }\n    ],\n    \"containers\": [\n      {\n        \"number\": \"MSKU8094830\",\n        \"equipment\": null,\n        \"status\": \"IN_TRANSIT\",\n        \"events\": [\n          {\n            \"id\": 1,\n            \"location_id\": 1,\n            \"event_code\": \"DEPA\",\n            \"event_name\": \"Departure from port\",\n            \"event_category\": \"transport\",\n            \"carrier_event_name\": \"Vessel departed\",\n            \"event_time\": \"2026-10-04T08:15:00Z\",\n            \"actual\": true,\n            \"transport_id\": 1\n          },\n          {\n            \"id\": 2,\n            \"location_id\": 2,\n            \"event_code\": \"ARRI\",\n            \"event_name\": \"Arrival at port\",\n            \"event_category\": \"transport\",\n            \"carrier_event_name\": \"Expected arrival\",\n            \"event_time\": \"2026-10-18T14:30:00Z\",\n            \"actual\": false,\n            \"transport_id\": 1\n          }\n        ]\n      }\n    ],\n    \"route_data\": null\n  },\n  \"errors\": null\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          }
        }
      ]
    }
  ]
}