Yauaa: Yet Another UserAgent Analyzer

This is a java library that tries to parse and analyze the useragent string (and when available the User-Agent Client Hints) and extract as many relevant attributes as possible.

Works with Java, Scala, Kotlin and provides ready for use UDFs for several processing systems.

The full documentation can be found here

HIGH Profile release notes:

These are only the highlights for the last few releases, the full changelog can be found here.


  • New/improved detections:
  • Updated UDF dependencies
    • The Trino UDF requires Java 22 which is non-LTS. This UDF will simply not be built if Java 22 is missing (and thus may go missing in some releases).

Version v7.26.1

  • New/improved detections:
    • Samsung Browser 24 now does Frozen UA

Version v7.26.0

  • Analyzer:
    • Improve handling of invalid ClientHints
  • New/improved detections:
    • Ecosia browser
    • Phoenix browser (has very bad ClientHints)
    • Lookup Amazon device tags from ClientHints
    • Report the agent version ‘NULL’ as ‘??’
    • Handle Edge case of unknown device names
  • Updated UDF dependencies
    • Trino 439 changed their API

Version v7.25.0

  • New/improved detections:
    • Mitigate the invalid ClientHints given by Opera GX 2.1

Version v7.24.0

  • Analyzer:
    • Allow cloning an instance and share the configuration (reducing memory footprint)
  • New/improved detections:
    • CamScanner is not a robot
    • NextCloud app
  • Build:
    • Update commons-text required shading to make it work.
    • Build under Java 21 and also run all tests with Java 21


If this project has business value for you then don’t hesitate to support me with a small donation either via Github Sponsors or Paypal.


Yet Another UserAgent Analyzer
Copyright (C) 2013-2024 Niels Basjes

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.