Bing Webmaster API Overview

API Documentation

The Bing Webmaster API document starts here, but it gets a little confusing. For example, as you navigate around, you will see three similar, but different, navigation nodes. As you navigate around, they seem to appear and disappear, which can be a bit confusing.

The actual methods are listed under the API Reference node, on the IWebmasterApi Members page. The API supports plain old XML (referred to as ‘POX’ in the documentation), JSON and SOAP. I much prefer JSON, because the world has shifted that way. Access can be either Oauth or API Key, and the API Key is the easiest to use — simply follow the instructions on the Getting Started page to get your own API key.

The JSON endpoint is
https://ssl.bing.com/webmaster/api.svc/json/METHOD_NAME?apikey=API_KEY
and the method names can be found in the API Reference linked above.

bing api reference

Finding Help

I am not a big one to ask for help, preferring to look up an answer. With the Bing Webmaster API, there was a complete absence of helpful articles or postings on the subject back in 2014 when I started working with it; it has improved a little since then.

The closest I could find to a support forum was the Bing Webmaster Forum (closed long ago), but even that contained nothing significant. The FAQ was written in 2010 and the API came out in 2012, so that’s of no help. There are a few more recent responses, but nothing about the API.

Over the years, I found Fabrice Canel from Microsoft seems to have the best access to the team behind the API. So far, none of the new features appearing over the past year have made their way into the API.

Functional Mapping

When I start working with a new API, the first thing I do is to map out the various method calls against the major groupings in the web user interface. This serves several purposes: first, because people usually look to the API to automate things they have done manually, and the web interface is what they are familiar with. A lot of APIs use a completely different naming convention for the API and their web interface. In my applications, I group these functions into wizards and try to name them consistent with the web terminology so people can find what they are looking for (intuitive = like something you are already familiar with).

Note that the API came out in 2012, and my initial mapping was done in 2014. As of 2024, a couple of things have changed just a bit in the API, but it remains basically the same. The web interface, however, has been completely overhauled, and the features (and data offered) differ a fair amount.

The second reason I map out all the API calls is that I need to plan my application interface, and understanding the various parameters for each function lets me reuse various design elements in the wizard panels. The third reason is that it provides a cross reference for validating queries — are the results the same as the web interface? I find it surprising how some applications deliver slightly different results from the API, or require some special combination of parameters, to reproduce what people see in the web interface. Bing’s API data seems consistent, but there are a number of things you can’t get in the API.

Page Traffic or Inbound Links?

Here is the mapping that I built for the Bing Webmaster API back in 2014. All parameters seem to be required, although some could have empty values (country, language). Some initial observations:

  • they use the parameter ‘page’ in several methods as a page counter (integer), but in one method to specify a web page (string).
  • some of the methods have examples with responses, which really helps in understanding some of the terse descriptions.
  • it is not immediately clear what the differences might be between the parameters ‘url’, ‘feedUrl’, ‘page’ and ‘link’ might be. They all seem to refer to web links and mean different things in different methods…and not consistently.
  • looking at which methods do not have a siteUrl parameter makes it really easy to identify the methods that are not site-specific.
  • In my use case (reporting), I have little need for administrative operations, so I group them into ‘Other’. I also ignore all of the Add… Remove… and Submit… methods.

Selected Commands

The rest of this site contains a few selected methods from the API, to give you some of the insights I have gained, as well as provide one more example of how you might use them.