{
  "info": {
    "name": "Afdal API v2 — Routing Playground",
    "description": "One public API. All requests use /api/v2/*; set the api_key collection variable before keyed calls.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://api.afdal.tech",
      "type": "string"
    },
    {
      "key": "api_key",
      "value": "",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "0 · Available modes",
      "request": {
        "method": "GET",
        "url": {
          "raw": "{{base_url}}/api/v2/modes",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "api",
            "v2",
            "modes"
          ]
        },
        "description": "Unkeyed discovery: drive and walk routing; drive optimization."
      }
    },
    {
      "name": "1. Shortest road path between two points",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          },
          {
            "key": "X-API-Key",
            "value": "{{api_key}}"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"mode\": \"drive\",\n  \"points\": [\n    {\n      \"lat\": 33.8938,\n      \"lon\": 35.5018\n    },\n    {\n      \"lat\": 33.8963,\n      \"lon\": 35.4841\n    }\n  ]\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{base_url}}/api/v2/route",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "api",
            "v2",
            "route"
          ]
        },
        "description": "shortest_path: distance, driving time, and complete GeoJSON geometry."
      }
    },
    {
      "name": "2. Optimize the order of four stops for one vehicle",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          },
          {
            "key": "X-API-Key",
            "value": "{{api_key}}"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"mode\": \"drive\",\n  \"depot\": {\n    \"lat\": 33.8938,\n    \"lon\": 35.5018\n  },\n  \"stops\": [\n    {\n      \"id\": \"hamra\",\n      \"address\": \"Hamra\",\n      \"lat\": 33.8963,\n      \"lon\": 35.4841\n    },\n    {\n      \"id\": \"achrafieh\",\n      \"address\": \"Achrafieh\",\n      \"lat\": 33.8884,\n      \"lon\": 35.5198\n    },\n    {\n      \"id\": \"badaro\",\n      \"address\": \"Badaro\",\n      \"lat\": 33.8766,\n      \"lon\": 35.5148\n    },\n    {\n      \"id\": \"downtown\",\n      \"address\": \"Downtown Beirut\",\n      \"lat\": 33.8988,\n      \"lon\": 35.5057\n    }\n  ],\n  \"fleet\": {\n    \"vehicles\": 1,\n    \"capacity\": 100\n  },\n  \"planning\": {\n    \"start_minute\": 480,\n    \"end_minute\": 1140,\n    \"service_minutes\": 5,\n    \"time_limit_seconds\": 10,\n    \"end_policy\": \"depot\"\n  }\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{base_url}}/api/v2/optimize",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "api",
            "v2",
            "optimize"
          ]
        },
        "description": "multistop: distance, driving time, and complete GeoJSON geometry."
      }
    },
    {
      "name": "3. Optimize four stops across two vehicles",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          },
          {
            "key": "X-API-Key",
            "value": "{{api_key}}"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"mode\": \"drive\",\n  \"depot\": {\n    \"lat\": 33.8938,\n    \"lon\": 35.5018\n  },\n  \"stops\": [\n    {\n      \"id\": \"hamra\",\n      \"address\": \"Hamra\",\n      \"lat\": 33.8963,\n      \"lon\": 35.4841\n    },\n    {\n      \"id\": \"achrafieh\",\n      \"address\": \"Achrafieh\",\n      \"lat\": 33.8884,\n      \"lon\": 35.5198\n    },\n    {\n      \"id\": \"badaro\",\n      \"address\": \"Badaro\",\n      \"lat\": 33.8766,\n      \"lon\": 35.5148\n    },\n    {\n      \"id\": \"downtown\",\n      \"address\": \"Downtown Beirut\",\n      \"lat\": 33.8988,\n      \"lon\": 35.5057\n    }\n  ],\n  \"fleet\": {\n    \"vehicles\": 2,\n    \"capacity\": 100\n  },\n  \"planning\": {\n    \"start_minute\": 480,\n    \"end_minute\": 560,\n    \"service_minutes\": 20,\n    \"time_limit_seconds\": 10,\n    \"end_policy\": \"depot\"\n  }\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{base_url}}/api/v2/optimize",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "api",
            "v2",
            "optimize"
          ]
        },
        "description": "multivehicle: distance, driving time, and complete GeoJSON geometry."
      }
    },
    {
      "name": "4. Two vehicles with stop time windows and equal capacities",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          },
          {
            "key": "X-API-Key",
            "value": "{{api_key}}"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"mode\": \"drive\",\n  \"depot\": {\n    \"lat\": 33.8938,\n    \"lon\": 35.5018\n  },\n  \"stops\": [\n    {\n      \"id\": \"hamra\",\n      \"address\": \"Hamra\",\n      \"lat\": 33.8963,\n      \"lon\": 35.4841,\n      \"load\": 2,\n      \"window_start\": 540,\n      \"window_end\": 720\n    },\n    {\n      \"id\": \"achrafieh\",\n      \"address\": \"Achrafieh\",\n      \"lat\": 33.8884,\n      \"lon\": 35.5198,\n      \"load\": 2,\n      \"window_start\": 600,\n      \"window_end\": 780\n    },\n    {\n      \"id\": \"badaro\",\n      \"address\": \"Badaro\",\n      \"lat\": 33.8766,\n      \"lon\": 35.5148,\n      \"load\": 2,\n      \"window_start\": 600,\n      \"window_end\": 840\n    },\n    {\n      \"id\": \"downtown\",\n      \"address\": \"Downtown Beirut\",\n      \"lat\": 33.8988,\n      \"lon\": 35.5057,\n      \"load\": 2,\n      \"window_start\": 540,\n      \"window_end\": 780\n    }\n  ],\n  \"fleet\": {\n    \"vehicles\": 2,\n    \"capacity\": 4\n  },\n  \"planning\": {\n    \"start_minute\": 480,\n    \"end_minute\": 1140,\n    \"service_minutes\": 5,\n    \"time_limit_seconds\": 10,\n    \"end_policy\": \"depot\"\n  }\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{base_url}}/api/v2/optimize",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "api",
            "v2",
            "optimize"
          ]
        },
        "description": "constrained_fleet: distance, driving time, and complete GeoJSON geometry."
      }
    },
    {
      "name": "Optional · Geocode a place",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "X-API-Key",
            "value": "{{api_key}}"
          }
        ],
        "url": {
          "raw": "{{base_url}}/api/v2/geocode?q=Beirut%20airport&focus_lat=33.8938&focus_lon=35.5018",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "api",
            "v2",
            "geocode"
          ],
          "query": [
            {
              "key": "q",
              "value": "Beirut airport"
            },
            {
              "key": "focus_lat",
              "value": "33.8938"
            },
            {
              "key": "focus_lon",
              "value": "35.5018"
            }
          ]
        },
        "description": "Address and point-of-interest search."
      }
    }
  ]
}
