API FAQ

Frequently Asked Questions

If you're stuck, please consider:

  • What is the difference between the User Agent Parse end-point and the User Agent Database?

    • The User Agent Database (and Database Search) is for searching the database for many user agents that match certain criteria
    • The User Agent Parse (and Batch Parse) is for decoding user agent strings into the different bits of information.

    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.

    Why would you use each one?

    User Agent Search:
    • Find the 50 most recent Chrome user agents
    • Find 500 user agents for Safari on iPhone that have been seen since 2018
    • Find variations of Googlebot user agents
    User Agent Parse:
    • Decode this user agent and tell me the software name, version, if it's up to date and what operating system they're using

    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.

  • Can I cache the API 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.

  • Why does the user agent parser say the software is "Netscape" when it definitely isn't Netscape?

    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.

  • I'm confused why the parser is detecting a user agent a certain way

    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.

  • Do you work with resellers?

    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.