Submitting Devices to WURFL

Introduction

If you are a commercially licensed customer who has downloaded the wurfl.xml file from the customer vault (i.e. licensed repository), you may submit a request to wurfldb@scientiamobile.com to add support for new devices. Once a device is approved and added to WURFL, the change will be reflected in an upcoming snapshot release.

Obtaining a License

Aside from the ability to submit devices to WURFL, there are many other advantages to being a licensed user. A commercial license provides customers with access to more capabilities, frequent updates of the WURFL snapshots and increased support levels. Click here to learn more about obtaining a license.

WURFL.js Users

Licensed WURFL.js users will also be able to submit devices to WURFL. While WURFL.js customers do not receive or use a wurfl.xml file, they will have access to the WURFL.js service which provides a constantly updated device data repository. Click here to learn more about WURFL.js.

When to Submit a Device(s)

  • If you have a device that is not being accurately detected by WURFL

  • If a device is not returning the expected values for a WURFL capability

Notes:

  • If you are using an on-premise product like WURFL OnSite or WURFL Infuze, please make sure you are using the most current wurfl.xml device definitions file and the newest version of the WURFL API for which you are licensed.

  • We maintain a testing service that allows you to check sample detection results, from the WURFL API, by either visiting the page from the device or by providing the User-Agent (or User-Agent Client Hints as the case may be)

  • If you would like to define a new device, please do not submit it for addition to WURFL. Instead, consider using a patch file for this task.

Format

The User-Agent, User-Agent Client Hints and any other header values should be listed in the exact format as seen in the HTTP request. If you are submitting a device because it is returning an unexpected capability value, please include the capability's current returned value along with the expected value where possible.

If you plan on submitting a list of 30 or more unique User-Agents, we ask that it be in a list with two tab separated fields:

  • UA
  • Count/Number of Hits

Ex.

user_agent  count
Mozilla/5.0 (Linux; Android 13; SM-N980F Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/114.0.5735.131 Mobile Safari/537.36   97543
Mozilla/5.0 (Linux; Android 12; 2201122C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.73 Mobile Safari/537.36   93027
Mozilla/5.0 (Linux; Android 14; Pixel 7 Pro Build/UPB3.230519.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/115.0.5790.40 Mobile Safari/537.36 53216

If you'd like to submit a list of User-Agent Client Hints and/or any other HTTP header values, please submit them in a json format (escaped preferred) with the count/number of hits as a field. When submitting User-Agent Client Hints, please make sure to include the User-Agent and all available User-Agent Client Hints (low and high entropy). Additional information on what these Client Hints are and why they are important and relevant to device detection is available here.

Here's a sample submission containing User-Agent Client Hint data in an escaped json format:

{"Sec-Ch-Ua":"\"Google Chrome\";v=\"114\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"114\"","Sec-Ch-Ua-Arch":"","Sec-Ch-Ua-Bitness":"","Sec-Ch-Ua-Full-Version":"\"114.0.5735.131\"","Sec-Ch-Ua-Full-Version-List":"\"Google Chrome\";v=\"114.0.5735.131\", \"Not(A:Brand\";v=\"8.0.0.0\", \"Chromium\";v=\"114.0.5735.131\"","Sec-Ch-Ua-Mobile":"?1","Sec-Ch-Ua-Model":"\"SM-N980F\"","Sec-Ch-Ua-Platform":"\"Android\"","Sec-Ch-Ua-Platform-Version":"\"13.0.0\"","Sec-Ch-Ua-Wow64":"?0","User-Agent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36", "Count":"97543"}
{"Sec-Ch-Ua":"\"Not(A:Brand\";v=\"8\", \"Google Chrome\";v=\"99\", \"Chromium\";v=\"99\"","Sec-Ch-Ua-Full-Version":"\"99.0.4844.73\"","Sec-Ch-Ua-Full-Version-List":"\"Not(A:Brand\";v=\"8.0.0.0\", \"Google Chrome\";v=\"99.0.4844.73\", \"Chromium\";v=\"99.0.4844.73\"","Sec-Ch-Ua-Mobile":"?1","Sec-Ch-Ua-Model":"\"2201122C\"","Sec-Ch-Ua-Platform":"\"Android\"","Sec-Ch-Ua-Platform-Version":"\"12.0.0\"","User-Agent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.0.0 Mobile Safari/537.36", "Count":"93027"}
{"Sec-Ch-Ua":"\"Google Chrome\";v=\"115\", \"Not(A:Brand\";v=\"8\", \"Chromium\";v=\"115\"","Sec-Ch-Ua-Full-Version":"\"115.0.5790.40\"","Sec-Ch-Ua-Full-Version-List":"\"Google Chrome\";v=\"115.0.5790.40\", \"Not(A:Brand\";v=\"8.0.0.0\", \"Chromium\";v=\"115.0.5790.40\"","Sec-Ch-Ua-Mobile":"?1","Sec-Ch-Ua-Model":"\"Pixel 7 Pro\"","Sec-Ch-Ua-Platform":"\"Android\"","Sec-Ch-Ua-Platform-Version":"\"14.0.0\"","User-Agent":"Mozilla/5.0 (Linux; Android 14; Pixel 7 Pro Build/UPB3.230519.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/115.0.5790.40 Mobile Safari/537.36", "Count":"53216"}