WhatIsMyBrowser.com API Legal

Introduction

Thank you for choosing to integrate the WhatIsMyBrowser.com API in to your system. By using the WhatIsMyBrowser.com API (hereforth referred to as "The API"), you agree to be bound by these WhatIsMyBrowser.com API Terms and Conditions (the "Developer Terms") which govern your access to and use of The API service and Access Tokens.

Please read these Developer Terms carefully. If you have any questions or a need to clarify anything, please use the Contact Form on the main WhatIsMyBrowser.com website to get in touch with our team.

You may develop using our API only if you have the legal power to form a contract with us. If you are developing with our API on behalf of an organisation, you are agreeing to these Developer Terms for that organisation and promising that you have the authority to bind that organisation to these Developer Terms. In that case, "you" and "your" will refer to that organisation.

By using The API you signify your agreement to the following terms and conditions, which may be updated from time to time without prior notice to you.

If you do not agree to all of these terms and conditions, you may not use the API and must stop sending requests.

Last revised: August 11, 2020

Business Details

Long Way Research Corporation Pty Ltd

This is an Australian Company, governed by the laws of Australia and Victoria.

Australian Company Number (ACN): 646 178 510

Australian Business Number (ABN): 93 646 178 510

Contact: Contact Form

1. Your system

You must apply to use The API. You will receive an Access Token for the API which allows your systems to access The API.

Any software you develop must comply with these Developer Terms.

We may deny those requests, or revoke access if we believe you are in violation of these API Developer Terms in letter or spirit.

2. Prohibited Actions and Acceptable Use Policy

You and your system must not violate any aspect of our Acceptable Use Policy

2.1 You must adhere to the API specification and not intentionally or carelessly send API requests which do not conform to it. This would mean that your system would be sending our servers unacceptable traffic. Experimenting during initial implementation of the API is fine; but your systems must watch for error codes; in particular the "usage_limit_exceeded" error/message and stop sending requests after that point; until the month ends and your quota is restored. Failure to do this may result in our systems automatically blocking your server/s. If this occurs, please fix your code and contact us to have your servers unblocked.

2.2 You may not attempt to circumvent API limits by creating multiple "Basic/Free" accounts and sharing your usage between them (round-robin, in succession or otherwise). If we detect you doing this, your accounts with us may be terminated immediately and without recourse.

3. Accessing The API

3.1 Using JavaScript to access the API

Our policy regarding JavaScript access to the API has changed.

Previously, we did not allow clients to access The API via JavaScript (Browser based Javascript, not NodeJS) as doing so would expose your user_key to anyone who inspected your JavaScript code; they would then be able to impersonate your account and use your monthly usage. This kind of access was prevented by our servers not sending the appropriate CORS headers to allow it.

Due to popular demand and after our own consideration, we have decided to allow JavaScript access.

Now when you access the API, the response will have a "Access-Control-Allow-Origin": "*" header and "Access-Control-Allow-Methods: POST" header, allowing your JavaScript to access the API.

This does not change anything for our clients who are using normal POST requests from their backend servers (you'll just see two new headers in the response!).

PLEASE NOTE: this is not the recommended way for your website to access the API! You may only access The API using JavaScript if you completely understand and accept that doing so will allow anyone who uses your website to steal your access key and use it for themselves.

If you do decide to put your user_key in your JavaScript so that anyone else can see it, you agree to monitor your API Account usage to try and detect people using your account. You agree that WhatIsMyBrowser.com is not in any way responsible for theft of your monthly usage quota. If this ever happens, we will not refund money, account quotas or make any compensation for it whatsoever.

The recommended way to access The API is still via your backend servers, and then to pass the result through to your frontend (either via your web templates or through your own XHR requests). This prevents anyone from seeing your user_key.

If you ever suspect that your account key has been stolen and/or used by other parties, immediately generate a new API key (via the Developer Portal).

3.2 - Traffic Shaping

We do not normally shape your traffic or requests to the API. However if your account regularly sends an exceptionally high amount of parse requests in a short amount of time, you may find that we add a short delay before returning your response. If this is switched on for your account, you will be limited to sending a certain number of requests per x many seconds. We will set these figures based on your usage pattern.

Most customers seem to use the "user agent parse" end point in a "live" fashion - ie. as your customer interacts with your system, your system sends us a parse request) and this is largely the idea of the parse end point. Some customers will set up a multi-threaded script to send tens or hundreds of user agents per second. In some circumstances, this multi-threaded approach puts unexpected spikes on the API infrastructure, and if we find it is a problem, we may shape your account's traffic to mitigate this problem.

If you have a large amount of user agents to send for parsing (perhaps in a database or log file) which you want to send through all at once, you are advised to use the "user agent parse batch" end point instead of sending them through the normal "user agent parse" end point one at a time. If you don't, please at least try to limit the number of requests you send to a few per second. If you have any questions about this, contact us and we'll be happy to work with you to find a solution that benefits everyone.

We've had to institute this policy, because a small number of customers were doing things like sending 20,000+ requests in the space of about 60 seconds which resulted in slightly elevated response times for other customers.

4. Our products and your feedback

These Terms do not grant you any rights -nor do you have - in any of our services or software or the content accessed through them. While we appreciate it when users send us feedback, please be aware that we may, at our discretion and for any purpose, use, modify, incorporate into our products, license and sublicense, any feedback, comments, or suggestions you send us or post in our forums without any obligation to you. In other words; we love your suggestions, but whether we use them or not; they give you absolutely no rights or ownership over any of our software, products, services or anything else.

5. Your products

We might like to make reference to your product/s and or business in our promotional material, including showing your logo; for example, to show some of our existing customers who are already using The API to our prospective customers. We respect that some companies may not want us to do that, so we're always sure to get approval from you before doing this.

6. Disclaimer and Limitation of Liability

6.1 - General.

The Web Site, The API and its entire contents and functionality including the reporting of User Agent, browser detection, version checking (i.e. "Your browser/plugins are up to date"), informational guides, opinions and contents of any support/response emails, tweets, posts or messages that we may send are provided on an "as is" basis. We do not warrant the completeness, timeliness, up to date-ness, accuracy or reliability of this Web Site, any of the functionality or the contents of the site. We will not accept any responsibility (including from negligence) for any errors in, or omissions from, the contents or functionality of this Web Site. It is provided without any guarantee, including any guarantee of suitability for a definite purpose.

We (including our related companies and their directors, officers, employees and agents) are not liable for any loss or damage (whether direct or indirect) including loss or damage arising out of negligence, which you may suffer as a result of using this Web Site or The API.

Where any law implies any term, condition, representation or warranty into the contents of this Web Site or your use of or access to the Web Site, and that law prohibits exclusion of that term, condition, representation or warranty, then that term, condition, representation or warranty is excluded. If so, and to the extent permitted by the law, our liability for any breach of such term, condition, representation or warranty is limited to the supplying of the relevant good or services again, as we may choose.

6.2 - Opinions and suggestions

You should not treat any opinion expressed on this website or in an email, tweet or other kind of message from us as a specific inducement to make a particular decision or follow a particular path of action, but only as an expression of an opinion.

6.3 - Version checking

In some cases, the browser version check (checking if the user's browser is up to date) only looks at the major release version number, not the minute point release, and as such may not give an "out of date" for minor point or revision release differences. In some cases, it is not possible to determine if a browser is fully patched, despite appearing up to date. In some cases (for example Internet Explorer), when a new version is released but the older version is still most popular and still actively maintained by the vendor, this may be considered the "latest" version. Browser security and remaining up to date is the responsibility of the Manufacturer and the individual computer user. We absolutely will not accept any responsibility for wrong, erroneous, misleading or vague information that this feature provides or the resulting decisions by the user thereof. Just because the dialogue may claim that your web browser is up to date does not guarantee that it is fully patched, or that it is secure. This feature should be used as a rough guide only.

6.4 - Malicious or abusive user agents

The user agent parser attempts to recognise and warn if a User Agent appears to be malicious, abusive or represent a security threat. This is done by searching for fragments suspected to be of a malicious nature: for example SQL injection exploits. We offer no guarantee that a user agent is "safe" just because it didn't get flagged as "abusive". Similarly, we offer no promise that just because a user agent was flagged as "abusive" that it is actually malicious or dangerous.

It is your responsibility to safely handle all user agents your system receives from your users/logs as well as responses from our API. We accept no responsibilty and provide this API field as a courtesy, hoping that it might be helpful but without any promise as to its accuracy.

6.5 - User Agent Parser

Our user agent parsing software - available through the API - is provided "AS IS", with no guarantee that it is correct or complete. It is our best attempt at decoding the user agents provided to it.

Our User Agent Parsing library is constantly being developed and improved. As we develop it, the detection that it provides - and thus by extension, the Parse/Batch Parse responses from the API - may change without notice or warning to you. For example, if there is a user agent that mostly looks like "Chrome", but it has a more specific fragment (eg "FooBrowser") that we don't currently detect; the parser will probably detect it as "Chrome"; however once we add detection for "FooBrowser", those user agents will stop being identified as "Chrome" and instead be identified as "Foo Browser". This is normal and to be expected. We make these sorts of changes as a part of developing the parser normally and don't announce them.

6.6 - User Agent Database

We provide a downloadable database of user agents that our various systems have gathered over time.

The user agent and parse data is provided "as is" and there is absolutely no guarantee that it is fit for any purpose whatsoever. These are simply millions and millions of user agents that we've collected through the API, website, and other sources. There are going to be user agents that are fake/spoofed, there are user agents in the data that have junk/random/unique fragments. There will probably be user agents that are complete nonsense. This is because some bots/scripts and users send fake user agents to the website or to our API customers. We do try to filter out the rubbish user agents, but we add millions of user agents per week and we don't manually review every single one.

It's completely nonsensical to use the data to "detect" what browser/os/device/etc your visitor is using. The API might help you with that. This is simply a database of a ton of user agents and how we've used our user agent parsing library to detect them.

Because of the huge dataset size, we don't re-parse every single record in the database all that often, so in theory, there could be records that have out of date user agent parse fields.

6.6.1 - Filtering/Sanitizing user agents

We do our best to prevent malicious, obscene or "fake" user agents appearing in the database. If we've missed anything, let us know via the contact form. We make no guarantees that the user agents we provide in our database dump are "safe" to use (eg. that they don't contain malicious code which someone has submitted to us, or that they are suitable for display to your customers, staff or anyone else - eg free of profanity). It is a database of user agents which have been sent to our servers: we offer it to you with the best intentions make no guarantees of any sort about the database and user agents in any way. eg. We don't guarantee that a user agent which appears in it is a "real" user agent (someone may have sent it to us as a trick because user agents can be changed/forged). Generally speaking we find our database accurate and fine, but we don't guarantee anything about it.

6.6.2 - Included parse fields

The database includes various columns which contain the current output of our User Agent Parser for that user agent. As we develop the parser the output in these columns may change and improve. There may be a lag between changes to our parsing library and the contents of the database dump, as the system reparses our database of user agents using the latest detection code.

6.6.3 - Creation of database dumps

Normally, we create the database dumps once per week, early every Sunday morning (UTC). We provide no guarantees that this will happen every week; occasionally there might be an interruption to this generation process (due to database upgrades, system maintenance, and so on). In the rare occasion that this happens, we usually manually initiate a mid-week generation of a new database dump.

6.6.4 - Limitation of use of the database

You may use this database of user agents and parse results however you want - EXCEPT for making it publicly available on the internet, either as a downloadable/sharable file or through a user agent listing. In otherwords, don't share the files online or use it to make your own public user agent listing.

You may NOT share the unique database download URL, or the downloaded file itself with anyone outside your organisation.

6.6.5 - Removal of old versions of the database

Older versions of the database file will routinely be removed from our servers after a few weeks. Make sure to keep your own copies.

6.6.6. Invoice Adjustments for One-Off downloads

We charge for the API on a Pro-Rata basis, however the only exception to this is if you switch to a Pro or Enterprise tier, make a successful User Agent Database URL request and then switch down to the Free/Basic tier. If you do this, we will charge you the full $20 AUD for Pro-tier access for that month.

We have to do this because some customers have figured out that instead of paying the $50 AUD for a one-off download, they can switch to the Pro tier for a few minutes, make an API request to get the URL and then switch to the Free tier, resulting in a charge of only a few cents.

To ensure that you are charged the correct amount, if you do this, the system will automatically adjust your invoice for the month up to $20 AUD.

6.6.7 - Blocking continually failing download attempts

If your system/s repeatedly fail to download the database successfully; making regular download attempts that never or rarely complete, we may block your IP Address/es from attempting to download the database. We do this to prevent excessive bandwidth usage on our end.

We don't do this often, or lightly, and we'll always reach out to you before blocking your IP Address/es from downloading the database. Your systems may have a problem and we'd love for you to get it fixed; we're happy to help how we can! We do this because we sometimes have API customers who attempt to download the database dozens and dozens of times each week, but never or rarely succeeding in getting the whole file. This wastes bandwidth and is indicative of a problem with your download system or internet connection.

We will contact you before taking any blocking measures against your IP address/es. If you don't reply to our email and the problems persists we may block some or all of the IP addresses making the failing download requests. You must ensure that the email address you have on your account is monitored and that someone reads our emails.

6.6.8 - You must download the dump files to your own servers

The Parquet file is provided uncompressed to help speed up your development/analysis workflow; however you may not access it directly with your data analysis tools. You must first download the parquet file to your own development machine or to your data analysis server.

Directly accessing the parquet file with your data analysis tools will be detected and you will be blocked from accessing the file. Please just download it to your own machine first.

7. Indemnity

You agree to indemnify us (including our related companies and their officers, employees, agents and contractors) for any loss or damage we suffer if you breach these Terms and Conditions or as a result of your wilful or negligent act or omission with respect to the Web Site (or any part of it).

8. Termination

We reserve the right to change this Web Site in any way without notice to you. Your membership of the Web Site (if any) and your ability to access and use the Web Site may be terminated at any time without notice.

Product and company names mentioned in the site may be the trademarks of their respective owners.

9. Privacy Policy

9.1 - Your privacy

We take your privacy and the privacy of your customers/clients very seriously.

All the information required to bill you is handled by 3Scale and BrainTree, and their terms and conditions apply as well.

We keep copies of bills and invoices for our own financial records. The API web servers are secured and do not contain account information. 3Scale and BrainTree are responsible for managing your accounts, billing and financial details.

We may record the API requests, including the User Agents your system sends via the API in order to debug, to monitor performance, security and accuracy of the system and to further develop our user agent parser library. We also provide copies of the user agents our systems have seen via the User Agent Database Downloads option. Any user agents you sent to the API may be included in this database.

9.2 - Storing User Agents

Please be aware that when your systems send API requests to the various User Agent Parsing end points, our systems will record these user agents and may make them available both on our User Agent Listing.

If you do not want us to collect, store and make public a user agent or HTTP header, do not transmit it to the API.

In general there should be no real privacy concerns about you sending us user agent strings or us making them publicly available; they are designed to identify system types and software not individuals. We have more information on our Website Terms and Conditions.

9.3 - Use of Google reCaptcha3 to validate new API Accounts

To prevent fake/spam API accounts being created in our system, we use Google's reCaptcha 3 to validate your system and requests. Your use of reCAPTCHA v3 is subject to the Google Privacy Policy and Terms of Use. By accessing or using the API Sign up page, you agree to the Google APIs Terms of Use, Google Terms of Use. Please read and understand all applicable terms and policies before accessing those pages.

10. Deleting your account

If you no longer need to use our service, you can simply stop sending requests and change your plan to the "Basic/Free" tier. If you were on a paid plan, your final charges will be charged pro-rata and you will receive one final invoice the next time we process payments (early in the next month). Changing your plan to the Basic/Free tier is all that's required to stop using our service.

It is your responsibility to change your plan to the Basic/Free tier when you want to stop using the API. If you are unable to do this, please contact us using the email address used for your account and we will do it for you.

11. Billing

11.1 - We use BrainTree as our payment gateway. We have a NAB merchant account (VISA & MasterCard) and an AMEX merchant account to accept your credit cards.

12. Annual Billing

We provide an Annual Billing option.

You must contact us using the email address belonging to the account want to switch to Annual Billing in order to set this up.

We will give you a 10% discount for going annual.

If you cancel or leave our service part-way through your year, we will not refund/pro-rata the unused time.

13. Failed Payments

We invoice in the first week of each month. We will retry failed payments for invoices several days after the initial attempt. If your invoice fails a second time, we may lower your API plan to the Basic/Free tier until such time that you pay the outstanding invoice. After which you can change your plan back to the original tier that you were on. We are happy to do this step for you if you request it.

If your API payment has failed, you probably need to update your payment details (perhaps your card has expired or been cancelled) or your account may not have enough money on it to make the payment. If you need help, don't hesitate to contact us.

We are sympathetic to customers who have trouble paying invoices, especially if your credit card has expired or your card has been stolen/cancelled recently and the details haven't been updated. We will lower your account to the Basic/Free tier as a last resort - normally, just replying to any of the multiple messages we send you about failed payments is enough to stop us from lowering your API plan until something can be worked out.

You need to let us know about your situation. We send you messages warning of the failed payments, so that you are aware of them. We will also send you a message when we lower your account to the Basic/Free tier.

13. Failure to enforce

The failure of whatismybrowser.com to enforce any provision of these terms and conditions shall not constitute or become any sort of waiver of such provision or of our right to enforce it at a later time.

14. Deleting abandoned/inactive accounts

We may delete accounts which appear abandoned/inactive. The idea is to keep the system clean of accounts for people who sign up, send a few requests, decide it's not for them and never come back.

We may delete any accounts - without warning - which match all of these criteria:

  • Account is on the Basic/Free tier
  • Haven't paid at least one invoice
  • Haven't sent any API requests in the last 90 days
  • Haven't contacted us to ensure that we don't purge their account

If you are going to stay on the Basic/Free tier and only send API requests very rarely, that is totally fine, however please make sure you contact us so that we can mark your account to not be purged.

If the system purges your old account due to inactivity, you are welcome to sign up for a new account.

15. Miscellaneous

Your account email address

The email address you have on file for your API Account is where we will send your monthly invoices to, quota alerts, and various alerts and messages to. You must make sure that the email address you provide is monitored.

Preventing "bad" signups

In order to prevent bots and other automated systems creating automated accounts, we may use Google reCaptcha to ensure that a human is making the request. By loading the API sign up page you agree to this and that your web browser's data may be sent to Google as a part of this.

We also block traffic to parts of the site from known "bad" IP ASNs - this is to prevent signups coming from problem hosting companies/VPNs etc. If you are a legitimate user who wants to sign up, please don't use a VPN or tunnel traffic through a hosting company to do it. If you have problems signing up, contact us for further help.

You may not use an automated system/script to create or verify API accounts.

Delivery Time Frame

As soon as you sign up to a plan and confirm your email address, you will receive access to the WhatIsMyBrowser.com API

User agent database downloads

We require you to enter your payment details and be manually approved before you can download the user agent database.

Refunds

We do not offer refunds. Our service is billed pro-rata, so as soon as you no longer need it, simply switch to the Free/Basic tier and we will stop charging you. There will be one final invoice the following month (to complete the pro-rata charges you accrued) and then there will be nothing else.

Resolving problems

We are passionate about providing the very best API parser and system on the internet; if you have any concerns, questions or suggestions, please do not hesitate to Contact Us to discuss it with us. We will do our very best to come to the optimal out come for all parties involved.