Understanding Bing Maps Transactions
Note
Bing Maps for Enterprise service retirement
Bing Maps for Enterprise is deprecated and will be retired. Free (Basic) account customers can continue to use Bing Maps for Enterprise services until June 30th, 2025. Enterprise account customers can continue to use Bing Maps for Enterprise services until June 30th, 2028. To avoid service disruptions, all implementations using Bing Maps for Enterprise REST APIs and SDKs will need to be updated to use Azure Maps by the retirement date that applies to your Bing Maps for Enterprise account type.
Azure Maps is Microsoft's next-generation maps and geospatial services for developers. Azure Maps has many of the same features as Bing Maps for Enterprise, and more. To get started with Azure Maps, create a free Azure subscription and an Azure Maps account. For more information about azure Maps, see Azure Maps Documentation. For migration guidance, see Bing Maps Migration Overview.
When you use any Bing Maps API with a Bing Maps Key (you must have a Bing Maps Account), transactions are recorded. Transactions track API usage and can be billable or non-billable. For example, using the Bing Maps V8 Web Control to show a map on a web page or geocoding an address using the Bing Maps REST Services are both billable transactions, while deleting a data source (a spatial database that you create using the Bing Spatial Data Services) is not.
You can find descriptions of the transactions for each Bing Maps API in the tables below, and you can view transaction totals over time on the Bing Maps Account Center. For more information, see Viewing Usage Reports. Note that it may take up to 24 hours for new transactions to appear.
Viewing Usage Reports
Follow these steps to view a transaction history for a Bing Maps Key and its associated applications.
View usage report
Sign in to the Bing Maps Dev Center.
Click Usage Report under My account.
View usage report by key
Sign in to the Bing Maps Dev Center.
Click My Keys under My account.
Click the Usage Report link next to the Bing Maps key you would like a report for.
Additional Notes
To change the range of dates for the report, use the options under the Usage Period field.
To export the data in the report, use the options under the Export field.
Billable versus non-billable transactions
Only billable transactions count towards the free-use limits for Basic keys, and Enterprise keys are only charged for billable transactions. Non-billable transactions do not incur charges and do not count towards free-use limits. To determine if your application will qualify for free use and for info about licensing and transaction limits, please see the Bing Maps licensing page and review the Bing Maps Terms of Use.
Using Session IDs to make billable transactions non-billable
In the following description, Bing Maps services refer to Bing Maps REST Services and Bing Spatial Data Services1. Bing Maps controls refer to Bing Maps V8 Web Control, Bing Maps WPF Control, and Windows 10 UWP Map control.
Bing Maps service requests originating from a Bing Maps control that use a session ID instead of the Bing Maps key are non-billable up to 25 requests per session. The 26th transaction and every transaction thereafter will be billable. For example, if you make a Bing Maps REST Services request to geocode an address from the Bing Maps V8 web control and use the Map.getCredentials method to get the session ID for authentication, the resulting transaction is recorded as non-billable even though it is listed as a billable transaction in the table below.
You must use the Bing Maps Key that you used to load the map control to request a session ID. This session ID is only valid for the map control session. For the Bing Maps V8 web control, a session begins with the load of the map into a user’s browser and ends when the browser is closed or the user moves to a different page. Similarly for the WPF control, a session begins when the map control is loaded by the application and ends when the application is closed. Note that the Windows 10 UWP Map control does not provide access to session keys but instead provides native geocoding and routing functionalities which automatically make use of sessions. For more information about how to get a session ID from the Bing Maps Key, see Using the REST Services with .NET and Map Class. Note that if you make service requests with a Bing Maps Key instead of a session ID within the session, you will be charged for all billable requests.
Bing Maps Transactions by API
The following tables define transactions for all the APIs.
Map Control APIs (Web V8, UWP, WPF, iOS, Android, Unity)
Category | Bing Maps API | Billable | Category Description |
---|---|---|---|
iOS-Control | iOS Control | Yes | Any time a session is started and uses the Bing Maps iOS control with a valid Bing Maps Key, one (1) transaction is counted. A session begins with the load of the Bing Maps iOS control by the application and ends when the application is closed or the control is disposed. Panning, zooming, changing of the map type (i.e.: road, aerial, etc.) or overlaying data on the map within the session doesn't cause additional transactions to be accrued. Anytime the Map Services API is used without a map, one (1) transaction is counted. All REST service requests that originate from Map Services and use a session ID are not billable when they are made from within a session. |
Android-Control | Android Control | Yes | Any time a session is started and uses the Bing Maps Android control with a valid Bing Maps Key, one (1) transaction is counted. A session begins with the load of the Bing Maps Android control by the application and ends when the application is closed or the control is disposed. Panning, zooming, changing of the map type (i.e.: road, aerial, etc.) or overlaying data on the map within the session doesn't cause additional transactions to be accrued. Anytime the Map Services API is used without a map, one (1) transaction is counted. All REST service requests that originate from Map Services and use a session ID are not billable when they are made from within a session. |
Web-V8-Control (formerly AjaxSession-V8) | Web Control | Yes | Any time a session that uses the Bing Maps Version 8.0 web control, is started with a valid Bing Maps Key, one (1) transaction is counted. A session begins with the load of the Bing Maps Web Control into a user’s browser and ends when the browser is closed or the user moves to a different page. Panning, zooming, changing of the map type (i.e.: road, aerial, etc.) or overlaying data on the map within the session doesn't cause additional transactions to be accrued. Anytime the Autosuggest Module is used without a map and a user selects a location suggestion from the menu one (1) transaction is counted. When using the AutoSuggest Module, transactions are not logged for user key strokes or based on the number of location results that are returned in the Autosuggest menu. All REST or Spatial Data2 service requests that use a session ID are not billable when they are made from within a session. |
Win10-Control (formerly Win10-Native) | Windows 10 UWP Map control | Yes | Any time a session is started and uses the Windows 10 UWP Map control with a valid Bing Maps Key, one (1) transaction is counted. A session begins with the load of the Windows 10 UWP Map control in an application and ends when the application is closed or the control is disposed. Panning, zooming, changing of the map type (i.e.: road, aerial, etc.) or overlaying data on the map within the session doesn't cause additional transactions to be accrued. Anytime the Map Services API is used without a map, one (1) transaction is counted. All REST service requests that originate from Map Services and use a session ID are not billable when they are made from within a session. |
WPF-Control (formerly WPFSession) | WPF Control | Yes | Any time a session is started and uses the Bing Maps WPF control with a valid Bing Maps Key, one (1) transaction is counted. A session begins with the load of the Bing Maps WPF control by the application and ends when the application is closed or the control is disposed. Panning, zooming, changing of the map type (i.e.: road, aerial, etc.) or overlaying data on the map within the session doesn't cause additional transactions to be accrued. All REST or Spatial Data2 service requests that use a session ID are not billable when they are made from within a session. |
Unity-Control (PREVIEW) | Unity Control | Yes | Any time an application session is started and uses a MapRenderer component and a MapSession component with a valid Bing Maps Key, one (1) transaction is counted. An application session begins with each initialization of a MapRenderer by the application and ends when the application is closed or the session expires. When a session expires and the application is still active, a new session is created and one (1) transaction is counted. Panning and zooming a MapRenderer doesn't cause additional transactions to be accrued. Any time the MapSession component's GetRegion API is called without a MapRenderer session already being active, one (1) transaction is counted. Any time a Map Service API is called, i.e.: MapLocationFinder, one (1) transaction is counted. |
2All Spatial Data Services requests over one (1) million per year are billable even when a session ID is used.
REST Services
Category | Bing Maps API | Billable | Category Description |
---|---|---|---|
RESTAutosuggest | REST Services | Yes3 | Any time ten (10) Autosuggest URL requests are made to get suggested entity information, one (1) transaction is counted. |
RESTElevations | REST Services | Yes3 | Any time an Elevations URL request is made to get elevation data, one (1) transaction is counted. |
RESTImagery | REST Services | Yes3 | Any time an Imagery URL request is made to get a static map, to get static map metadata or to get imagery metadata that contains a map tile URI, one (1) transaction is counted. Note: This transaction type has been superseded by the more specific RESTImagery-Metadata, RESTImagery-StaticMap and RESTImagery-StaticMapWithRoute transaction types. |
RESTImagery-Metadata | REST Services | Yes3 | Any time an Imagery URL request is made to get imagery metadata that contains a map tile URI, one (1) transaction is counted. |
RESTImagery-StaticMap | REST Services | Yes3 | Any time an Imagery URL request is made to get a static map, one (1) transaction is counted. |
RESTImagery-StaticMapWithRoute | REST Services | Yes3 | Any time an Imagery URL request is made to get a static map, one (1) transaction is counted. |
RESTImagery-BasicMetadata | REST Services | No | Any time an Imagery URL request is made to get basic imagery metadata that does not contain a map tile URI, one (1) transaction is counted. |
RESTLocalInsights | REST Services | Yes3 | Any time a Local Insights URL request is made, one (1) transaction is counted. |
RESTLocalSearch | REST Services | Yes3 | Any time a Local Search URL request is made, one (1) transaction is counted. |
RESTLocationRecog | REST Services | Yes3 | Any time a Location Recognition URL request is made to get location information about entities such as local businesses, natural points of interests, and a reverse geocoded address for a specified latitude and longitude coordinate, one (1) transaction is counted. |
RESTLocations | REST Services | Yes3 | Any time a Locations URL request is made to geocode or reverse-geocode location data, one (1) transaction is counted. Note: This transaction type has been superseded by the more specific RestLocations-Structured, RestLocations-Unstructured and RESTLocations-Reverse transaction types. |
RestLocations-Structured | REST Services | Yes3 | Any time a Locations URL request is made to geocode location data, one (1) transaction is counted. |
RestLocations-Unstructured | REST Services | Yes3 | Any time a Locations URL request is made to geocode location data, one (1) transaction is counted. |
RESTLocations-Reverse | REST Services | Yes3 | Any time a Locations URL request is made to reverse geocode location data, one (1) transaction is counted. |
RESTRoutes | REST Services | Yes3 | Any time a Routes URL request is made to find a route, one (1) transaction is counted. |
RESTTimezone | REST Services | Yes3 | Any time a Time Zone URL request is made to retrieve a time zone for a location by point or query, convert a UTC datetime to a time zone, or retrieve information about IANA the Windows time zone standards, one (1) transaction is counted. |
RESTTraffic | REST Services | Yes3 | Any time a Traffic URL request is made to get traffic incident information, one (1) transaction is counted. |
Route-DistanceMatrix | REST Services | Yes | Any time a synchronous Distance Matrix request is made, one (1) transaction is counted for every four (4) cells calculated in the matrix. |
Route-DistanceMatrixAsync | REST Services | Yes | Any time an asynchronous Distance Matrix request is made, one (1) transaction is counted for every four (4) cells calculated in the matrix. |
Route-DistanceMatrixAsyncCallback | REST Services | No | Any time the status of an asynchronous Distance Matrix request is checked. |
Route-Isochrone | REST Services | Yes3 | Any time a synchronous Isochrone request is made, one (1) transaction is counted. |
Route-IsochroneAsync | REST Services | Yes3 | Any time an asynchronous Isochrone request is made, one (1) transaction is counted. |
Route-IsochroneAsyncCallback | REST Services | No | Any time the status of an asynchronous Isochrone request is checked. |
Routes-OptimizeItinerary | REST Services | Yes | Any time a synchronous Multi-Itinerary Optimization request is made, the number of transactions counted is based on the number of itineraryAgents multiplied by the number of itineraryItems in the request. |
Routes-OptimizeItineraryAsync | REST Services | Yes | Any time an asynchronous Multi-Itinerary Optimization request is made, the number of transactions counted is based on the number of itineraryAgents multiplied by the number of itineraryItems in the request. |
Routes-OptimizeItineraryAsyncCallback | REST Services | No | Any time the status of an asynchronous Multi-Itinerary Optimization request is checked. |
Route-SnapToRoad | REST Services | Yes3 | Any time a synchronous Snap to Road request is made, one (1) transaction is counted. |
Route-SnapToRoadAsync | REST Services | Yes3 | Any time an asynchronous Snap to Road request is made, one (1) transaction is counted. |
Route-SnapToRoadAsyncCallback | REST Services | No | Any time the status of an asynchronous Snap to Road request is checked. |
Route-Truck | REST Services | Yes | Any time a synchronous Truck Routing request is made, three (3) transactions are counted. |
Route-TruckAsync | REST Services | Yes | Any time an asynchronous Truck Routing request is made, three (3) transactions are counted. |
Route-TruckAsyncCallback | REST Services | No | Any time the status of an asynchronous Truck Routing request is checked. |
GeospatialEndpoint | REST Services | No | Any time a Geospatial Endpoint URL request is made, one (1) transaction is counted. |
3This transaction is not billable if the service request is made using a session ID from a Web or WPF Control session or from the AutoSuggest Module of the Web Control.
Spatial Data Services and Data Source Management using the Bing Maps Account Center
Category | Bing Maps API | Billable | Category Description |
---|---|---|---|
Dataflow:BatchGeocode | Spatial Data Services | Yes | Any time a request is made to Create Job, a set of transactions equal to the number of total entities in the geocode request are counted. Any time a data source is geocoded using the Bing Maps Dev Center, a set of transactions equal to the number of total entities in the geocode request are counted. Each row that is geocoded will generate one (1) transactions. |
Dataflow:Create | Spatial Data Services | No | Any time a URL request is made to create a dataflow job to batch geocode entity data by using the Create Job API, one (1) transaction is counted. Any time a URL request is made to stage, publish or rollback a data source by using the Create a Load Data Source Job API, one (1) transaction is counted. Any time a data source is geocoded or published by using the Bing Maps Dev Center, one (1) transaction is counted. |
Dataflow:Get | Spatial Data Services | No | Any time a URL request is made to Get Job Status, one (1) transaction is counted. Any time a URL request is made to Get Load Data Source Status, one (1) transaction is counted. Any time a URL request is made to Get Download Data Source Job Status, one (1) transaction is counted. Any time a data source is geocoded or published by using the Bing Maps Dev Center, one (1) transaction is counted. |
Dataflow:Download | Spatial Data Services | No | Any time a URL request is made to Download Results], one (1) transaction is counted. Any time the geocoded results of non-published data source entity data are downloaded using the Bing Maps Dev Center, one (1) transaction is counted. Note that if you download successful and failed results, these are two separate Dataflow:Download transactions. |
RESTSpatialDataService:GetAllMetadata | Spatial Data Services | No | Any time a URL request is made to get Get Data Source Information that returns metadata for all data sources that are associated with a Bing Maps Account, one (1) transaction is counted. |
RESTSpatialDataService:GetDataSource | Spatial Data Services | No | Any time a URL request is made to Get Data Source Information that returns general information about one or more versions of a single data source, one (1) transaction is counted. |
RESTSpatialDataService:GetDataSourceMetadata | Spatial Data Services | No | Any time a URL request is made to Get Data Source Information that returns metadata for one or more versions of a single data source, one (1) transaction is counted. |
RESTSpatialDataService: ListDataSources |
Spatial Data Services | No | Any time a URL request is made to Get Data Source Information that returns general information about all data sources associated with a Bing Maps Account, one (1) transaction is counted. |
RESTSpatialDataService:DownloadDatasource | Spatial Data Services | No | Any time a URL request is made to Create a Download Job, one (1) transaction is counted. Any time a URL request is made to Get Downloaded Data, one (1) transaction is counted. Any time a published, staged or previous version of a data source is downloaded using the Bing Maps Dev Center, one (1) transaction is counted. |
RESTSpatialDataService:DeleteDataSource | Spatial Data Services | No | Any time a URL request is made to Delete a Data Source, one (1) transaction is counted. Any time a data source is deleted using the Bing Maps Dev Center, one (1) transaction is counted. |
RESTSpatialDataService:SetDataSourcePublicOrPrivate | Spatial Data Services | No | Any time a URL request is made to Make a Data Source Public, one (1) transaction is counted. |
RESTSpatialDataService:Query | Spatial Data Services | Yes4 | Any time a Query API URL request is made to query a data source, one (1) transaction is counted. When a Query by Area URL request is made with an address string that must be geocoded, one RESTLocations transaction is also counted. |
RESTSpatialDataService:Geodata | Spatial Data Services | Yes | Any time a Geodata API URL request is made to get boundary data, one (1) transaction is counted. When a Geodata API URL request is made with an address string that must be geocoded, one RESTLocations transaction is also counted. |
RESTSpatialDataService:QueryPointsOfInterest | Spatial Data Services | Yes4 | Any time a Query API URL request is made to query the PointsOfInterest data source, one (1) transaction is counted. When a Query by Area URL request is made with an address string that must be geocoded, one RESTLocations transaction is also counted. |
4This transaction is not billable if the service request is made using a session ID from an Web or WPF Control session.
Discontinued Map Control APIs (AJAX V7, Silverlight, Windows Store)
Category | Bing Maps API | Billable | Category Description |
---|---|---|---|
Web-Control (formerly AjaxSession) | AJAX Control (DISCONTINUED) | Yes | Any time a session that uses Bing Maps Version 6.x or Version 7.0, is started with a valid Bing Maps Key, one (1) transaction is counted. A session begins with the load of the Bing Maps AJAX Control into a user’s browser and ends when the browser is closed or the user moves to a different page. |
WinStoreAppSession_JavaScript_V1 WinStoreAppSession_JavaScript (for Windows 8 Beta and Preview versions) |
Windows Store apps (DISCONTINUED) | Yes | Any time a session that uses Bing Maps SDK for Windows Store apps using JavaScript is started with a valid Bing Maps Key, one (1) transaction is counted. A session begins with the load of the Bing Maps for JavaScript control into a user’s browser and ends when the browser is closed or the user moves to a different page. |
WinStoreAppSession_CSharp_VB_CPP_V1 WinStoreAppSession_CSharp_VB_CPP (Windows 8 Beta and Preview versions) |
Windows Store apps (DISCONTINUED) | Yes | Any time an application session that uses Bing Maps SDK for Windows Store apps for C#, C++, or Visual Basic is started with a valid Bing Maps Key, one (1) transaction is counted. An application session begins with the load of Bing Maps for Windows Store apps for C#, C++, or Visual Basic control in an application and ends when the application is closed. |
SilverlightSession SilverlightSessionBeta (for beta release of the control) |
Silverlight Control (DISCONTINUED) | Yes - SilverlightSession No – SilverlightSessionBeta |
Any time a session that uses the Bing Maps Silverlight Control is started with a valid Bing Maps Key, one (1) transaction is counted. A session begins with the load of the Bing Maps Silverlight Control into a user’s browser and ends when the browser is closed or the user moves to a different page. |
WindowsPhoneSession_PublicApp | Silverlight Control for Windows Phone (DISCONTINUED) | No | Any time a session begins with the launch of an application that uses the Bing Maps Silverlight Control for Windows Phone, one (1) transaction is counted. This includes all map control interactions and map tile downloads that occur within the application and that use the same session ID until the application is closed. |
iOSSession | iOS Control (DISCONTINUED) | Yes | Any time an application session is started and uses the Bing Maps iOS Control with a valid Bing Maps Key, one (1) transaction is counted. An application session begins with the load of the Bing Maps iOS Control by the application and includes all Bing Maps iOS Control interactions until the application is closed. |
SOAP Services (Discontinued)
Category | Bing Maps API | Billable | Category Description |
---|---|---|---|
WS: Geocode | SOAP Services | Yes5 | Any time a request is made using the GeocodeServiceClient.Geocode Method method, one (1) transaction is counted. |
WS: ReverseGeocode | SOAP Services | Yes5 | Any time a request is made using the GeocodeServiceClient.ReverseGeocode Method, one (1) transaction is counted. |
WS: Get ImageryMetadata | SOAP Services | No | Any time a request is made using the ImageryServiceClient.GetImageryMetadata Method, one (1) transaction is counted. |
WS: GetMapUri | SOAP Services | Yes5 | Any time a request is made using the ImageryServiceClient.GetMapUri Method, one (1) transaction is counted. |
WS: CalculateRoute | SOAP Services | Yes5 | Any time a request is made using the RouteServiceClient.CalculateRoute Method , one (1) transaction is counted. |
WS: CalculateRoutesFromMajorRoads | SOAP Services | Yes5 | Any time a request is made using the RouteServiceClient.CalculateRoutesFromMajorRoads Method and the MajorRoutesOptions.ReturnRoutes Property is set to false, one (1) transacation is counted. Anytime a request is made using the RouteServiceClient.CalculateRoutesFromMajorRoads Method and the MajorRoutesOptions.ReturnRoutes Property is set to true, one (1) transaction for the request and additional transactions for each returned route are counted. |
WS: Search | SOAP Services | Yes5 | Any time a request is made using the SearchServiceClient.Search Method, one (1) transaction is counted. |
WS: PhotoSynthView | SOAP Services | Yes5 | Any time a Synth associated with a Windows Live ID that corresponds to an enterprise Photosynth account is viewed, one (1) transaction is counted. Every Synth is associated with a Windows Live ID. |
5This transaction is not billable if the service request is made using a session ID from an AJAX Control, Silverlight Control, WPF Control, Windows Store app for JavaScript, or Windows Store app for C#, C++, or Visual Basic session.