We offer the ability to download a copy of our User Agent Database for your own use. This database powers our user agent listing as well as the internal system we use to develop our user agent parser.
You can also get a "one-off" download of the database if you don't need regular updates.
Every Sunday at 01:00 UTC we regularly create a database dump (currently containing more than 2,920,985 unique user agents) to our advanced customers. Our user agents date back as far as 2004. It includes the number of times our systems have "seen" each user agent (so you can sort by popularity) as well as the various "parse" fields from our user agent parser. This will allow you to very easily do advanced categorisation. Some user agents are very popular and have been seen millions of times, others are rare and have been seen only a handful of times.
We regularly dump our user agents database and make a download URL available to our Pro and Enterprise customers. We provide the latest download URL via our easy to use API, with the intention being that - if you want - you can automate your system to regularly fetch the latest download from us, unpack it and load it into your system. This process can be entirely automated.
For more information on how you can integrate your system with the API, please refer to our integration guide.
If you would prefer to manually download the database yourself, you can simply paste your API key from our accounts system into the form below and let it make the API request on your behalf. Easy!
|SHA 256 sum:|
|User agent count:|
We usually charge on a pro-rata basis for the API, but we understand that some customers don't want on-going access and instead prefer to download the database only once.
One-off downloads of our user agent database are available by paying for a full month of the Pro tier ($20 AUD).
If you don't need regular downloads of the database and don't want to keep an API account with us, simply register for the API, enter your payment details, switch to the Pro account and download the database. Once you've done that, simply switch down to the Basic/Free tier.
Once the billing cycle ends, we will adjust your invoice to the flat rate of $20 AUD for that month. You will be charged that one time and then no further. If you need another download of it at a later date, simply ensure your billing details are up to date and switch back to the Pro tier to get access again and we'll adjust the invoice accordingly.
Remember; when you are on a Pro or Enterprise plan with us, you get on-going access to our weekly database dumps.
By default, this will not be a "once-off" payment.
If you only want to download the database once, that's fine - you just have to lower your account to the Free/Basic tier manually once you've downloaded the database. We'll charge you for the full month's access since you've downloaded the database, but after that you won't be charged any more.
For this database dump, we have attempted to not include any user agents which we have detected as malicious (we often see XSS or SQL injection attempts in user agents) or as obscene (some people add profanity or "funny" messages to their user agents). We make no guarantees about it but we've done what we can. If you find a user agent which you don't think should be included, please contact us via our Contact form and tell us the id of the user agent and we'll take a look.
This database is provided in a MySQL database dump, CSV and plain text formats.
The MySQL data format is a series of INSERT statements (along with a seperate file which provides the appropriate table structure) for storing all the user agents as well as the results from our user agent parser for each user agent (and also, the number of times each user agent was seen, the first date/time and the last date/time).
The CSV data format is a standard Comma Seperated Variable file also containing all of our user agents as well as seperate fields for the results from our user agent parser for each user agent (and also, the number of times each user agent was seen, the first date/time and the last date/time).
The TXT data format is a standard plain text file containing all of our user agents, each on a seperate line. Note that due to the plain text format, it's not possible to include the parse results (use the CSV file if you want that). This is basically a huge text file containing lots of user agents.
Here is a sample MySQL database dump for you to inspect. It contains the first 100 user agents in our database (which pass our "sanitisation" rules"). It also includes the script to create the appropriate table to store the data. You can experiment with loading it in to your system and inspect the exact format that you'll receive from the full database dump.
We don't believe that user agent strings are (or should be) copy-writable in and of themselves, however we've spent a lot of time collecting, filtering and parsing these user agents, so we ask that you don't re-distribute this collection of user agents, and instead that you support our project by continuing to use the API.
Examples of things that you can do with our user agent database dumps:
Examples of things that you can't do:
If you use this dataset in any academic research or development we would love to be credited and we'd also love to post a link to your research or findings!
Make sure you have read our API Terms and Conditions before using it.
We have built this system to make it easy for you to automate downloading and loading the latest database dump. If you want to do this; please regularly query the API for the latest database dump. When you notice that the SHASUM256, URL or created_at values have changed, it means there's a new database available for you to consume. We create new database dumps weekly; each Sunday morning (UTC). Download the tar.gz from the provided URL and unpack it. There will be three files:
We've constructed the tar.gz file contain two separate sql files: one to create the table and one to insert the user agents into that table. We did this because the assumption is that you will want to regularly insert the new user agents without completely dropping and recreating it - because you might have also had to add your own extra columns or do some other customisation.
We also made sure that the filenames inside the .tar.gz were "static"; they will never change between dumps so it will be easy for your scripts to reference them. Further to this, we've used the insert-ignore option for MySQL Dump, so that the database dump can painlessly be used against the existing table. Of course, if you'd prefer to completely drop and recreate the table, its very easy, simply start by running your own DROP TABLE statement, but we took this approach to give you more flexibility.
Please note, we have intentionally not added any indexes to the table structure other than the Primary Key. We didn't want to assume how you were going to be using the database and potentially waste your resources with unnecessary indexes. However due to the large number of records in the database, if you're doing any sort of querying against it (which we assume you are) the first thing you're going to want to do is put your own index/es on the fields you use in your WHERE queries to help speed them up.
Each MySQL database download includes this file (as a separate .sql which you can choose to load into your database).
For easy reference, here's the database structure for the user agent data we provide:
CREATE TABLE `whatismybrowser_useragent` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_agent` longtext, `times_seen` int(11) NOT NULL, `simple_software_string` varchar(255) DEFAULT NULL, `simple_sub_description_string` varchar(255) DEFAULT NULL, `simple_operating_platform_string` varchar(255) DEFAULT NULL, `software` varchar(255) DEFAULT NULL, `software_name` varchar(255) DEFAULT NULL, `software_name_code` varchar(255) DEFAULT NULL, `software_version` varchar(255) DEFAULT NULL, `software_version_full` varchar(255) DEFAULT NULL, `operating_system` varchar(255) DEFAULT NULL, `operating_system_name` varchar(255) DEFAULT NULL, `operating_system_name_code` varchar(255) DEFAULT NULL, `operating_system_version` varchar(255) DEFAULT NULL, `operating_system_version_full` varchar(255) DEFAULT NULL, `operating_system_flavour` varchar(255) DEFAULT NULL, `operating_system_flavour_code` varchar(255) DEFAULT NULL, `operating_system_frameworks` longtext, `operating_platform` varchar(255) DEFAULT NULL, `operating_platform_code` varchar(255) DEFAULT NULL, `operating_platform_vendor_name` varchar(255) DEFAULT NULL, `software_type` varchar(255) DEFAULT NULL, `software_sub_type` varchar(255) DEFAULT NULL, `software_type_specific` varchar(255) DEFAULT NULL, `hardware_type` varchar(255) DEFAULT NULL, `hardware_sub_type` varchar(255) DEFAULT NULL, `hardware_sub_sub_type` varchar(255) DEFAULT NULL, `hardware_type_specific` varchar(255) DEFAULT NULL, `layout_engine_name` varchar(255) DEFAULT NULL, `layout_engine_version` varchar(255) DEFAULT NULL, `extra_info` longtext, `extra_info_dict` longtext, `capabilities` longtext, `detected_addons` longtext, `first_seen_at` datetime(6) NOT NULL, `last_seen_at` datetime(6) NOT NULL, `updated_at` datetime(6) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Please make sure you've reviewed our Terms and Conditions of the API, in particular the section on the User agent database.
November 30, 2018: This is a new feature and we're looking for feedback and constructive criticism on it. If there's anything you'd like to suggest or request, then don't hesitate to get in touch with us. We hope our database helps you!
February 14, 2019: We just made it to 1 million user agents! That's nearly double what we started with back in November last year!
June 8, 2019: We've just passed 2.1 million user agents! Wow. This is largely due to now loading the user agents we see via our API into the database each day. Our wonderful customers clearly have a wider range of customers and devices than we see only on the homepage of whatismybrowser.com, so we're having an influx of new and interesting data.