Each API Tier has it's own quota for monthly use. Each API End point's quota is metered independantly; so for example if you exceed the Batch Parse quota but not the Parse quota, you can still send individual parse requests. The quota resets at the start of each month.
You are not charged any extra if you exceed the monthly quota, you are simply no longer able to use that end point.
If you have exceeded your quota, you can switch to a higher API plan.
If you are on the Free, Standard, or Pro tiers, you can simply change your plan to a higher tier. We charge pro-rata for the days you are on each plan, so you are only charged for the days that you use each tier.
If you are on the Enterprise tier and have exceeded the quota on that, you can start to customise your Enterprise plan by adding on extra amounts of API quota. To do this, please send us a message detailing what you would like to do, and we will take care of it for you.
We prefer not to receive payments with PayPal; it's best if you enter your credit card details in the Accounts System. However, if PayPal is the only way you can pay for the API, we will accept it for annual payments only. Please contact us and we'll arrange your payment for the year.
We use our own proprietary user agent parsing library. It is the same library which powers the homepage of whatismybrowser.com.
We have been developing this parser since 2010 and it now detects thousands of different browsers & bots and tens of thousands of devices and platforms.
The development process basically works like this:
That's the basic gist of it; sometimes if there's a really weird fragment that we can't figure out, we add it to a list and then on the homepage of whatismybrowser.com, if someone comes along with that fragment in their user agent, we show a small question and form to them, asking if they have any idea about what it might mean.
Occasionally, we reach out to manufacturers too, to ensure that we are detecting their software or platform correctly.
There are also regular maintenance tasks we perform too; for example, we have a number of version number mappings (eg for Kindle devices, Darwin to macOS/iOS version numbers, etc) and we regularly update the mapping information for them.
For example, you can use the Database Search to search for "Chrome user agents on Android tablets" and you will get many, many results from the database. You can get pretty detailed with your queries too - you can search for specific version numbers, dates they were first seen at, hardware types (general mobile/phone/tablet), software types (bots, browsers, applications, in app browsers etc), operating systems, operating platforms and so on.
In short, the user agent database search will return user agent strings that we've seen on the website or via the API which match your search criteria.
The User Agent Parse is for decoding user agents. It doesn't query the database; when you send a user agent to User Agent Parse, our custom software runs each time and analyses the user agent. It figures out the software (Chrome, Firefox, Safari, Googlebot, or hundreds of other software that we know about), it figures out the operating system, the hardware type, software type, platform, if it's a spammy or weird or dangerous user agent and many other things.
In short, if you're trying to decode a user agent, use the User Agent Parse API. If you need to search for a group of user agents that match certain criteria, use the Search API end point.
It is theoretically possible to try to use the User Agent Database to decode user agents. You would do this by searching for the exact user agent you are trying to decode, and then looking at the parse information that the database has for it. However we really, really don't recommend doing this. The problem is that the database would need to have the exact same user agent string as the one you are searching for, for it to work. If a single version number fragment in the user agent you are trying to parse is unique, then you won't get a match.
The Parser doesn't have this problem - you can send it unique user agents (eg a pre-release version of Chrome that we've never seen in our systems before and for which we don't have a database record for yet), and it will still parse the user agent correctly and send you a result.
Yes, absolutely! You are welcome to cache the query results from our API to help speed up duplicate queries and to help keep your quota low.
We recommend a cache-time of no more than a few hours, so you've always got the latest "up to date" version checks and version numbers.
It sounds like your system is getting confused by the semi-colons in the user agent you're trying to parse.
For example, if you send this Internet Explorer user agent:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
but are not handling the semi colons properly, the user agent gets truncated to just Mozilla/5.0 (compatible. The user agent then (correctly-enough) interprets this user agent as Netscape Navigator.
You can tell when this is happening, as the user agent parse response will include a copy of what it received as the user agent to parse. By looking at it, you should notice that your system isn't sending the user agent properly because it doesn't match what you (thought you) sent through.
We've only heard of this problem on systems using Microsoft C# (and only on Version 1 of the API; where user agents are sent as part of the POST Form Body instead of in the JSON of Version 2). Please look at our sample code for a good starting point.
Every bit of detection for user agent parsing is done deliberately and intentionally; if you have a question about it, then we're happy to explain why it's doing what it's doing. We want you to be satisfied with how it works, and perhaps you've found something that's wrong! Either way, get in touch and we can discuss it.
Yes, if you are a large corporate company and need to get your subscription via a reseller company, get in touch! We are happy to provide arrangements like this.
If you have any questions at all: Sales, Integration, or Trouble-shooting, don't hesitate to get in contact with us.