Header Database

Download the lastest release of the whatheaders database, as a single compressed XML file:

Updated Sundays. Send comments to service-at-whatheaders.com.

This data set is in the public domain. You are free to use this information in any of your applications, commercial or free. No warranty or guarantee of reliability is given or implied; use at your own risk. If you don't agree to these terms, do not use this data set.

HTTP request header measurements for mobile devices

The above downloadable XML file contains complete records of anonymously collected measurements from the whatheaders.com service. Each record, serialized as an XML "measurement" element, describes the HTTP request headers a specific web user agent sends during a basic GET request. The HTTP protocol version is also recorded.

This information is almost never accurately documented for a given web-capable device; direct measurement is the only reliable way of getting it. The purpose of the whatheaders database is to make these measurements conveniently and widely available.

Notice the terminology here of "measurements", not "devices". The whatheaders data is very much a raw data set, documenting measurements of HTTP GET requests. This information can then be used to augment existing mobile device databases.

While whatheader's main focus is on mobile (handheld) devices, the full data set also includes measurements from tablets, desktop web browsers, and search engine crawler bots. Each measurement element has a "category" attribute, an attempted classification of the device being measured. Currently it can have one of the following values:

mobile
A handheld mobile device
tablet
A tablet
desktop
A desktop web browser
bot
A search engine crawler or other known bot
unknown
Could not be classified as one of the above
undefined
Shouldn't happen. Indicates an error, please inform the maintainer!

(This classification comes from a heuristic algorithm that is not perfect, so don't take the category as immutable truth. If you see particularly egregious misclassifications, please notify the maintainer by emailing the whole XML of the offending measurement element. Part of the classification relies on the wonderful WURFL mobile device database; as a result, new devices may be misclassified the first few months they are on the market, until their information makes their way into the next WURFL release.)

The "count" attribute indicates how many times this identical measurement has been seen. The potential value is to discern whether there are variations "in the wild" among devices with the same User-Agent string, and perhaps even get a crude estimate of their proportions in population. It's an imperfect measure for many reasons (mainly having to do with the bias of who is pointing their devices' browsers at whatheaders.com, and who isn't), so it remains to be seen how useful this number is in practice.

If the requesting device sent a User-agent header, the Measurement element will also have a "user_agent" attribute of that header's value. This is redundant, and sometimes very convenient.

The header field names and values themselves are simplified in a couple of ways. They appear sorted by field name, and likely not in the same order of the original HTTP request. Also the field names are lowercased. The requesting web browser could be sending User-Agent, user-agent, USER-AGENT or UsEr-AgEnT, and these would all show up as "user-agent" in the measurement record.

In addition, the header values are normalized a bit, to prevent records being separate that really shouldn't. Any reference to 'www.whatheaders.com', 'WHATHEADERS.COM', etc. is changed to just 'whatheaders.com'. And since the referer field can be anything, that header is just omitted from the record if it is present.

This normalization obviously loses some information that might at times be useful. Fortunately, it just applies to the public data set: if you need to know the exact referer string the device is sending, for example, and can get your hands on the actual device, you can point its browser to http://whatheaders.com. The precise values are displayed on the mobile screen, and you can have them emailed to you.

You can improve the quality of this service by making use of whatheaders.com during your own mobile web development, and more importantly, telling other designers and developers about it. The more people are using it, the more data is collected that can be of value to everyone.

If you'd like to help even more, make a habit that whenever you are using a new phone, open its web browser and quickly visit http://whatheaders.com. The request-header information for that particular device will be recorded and made available in the next release. If you are in a store that sells mobile devices, and has demo units you can play with, it's very helpful if you can do this on as many of their devices as you have time for.

(Note that you don't have to use the email feature; just load whatheaders.com in the device's browser, and you're done.)

Please send feedback, suggestions, etc. to service-at-whatheaders.com. Thank you for using the whatheaders database.