{ "swagger": "2.0", "info": { "title": "Azure Maps Traffic Service", "version": "1.0", "description": "Azure Maps Traffic REST APIs" }, "host": "atlas.microsoft.com", "schemes": [ "https" ], "consumes": [], "produces": [ "application/json" ], "securityDefinitions": { "AADToken": { "type": "oauth2", "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "flow": "implicit", "description": "These are the [Microsoft Entra OAuth 2.0](https://docs.microsoft.com/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure role-based access](https://docs.microsoft.com/azure/role-based-access-control/overview) control it can be used to control access to Azure Maps REST APIs. Azure role-based access controls are used to designate access to one or more Azure Maps resource account or sub-resources. Any user, group, or service principal can be granted access via a built-in role or a custom role composed of one or more permissions to Azure Maps REST APIs.\n\nTo implement scenarios, we recommend viewing [authentication concepts](https://aka.ms/amauth). In summary, this security definition provides a solution for modeling application(s) via objects capable of access control on specific APIs and scopes.\n\n#### Notes\n* This security definition **requires** the use of the `x-ms-client-id` header to indicate which Azure Maps resource the application is requesting access to. This can be acquired from the [Maps management](https://aka.ms/amauthdetails) API.\n* \nThe `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Microsoft Entra ID configurations. \n* \nThe Azure role-based access control is configured from the [Azure management plane](https://aka.ms/amrbac) via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.\n* \nUsage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* For more information on Microsoft identity platform, see [Microsoft identity platform overview](https://learn.microsoft.com/entra/identity-platform/v2-overview).", "scopes": { "https://atlas.microsoft.com/.default": "https://atlas.microsoft.com/.default" } }, "SharedKey": { "type": "apiKey", "description": "This is a shared key that is provisioned when you [Create an Azure Maps account](https://docs.microsoft.com/azure/azure-maps/quick-demo-map-app#create-an-azure-maps-account) in the Azure portal or using PowerShell, CLI, Azure SDKs, or REST API.\n\n With this key, any application can access all REST API. In other words, this key can be used as a master key in the account that they are issued in.\n\n For publicly exposed applications, our recommendation is to use the [confidential client applications](https://docs.microsoft.com/azure/azure-maps/authentication-best-practices#confidential-client-applications) approach to access Azure Maps REST APIs so your key can be securely stored.", "name": "subscription-key", "in": "query" }, "SasToken": { "type": "apiKey", "description": "This is a shared access signature token is created from the List SAS operation on the [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.\n\n With this token, any application is authorized to access with Azure role-based access controls and fine-grain control to the expiration, rate, and region(s) of use for the particular token. In other words, the SAS Token can be used to allow applications to control access in a more secured way than the shared key.\n\n For publicly exposed applications, our recommendation is to configure a specific list of allowed origins on the [Map account resource](https://aka.ms/amauth) to limit rendering abuse and regularly renew the SAS Token.", "name": "SAS Token", "in": "header" } }, "security": [ { "AADToken": [ "https://atlas.microsoft.com/.default" ] }, { "SharedKey": [] }, { "SasToken": [] } ], "responses": {}, "parameters": { "ApiVersion": { "name": "api-version", "description": "Version number of Azure Maps API.", "type": "string", "in": "query", "required": true, "default": "1.0", "x-ms-parameter-location": "client" }, "TileFormat": { "name": "format", "description": "Desired format of the response. Possible values are png & pbf.", "type": "string", "in": "path", "required": true, "enum": [ "png", "pbf" ], "x-ms-enum": { "name": "TileFormat", "modelAsString": true, "values": [ { "value": "png", "description": "An image in the png format. Supports zoom levels 0 through 18." }, { "value": "pbf", "description": "Vector graphic in the pbf format. Supports zoom levels 0 through 22." } ] }, "x-ms-parameter-location": "method" }, "RasterZoom": { "name": "zoom", "in": "query", "description": "Zoom level for the desired tile. Zoom value must be in the range: 0-22 (inclusive).\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/azure/location-based-services/zoom-levels-and-tile-grid) for details.", "required": true, "type": "integer", "format": "int32", "x-ms-parameter-location": "method" }, "RasterVectorZoom": { "name": "zoom", "in": "query", "description": "Zoom level for the desired tile. For _raster_ tiles, value must be in the range: 0-22 (inclusive). For _vector_ tiles, value must be in the range: 0-22 (inclusive).\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/azure/location-based-services/zoom-levels-and-tile-grid) for details.", "required": true, "type": "integer", "format": "int32", "x-ms-parameter-location": "method" } }, "paths": { "/traffic/flow/tile/{format}": { "get": { "summary": "Use to get 256 x 256 pixel tiles showing traffic flow.", "description": "\n\n> [!NOTE]\n>\n> **Azure Maps Traffic v1 service retirement**\n>\n> The Azure Maps [Traffic v1](/rest/api/maps/traffic?view=rest-maps-1.0) service is now deprecated and will be retired on 3/31/28. To avoid service disruptions, all calls to Traffic v1 service will need to be updated by 3/31/28. For more information, see [Migrate Azure Maps Traffic 1.0 APIs](/azure/azure-maps/migrate-traffic-v1-api).\n\nThe `Traffic Flow Tile` API is an HTTP `GET` request that returns real-time information about traffic conditions in 256 x 256 pixel tiles that show traffic flow. All tiles use the same grid system. Because the traffic tiles use transparent images, they can be layered on top of map tiles to create a compound display. The Flow tiles use colors to indicate either the speed of traffic on different road segments, or the difference between that speed and the free-flow speed on the road segment in question.", "operationId": "Traffic_GetTrafficFlowTile", "x-ms-examples": { "Request tile depicting the traffic flow": { "$ref": "./examples/GetTrafficFlowTile.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "#/parameters/TileFormat" }, { "name": "style", "in": "query", "description": "
The style to be used to render the tile.
", "required": true, "type": "string", "enum": [ "absolute", "relative", "relative-delay", "reduced-sensitivity" ], "x-ms-enum": { "name": "TrafficFlowTileStyle", "modelAsString": true, "values": [ { "value": "absolute", "description": "Colors will reflect the absolute speed measured. Absolute speed is the capability to access the full speed." }, { "value": "relative", "description": "This is the speed relative to free-flow, highlighting areas of congestion visualizing the traffic flow. Free-flow refers to conditions where there is no congestion and traffic can follow the speed limits. The most used option to visualize traffic flow on a map." }, { "value": "relative-delay", "description": "Displays relative colors only where they are different from the free-flow speeds. This option will only highlights areas of congestion." }, { "value": "reduced-sensitivity", "description": "Displays relative colors but a larger difference from freeflow is required for segments to change the color. This mode only valid when format is png." } ] } }, { "$ref": "#/parameters/RasterVectorZoom" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/xTileIndex" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/yTileIndex" }, { "name": "thickness", "in": "query", "description": "The value of the width of the line representing traffic. This value is a multiplier and the accepted values range from 1 - 20. The default value is 10. This parameter is not valid when format is pbf.", "type": "integer", "format": "int32", "minimum": 1, "maximum": 20 } ], "produces": [ "application/json", "image/jpeg", "image/png", "image/pbf", "application/vnd.mapbox-vector-tile" ], "responses": { "200": { "description": "This image is returned from a successful Traffic Flow Tile call", "schema": { "type": "object", "format": "file", "readOnly": true }, "headers": { "Content-Type": { "type": "string", "description": "The content-type for the response." } } }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/traffic/flow/segment/{format}": { "get": { "summary": "Use to get information about the speeds and travel times of the specified section of road.", "description": "\n\n> [!NOTE]\n>\n> **Azure Maps Traffic v1 service retirement**\n>\n> The Azure Maps [Traffic v1](/rest/api/maps/traffic?view=rest-maps-1.0) service is now deprecated and will be retired on 3/31/28. To avoid service disruptions, all calls to Traffic v1 service will need to be updated by 3/31/28. For more information, see [Migrate Azure Maps Traffic 1.0 APIs](/azure/azure-maps/migrate-traffic-v1-api).\n\nThe `Traffic Flow Segment` API is an HTTP `GET` request that provides information about the speeds and travel times of the road fragment closest to the given coordinates. It is designed to work alongside the Flow layer of the [Render](/rest/api/maps/render) Service to support clickable flow data visualizations. With the `Traffic Flow Segment` API, the client side can connect any place in the map with flow data on the closest road and present it to the user.", "operationId": "Traffic_GetTrafficFlowSegment", "x-ms-examples": { "Request traffic flow segment information": { "$ref": "./examples/GetTrafficFlowSegment.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ResponseFormat" }, { "name": "style", "in": "query", "description": "The style to be used to render the tile. Valid values are absolute which returns colors reflecting the absolute speed measured, relative which returns the speed relative to free-flow, Relative-delay which displays relative speeds only where they are different from the freeflow speeds", "required": true, "type": "string", "enum": [ "absolute", "relative", "relative-delay" ], "x-ms-enum": { "name": "TrafficFlowSegmentStyle", "modelAsString": true } }, { "$ref": "#/parameters/RasterZoom" }, { "name": "query", "in": "query", "description": "Coordinates of the point close to the road segment. This parameter is a list of four coordinates, containing two coordinate pairs (lat, long, lat, long), and calculated using EPSG4326 projection. When this endpoint is called directly, coordinates are passed in as a single string containing four coordinates, separated by commas.", "required": true, "x-ms-client-name": "coordinates", "type": "array", "collectionFormat": "csv", "minItems": 2, "maxItems": 2, "items": { "type": "number", "format": "double" } }, { "name": "unit", "in": "query", "description": "Unit of speed in KMPH or MPH", "type": "string", "enum": [ "KMPH", "MPH" ], "x-ms-enum": { "name": "SpeedUnit", "modelAsString": true, "values": [ { "value": "KMPH", "description": "Kilometers Per Hour" }, { "value": "MPH", "description": "Miles Per Hour" } ] } }, { "name": "thickness", "in": "query", "description": "The value of the width of the line representing traffic. This value is a multiplier and the accepted values range from 1 - 20. The default value is 10.", "type": "integer", "format": "int32", "minimum": 1, "maximum": 20 }, { "name": "openLr", "in": "query", "description": "Boolean on whether the response should include OpenLR code", "type": "boolean" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/TrafficFlowSegmentData" } }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/traffic/incident/tile/{format}": { "get": { "summary": "Use to get 256 x 256 pixel tiles showing traffic incidents.", "description": "\n\n> [!NOTE]\n>\n> **Azure Maps Traffic v1 service retirement**\n>\n> The Azure Maps [Traffic v1](/rest/api/maps/traffic?view=rest-maps-1.0) service is now deprecated and will be retired on 3/31/28. To avoid service disruptions, all calls to Traffic v1 service will need to be updated by 3/31/28. For more information, see [Migrate Azure Maps Traffic 1.0 APIs](/azure/azure-maps/migrate-traffic-v1-api).\n\nThe `Traffic Incident Tile` API is an HTTP `GET` request that returns 256 x 256 pixel tiles showing traffic incidents. All tiles use the same grid system. Because the traffic tiles use transparent images, they can be layered on top of map tiles to create a compound display. Traffic tiles render graphics to indicate traffic on the roads in the specified area.", "operationId": "Traffic_GetTrafficIncidentTile", "x-ms-examples": { "Request a tile depicting a traffic incident": { "$ref": "./examples/GetTrafficIncidentTile.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "#/parameters/TileFormat" }, { "name": "style", "in": "query", "description": "The style to be used to render the tile. This parameter is not valid when format is pbf.", "required": true, "type": "string", "enum": [ "s1", "s2", "s3", "night" ], "x-ms-enum": { "name": "TrafficIncidentTileStyle", "modelAsString": true, "values": [ { "value": "s1", "description": "Creates traffic lines with colored chevrons indicating severity." }, { "value": "s2", "description": "Creates plain lines with certain degree of glow." }, { "value": "s3", "description": "Creates plain lines with certain degree of glow, different from the s2 style." }, { "value": "night", "description": "Night style." } ] } }, { "$ref": "#/parameters/RasterVectorZoom" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/xTileIndex" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/yTileIndex" }, { "name": "t", "x-ms-client-name": "trafficState", "in": "query", "description": "Reference value for the state of traffic at a particular time, obtained from the Viewport API call, trafficModelId attribute in trafficState field. It is updated every minute, and is valid for two minutes before it times out. Use -1 to get the most recent traffic information. Default: most recent traffic information.", "type": "string" } ], "produces": [ "application/json", "image/jpeg", "image/png", "image/pbf", "application/vnd.mapbox-vector-tile" ], "responses": { "200": { "description": "This object is returned from a successful Traffic Incident Tile call", "schema": { "type": "object", "format": "file", "readOnly": true }, "headers": { "Content-Type": { "type": "string", "description": "The content-type for the response." } } }, "default": { "$ref": "../../../Common/preview/1.0/common.json#/responses/default" } } } }, "/traffic/incident/detail/{format}": { "get": { "summary": "Use to get information on traffic incidents inside a given bounding box.", "description": "\n\n> [!NOTE]\n>\n> **Azure Maps Traffic v1 service retirement**\n>\n> The Azure Maps [Traffic v1](/rest/api/maps/traffic?view=rest-maps-1.0) service is now deprecated and will be retired on 3/31/28. To avoid service disruptions, all calls to Traffic v1 service will need to be updated by 3/31/28. For more information, see [Migrate Azure Maps Traffic 1.0 APIs](/azure/azure-maps/migrate-traffic-v1-api).\n\nThe `Traffic Incident Detail` API is an HTTP `GET` request that provides information on traffic incidents inside a given bounding box, based on the current [Traffic Model ID](#uri-parameters). The Traffic Model ID is available to grant synchronization of data between calls and API's. The Traffic Model ID is a key value for determining the currency of traffic incidents. It is updated every minute, and is valid for two minutes before it times out. It is used in rendering [incident tiles](https://docs.microsoft.com/rest/api/maps/traffic/gettrafficincidenttile). It can be obtained from the [Viewport](https://docs.microsoft.com/rest/api/maps/traffic/gettrafficincidentviewport) API.", "operationId": "Traffic_GetTrafficIncidentDetail", "x-ms-examples": { "Request information about a traffic incident": { "$ref": "./examples/GetTrafficIncidentDetail.json" } }, "parameters": [ { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ClientId" }, { "$ref": "#/parameters/ApiVersion" }, { "$ref": "../../../Common/preview/1.0/common.json#/parameters/ResponseFormat" }, { "name": "style", "in": "query", "description": "The style that will be used to render the tile in Traffic [Incident Tile](https://docs.microsoft.com/rest/api/maps/traffic/gettrafficincidenttile) API. This will have an effect on the coordinates of traffic incidents in the reply.", "required": true, "type": "string", "enum": [ "s1", "s2", "s3", "night" ], "x-ms-enum": { "name": "IncidentDetailStyle", "modelAsString": true, "values": [ { "value": "s1", "description": "Creates traffic lines with colored chevrons indicating severity." }, { "value": "s2", "description": "Creates plain lines with certain degree of glow." }, { "value": "s3", "description": "Creates plain lines with certain degree of glow, different than the s2 style." }, { "value": "night", "description": "Night style." } ] } }, { "name": "boundingbox", "in": "query", "description": "The `boundingbox` is represented by two value pairs describing it's corners (first pair for lower left corner and second for upper right). The pairs can either be specified using any of the `projection`'s specified below (e.g., _minY,minX,maxY,maxX_) or by two latitude-longitude pairs (e.g., _minLat,minLon,maxLat,maxLon_).