{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"55e55caa-e516-467c-9fa0-11e419a2a255","name":"MileMaker API","description":"Welcome to the 2nd generation of MileMaker API - premier tool for computing truck-legal routes used by transportation and logistics industry.\n\nThe MileMaker API allows you to search for and route between locations specified by geopgrahic coordinates, house addresses, postal codes, cities, SPLCs, and business listings in North America.\n\nYou can obtain door-to-door driving directions, precise mileage, traffic-based ETA, and accurate toll costs of driving the routes. For customers that want to compute mileage in bulk, a batch API and matrix API endpoints are available.\n\nCustom locations can be created to define your own points of interest. Once created, they automatically become available through general location search in your account.\n\nRoute planning requests can be enhanced with custom geographic areas to avoid.\n\nGPS traces can be uploaded to reconstruct route traveled previously.\n\nTypical flow to use the API:\n\n1. Search for two of more locations, save geo-coordinates of each one.\n    \n2. Plan a route between these locations, specifying vehicle parameters, and route preferences.\n    \n3. Obtain route directions and other reports.\n    \n\n## Getting Started\n\nTo get started\n\n- Sign up for free trial at [MileMaker Free Trial Signup](https://www.milemaker.com/free-trial) or contact us at [support@milemaker.com](https://).\n    \n- Using your personal credentials, sign into your account at [MileMaker WebApp](https://app.milemaker.com) and generate API Key under Organization Profile menu.\n    \n- Clone this collection into your own Postman workspace by clicking on the orange button \"Run In Postman\" at the top of this page.\n    \n- Specify either `username/password` or `api-key` credentials in the collection variables.\n    \n\n| **Collection Variable** | **Value** |\n| --- | --- |\n| `api-key` | API key generated in MileMaker WebApp |\n| `username` | your personal username (optional, if using Bearer tokens) |\n| `password` | your personal password (optional, if using Bearer tokens) |\n\n- Experiment with running example requests in the collection.\n    \n- Note that all API endpoints, except for Batch APIs and Matrix APIs, accept either Bearer Tokens or API Keys, depending on what environment or collection variables are specified. Either `api-key` or `username/password` need to be specified for authentication. The Bearer Tokens are generated automatically when the requests are executed in Postman. No changes to request Authorizaton headers are required in Postman collection to run the requests.\n    \n- Batch APIs and Matrix APIs currently support Bearer Token authorization only that requires `username` and `password` environment or collection variables.\n    \n\nA few other details\n\n- All APIs use secure HTTPS communication, minimum TLS v1.2\n    \n- All POST requests accept and respond in [JSON format](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON).\n    \n- All APIs respond with appropriate [HTTP status codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status)\n    \n- OpenAPI spec can be obtained from [https://api-spec.milemaker.com/openapi.yaml](https://api-spec.milemaker.com/openapi.yaml)\n    \n\n## Authentication And Authorization\n\nMileMaker API supports both API Key authorization and Bearer Token authorization with [Resource Owner Password Auth Flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/resource-owner-password-flow).\n\n### API Keys\n\nTo use API Key generated in [MileMaker WebApp](https://app.milemaker.com), specify `Authorization` header with ApiKey prefix in all API requests.\n\n| Header | Value |\n| --- | --- |\n| `Authorization` | \"ApiKey \\[apikey\\]\" |\n\n### Bearer Tokens\n\nTo use Bearer Token authorization, obtain or renew the token from the [MileMaker Authorization Server](https://idp.milemaker.com). You can find examples of the requests in the Postman collection's Auth folder. To use the token, specify `Authorization` header with Bearer prefix.\n\n| Header | Value |\n| --- | --- |\n| `Authorization` | \"Bearer \\[token\\]\" |\n\n## Versioning\n\nAll endpoints accept the following headers that indicate API version and map version requested by the client.\n\n| Header | Description | Values |\n| --- | --- | --- |\n| `Accept` | API version requested by the client. | `application/vnd.routing.v1+json` or `application/vnd.geocoding.v1+json` |\n| `x-map-key` | Generation of map that powers routing and search functions. | `guide20` or `guide19` |\n\nMap version guide19 ensures route mileage and ETA is backward compatible with previous generation of MileMaker API ([https://milemaker.randmcnally.com](https://milemaker.randmcnally.com)).\n\n## Rate Limits\n\nMileMaker API uses safeguards against bursts of incoming traffic to maximize API stability. If you send many requests in quick succession, you might receive `429` HTTP error. Tream limits as maximums, not as guaranteed throughput. The following rate limits are enforced:\n\n| **Scope** | **Rate Limit** | **Path** | **Value** |\n| --- | --- | --- | --- |\n| Global | Requests per sec | `/location` | 400 |\n| Global | Requests per sec | `/routing` | 200 |\n| Global | Concurrent requests | `/location` | 600 |\n| Global | Concurrent requests | `/routing` | 300 |\n| Organization | Requests per min | `/location` | 10,000 |\n| Organization | Requests per min | `/routing` | 10,000 |\n\nOrganization-specific rate limits are tracked across all users and api-keys within the organization. They can be increased if needed. Please contact [support@milemaker.com](https://mailto:support@milemaker.com) for details.\n\nThe following rate limit headers are included in API responses:\n\n| **Header** | **Value** |\n| --- | --- |\n| `X-RateLimit-Minute-Limit` | maximum number of requests permitted within 1 minute window |\n| `X-RateLimit-Minute-Remaining` | remaining number of requests permitted within 1 min window |\n| `X-RateLimit-Minute-Reset` | unix timestamp of when the rate limit resets for the organization |\n\n## Usage & Billing\n\nAll routing and search API calls incure billable transactions. For pay-as-you-go customers, these are charged on their invoice; for pre-paid customers, they count against their usage quota. Only successful requests are counted.\n\nCalls to search endpoints `/location/search`, `/location/search-by-address`, or `/location/search-by coordinates` incur one geocoding transaction per request. Search requests that return empty response are counted as successful transations.\n\nCalls to single route endpoints `/routing/plan`, `/routing/basic-plan`, `/routing/reconstruct` incur one routing transaction per request, regardless of the number of waypoints/stops along the route. Retrieving routes from cache via `/routing/cache` endpoint does not incur billable transactions.\n\nCalls to the asynchronous batch endpoints `/routing/plan/batch` and `/routing/plan/matrix` incur one geocoding transaction per non-geospatial waypoint and one routing transaction per route in the request.\n\nTransaction usage can be inspected in the [MileMaker WebApp](https://app.milemaker.com) under Organization -> API Usage menu. The reports are updated continuously, typically within minutes.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"21487351","team":3840985,"collectionId":"55e55caa-e516-467c-9fa0-11e419a2a255","publishedId":"2sAXjPzpYA","public":true,"publicUrl":"https://api-docs.milemaker.com","privateUrl":"https://go.postman.co/documentation/21487351-55e55caa-e516-467c-9fa0-11e419a2a255","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":"MileMaker API Documentation"}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.11.6","publishDate":"2026-05-05T18:53:40.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"MileMaker API Documentation","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/56db9c6b9f0c01d31bc242a786b8eb5c1fe0ad4f4b2f6eeca9826ada6d32d884","favicon":"https://res.cloudinary.com/postman/image/upload/v1756235378/team/9bbf08bcc29bc55cc89b7bca0e4aa0c3.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://api-docs.milemaker.com/view/metadata/2sAXjPzpYA"}