Deep Dive on KaiOS User Agents

Posted by Tom Barrasso on

Deep Dive on KaiOS User Agents

Why it matters. User agents are one of the most common ways to identify devices on the web.

Key Takeaways

User agents are a mess. Some are missing spaces, others missing model numbers, and others still include two OS identifiers (Android and KAIOS). They can also be easily spoofed, but they’re still a useful mechanism to adapt your application at runtime or server-side.

  • KaiOS
    • Every KaiOS device includes the Mobile identifier
    • All KaiOS devices include the identifier KAIOS/ followed by the OS version (i.e. 2.5.3.2 or 3.2)
    • KaiOS 2.5 devices are based on the Gecko engine and Firefox/48.0; KaiOS 3.0 is based on Firefox/84.0
    • Some (but not all) KaiOS 2.5 devices with 256mb RAM have the K-Lite identifier
    • Many devices include the yet-unknown CAEN identifier
  • JioPhone
    • Only JioPhone models have the Android identifier
    • All JioPhone models except the latest JioPhone Prima 4G (F491H) include the LYF identifier
    • JioPhone user agents include the full Build Identifier, i.e. LYF-LF2403N-001-02-23-170319

User Agents

Here’s a list of User-Agent header values from recent requests to PodLP.

  1Mozilla/5.0 (Mobile; 3088X; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
  2Mozilla/5.0 (Mobile; ACCENT_NUBIA60K; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
  3Mozilla/5.0 (Mobile; ADVAN_2406_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2 
  4Mozilla/5.0 (Mobile; ALCATEL 4052C; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2
  5Mozilla/5.0 (Mobile; ALCATEL 4052O; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2 
  6Mozilla/5.0 (Mobile; ALCATEL 4052R; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2 
  7Mozilla/5.0 (Mobile; ALCATEL 4052W; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2
  8Mozilla/5.0 (Mobile; ALCATEL 4052Z; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2
  9Mozilla/5.0 (Mobile; ALCATEL 4056W; rv:84.0) Gecko/84.0 Firefox/84.0 KAIOS/3.0
 10Mozilla/5.0 (Mobile; ALCATEL 4056Z; rv:84.0) Gecko/84.0 Firefox/84.0 KAIOS/3.0
 11Mozilla/5.0 (Mobile; ALCATEL A406DL; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.4
 12Mozilla/5.0 (Mobile; ALIGATOR_K50_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2
 13Mozilla/5.0 (Mobile; ALPHA_B10_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
 14Mozilla/5.0 (Mobile; ASPERA_R40_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.1 
 15Mozilla/5.0 (Mobile; ATT_EA211101; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.4
 16Mozilla/5.0 (Mobile; ATT_U102AA; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.1
 17Mozilla/5.0 (Mobile; ATT_U1030AA; rv:84.0) Gecko/84.0 Firefox/84.0 KAIOS/3.1
 18Mozilla/5.0 (Mobile; AZUMI_L4K_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2.2
 19Mozilla/5.0 (Mobile; Accent_Nubia50K; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
 20Mozilla/5.0 (Mobile; Alcatel_3078_3G; rv:48.0; K-Lite) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
 21Mozilla/5.0 (Mobile; Azumi-L3K-3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
 22Mozilla/5.0 (Mobile; B300V; rv:84.0) Gecko/84.0 Firefox/84.0 KAIOS/3.1
 23Mozilla/5.0 (Mobile; BLU_TankMega_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
 24Mozilla/5.0 (Mobile; BLU_TankMega_3G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
 25Mozilla/5.0 (Mobile; BLU_ZOEY_SMART; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
 26Mozilla/5.0 (Mobile; CAT B35; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 27Mozilla/5.0 (Mobile; CAT B35; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1
 28Mozilla/5.0 (Mobile; CKT_U102AC; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3
 29Mozilla/5.0 (Mobile; CKT_U1030AC; rv:84.0) Gecko/84.0 Firefox/84.0 KAIOS/3.1
 30Mozilla/5.0 (Mobile; CORN_Smart_K_3G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2
 31Mozilla/5.0 (Mobile; CellAllure_Smart_Temp_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
 32Mozilla/5.0 (Mobile; Crosscall_Core-S4_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
 33Mozilla/5.0 (Mobile; Crosscall_Core-S4_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
 34Mozilla/5.0 (Mobile; DIXON_XK1_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
 35Mozilla/5.0 (Mobile; DORO7060; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 36Mozilla/5.0 (Mobile; Digit_Digit4G-Bold_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.1
 37Mozilla/5.0 (Mobile; Digit_Digit4G-Defender_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
 38Mozilla/5.0 (Mobile; Digit_Digit4G-Elite_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
 39Mozilla/5.0 (Mobile; Digit_Digit4G-Music_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
 40Mozilla/5.0 (Mobile; Digit_Digit4G-Power_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
 41Mozilla/5.0 (Mobile; Digit_Digit4G-Star_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
 42Mozilla/5.0 (Mobile; Digit_Digit4GLite_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
 43Mozilla/5.0 (Mobile; Digit_Digit4G_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2
 44Mozilla/5.0 (Mobile; Digit_Digit4G_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
 45Mozilla/5.0 (Mobile; Digit_Digit4G_Shine_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
 46Mozilla/5.0 (Mobile; Doppio_TEXTER_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
 47Mozilla/5.0 (Mobile; ENERGIZER_E241S; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
 48Mozilla/5.0 (Mobile; ENERGIZER_E280S; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
 49Mozilla/5.0 (Mobile; Energizer_E241; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
 50Mozilla/5.0 (Mobile; Energizer_E241S; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
 51Mozilla/5.0 (Mobile; Energizer_E242S_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
 52Mozilla/5.0 (Mobile; Energizer_E282SC_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
 53Mozilla/5.0 (Mobile; FD07_MUNI_SMART; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
 54Mozilla/5.0 (Mobile; Fise_32433_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2
 55Mozilla/5.0 (Mobile; GEOPHONE_T19I_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
 56Mozilla/5.0 (Mobile; GHIA_GK3G_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
 57Mozilla/5.0 (Mobile; GHIA_GQWERTY_3G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2 
 58Mozilla/5.0 (Mobile; GIGASET_GL7_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
 59Mozilla/5.0 (Mobile; Geo_Phone_T15_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.1 
 60Mozilla/5.0 (Mobile; Geo_Phone_T19_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.1 
 61Mozilla/5.0 (Mobile; Hammer_5Smart_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.1
 62Mozilla/5.0 (Mobile; IDC_Voice_20_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2
 63Mozilla/5.0 (Mobile; INOI_Q28F02-3_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
 64Mozilla/5.0 (Mobile; IPRO_I324MS4; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
 65Mozilla/5.0 (Mobile; IPRO_K2_3G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2
 66Mozilla/5.0 (Mobile; Jio/F491H/Jio-F491H-001-06-24-271223;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
 67Mozilla/5.0 (Mobile; LOGAN_Panita_3G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2
 68Mozilla/5.0 (Mobile; LOGICOM_LK283_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
 69Mozilla/5.0 (Mobile; LOGICOM_LK284_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
 70Mozilla/5.0 (Mobile; LOGIC_B8K_3G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2 
 71Mozilla/5.0 (Mobile; LOGIC_LOGIC_B8K_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2 
 72Mozilla/5.0 (Mobile; LYF/F101K/LYF-F101K-000-01-36-220518;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.0
 73Mozilla/5.0 (Mobile; LYF/F101K/LYF-F101K-000-02-40-220422;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 74Mozilla/5.0 (Mobile; LYF/F10Q/LYF-F10Q-000-01-34-080622; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 75Mozilla/5.0 (Mobile; LYF/F20A/LYF-F20A-000-01-52-291119;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 76Mozilla/5.0 (Mobile; LYF/F210Q/LYF-F210Q-000-00-14-110722; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 77Mozilla/5.0 (Mobile; LYF/F211S/LYF-F211S-000-02-14-130619; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 78Mozilla/5.0 (Mobile; LYF/F220B/LYF-F220B-003-01-19-240818;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 79Mozilla/5.0 (Mobile; LYF/F220B/LYF-F220B-003-01-38-170619_audio_log-i;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 80Mozilla/5.0 (Mobile; LYF/F221S/LYF-F221S-000-02-30-311019; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 81Mozilla/5.0 (Mobile; LYF/F250Y/LYF-F250Y-003-00-96-131219;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 82Mozilla/5.0 (Mobile; LYF/F250Y/LYF-F250Y-003-01-05-280423; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 83Mozilla/5.0 (Mobile; LYF/F271i/LYF_F271i-000-02-12-110422; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 84Mozilla/5.0 (Mobile; LYF/F300B/LYF-F300B-001-01-59-241121;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 85Mozilla/5.0 (Mobile; LYF/F30C/LYF_F30C-001-10-45-080822; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 86Mozilla/5.0 (Mobile; LYF/F320B/LYF-F320B-002-02-62-071022;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
 87Mozilla/5.0 (Mobile; LYF/F41T/LYF-F41T-000-02-04-100119; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 88Mozilla/5.0 (Mobile; LYF/F50Y/LYF-F50Y-000-03-02-270319;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 89Mozilla/5.0 (Mobile; LYF/F61F/LYF-F61F-000-02-02-251218; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 90Mozilla/5.0 (Mobile; LYF/F81E/LYF-F81E-000-02-42-260422; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 91Mozilla/5.0 (Mobile; LYF/F90M/LYF_F90M_000-03-19-240319; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 92Mozilla/5.0 (Mobile; LYF/LF-2403/LYF-LF2403S-001-02-19-031221;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 93Mozilla/5.0 (Mobile; LYF/LF-2403N/LYF-LF2403N-001-02-23-170319;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 94Mozilla/5.0 (Mobile; LYF/LF2401/LYF-LF2401S-000-02-10-130220; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 95Mozilla/5.0 (Mobile; LYF/LF2401S/LYF-JL-LF2401S-000-03-32-220523; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5 JioOSLite/11.0
 96Mozilla/5.0 (Mobile; LYF/LF2402/LYF-LF2402S-000-02-14-200422; Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
 97Mozilla/5.0 (Mobile; Logicom_Kay_243_3G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2
 98Mozilla/5.0 (Mobile; M560M3; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1
 99Mozilla/5.0 (Mobile; M561M3; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2
100Mozilla/5.0 (Mobile; M562F3; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
101Mozilla/5.0 (Mobile; M571M3; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2
102Mozilla/5.0 (Mobile; MAXCOM_MK281_512_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
103Mozilla/5.0 (Mobile; MOBICEL_S1_SMART; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
104Mozilla/5.0 (Mobile; MS230_512_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
105Mozilla/5.0 (Mobile; MS247_512; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
106Mozilla/5.0 (Mobile; MS248_512_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
107Mozilla/5.0 (Mobile; MS250J_512_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
108Mozilla/5.0 (Mobile; MS250N_512_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
109Mozilla/5.0 (Mobile; MS260_512_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
110Mozilla/5.0 (Mobile; Multilaser_ZAPP; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
111Mozilla/5.0 (Mobile; Multilaser_ZAPP; rv:48.0; K-Lite) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
112Mozilla/5.0 (Mobile; Multilaser_ZAPP_II_3G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2 
113Mozilla/5.0 (Mobile; N139DL; rv:84.0) Gecko/84.0 Firefox/84.0 KAIOS/3.1
114Mozilla/5.0 (Mobile; NOKIA_BEATLES; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2
115Mozilla/5.0 (Mobile; Nokia 2720 Flip; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2
116Mozilla/5.0 (Mobile; Nokia 2720 V Flip; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.4 
117Mozilla/5.0 (Mobile; Nokia 2780; rv:84.0) Gecko/84.0 Firefox/84.0 KAIOS/3.1
118Mozilla/5.0 (Mobile; Nokia 6300 4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.4
119Mozilla/5.0 (Mobile; Nokia 8000 4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.4
120Mozilla/5.0 (Mobile; Nokia_2720_Flip; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2
121Mozilla/5.0 (Mobile; Nokia_2720_Flip; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2.2
122Mozilla/5.0 (Mobile; Nokia_800_Tough; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2
123Mozilla/5.0 (Mobile; Nokia_800_Tough; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2.2
124Mozilla/5.0 (Mobile; Nokia_8110_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1
125Mozilla/5.0 (Mobile; ORANGE_K2_3G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2
126Mozilla/5.0 (Mobile; Orange_it9301; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
127Mozilla/5.0 (Mobile; Orbic_O4F231; rv:84.0) Gecko/84.0 Firefox/84.0 KAIOS/3.1
128Mozilla/5.0 (Mobile; P280_512_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
129Mozilla/5.0 (Mobile; PCD_F2402_3G; rv:48.0;K-Lite) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
130Mozilla/5.0 (Mobile; PLUM_E900_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2
131Mozilla/5.0 (Mobile; Positivo_P70S; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
132Mozilla/5.0 (Mobile; Q Innovations-Q28A; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2
133Mozilla/5.0 (Mobile; Qmobile_4Gplus; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2
134Mozilla/5.0 (Mobile; SH3320; rv:84.0) Gecko/84.0 Firefox/84.0 KAIOS/3.1
135Mozilla/5.0 (Mobile; SIGMAMOBILE-S3500-3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
136Mozilla/5.0 (Mobile; SPC_F15SE_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
137Mozilla/5.0 (Mobile; Safaricom_Kimem_Kerefa_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
138Mozilla/5.0 (Mobile; Sanza-M560F3; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1 
139Mozilla/5.0 (Mobile; Smart_M570S4; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
140Mozilla/5.0 (Mobile; Smart_Nano_II_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
141Mozilla/5.0 (Mobile; Symphony_PD1_4G_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
142Mozilla/5.0 (Mobile; TCL 4056L; rv:84.0) Gecko/84.0 Firefox/84.0 KAIOS/3.0
143Mozilla/5.0 (Mobile; TCL 4056S; rv:84.0) Gecko/84.0 Firefox/84.0 KAIOS/3.0
144Mozilla/5.0 (Mobile; TCL 4056SPP; rv:84.0) Gecko/84.0 Firefox/84.0 KAIOS/3.0
145Mozilla/5.0 (Mobile; TCL 4056W; rv:84.0) Gecko/84.0 Firefox/84.0 KAIOS/3.0
146Mozilla/5.0 (Mobile; TIM_TIM_Social_4G_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2 
147Mozilla/5.0 (Mobile; Tech_Pad_K_FLIP_3G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2 
148Mozilla/5.0 (Mobile; Tech_Pad_Kaios_One_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
149Mozilla/5.0 (Mobile; Tech_Pad_Smart_K-4G_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
150Mozilla/5.0 (Mobile; Telma_Wi-Kif+3G_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
151Mozilla/5.0 (Mobile; Telma_Wi-Kif+4G_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2
152Mozilla/5.0 (Mobile; Telma_Wikif_Max_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
153Mozilla/5.0 (Mobile; Unitel_M42445_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
154Mozilla/5.0 (Mobile; VGO_TEL_Smart_Hi-Fi_3G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2 
155Mozilla/5.0 (Mobile; VIDA_ATOM_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2
156Mozilla/5.0 (Mobile; VIDA_VIDA-K242_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2
157Mozilla/5.0 (Mobile; VMK_EM2_TS2402; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
158Mozilla/5.0 (Mobile; WIKIFMAX4G_512_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
159Mozilla/5.0 (Mobile; WINTEK_W209_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
160Mozilla/5.0 (Mobile; WW6K25_512_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
161Mozilla/5.0 (Mobile; WW6K27_512_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
162Mozilla/5.0 (Mobile; WW6L2407_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
163Mozilla/5.0 (Mobile; WW6_S2803_4G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
164Mozilla/5.0 (Mobile; Win_F3_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
165Mozilla/5.0 (Mobile; Xandos_X5_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
166Mozilla/5.0 (Mobile; fise-demo-3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
167Mozilla/5.0 (Mobile; iKU_V400; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2
168Mozilla/5.0 (Mobile; i_PLUS_i4G_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2 
169Mozilla/5.0 (Mobile; itel_it9300; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1 
170Mozilla/5.0 (Mobile; myPhone_myPhone_Up_Smart_3G; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
171Mozilla/5.0 (Mobile; myPhone_myPhone_Up_Smart_LTE_4G; rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.1
172Mozilla/5.0 (Mobile; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5
173Mozilla/5.0 (Mobile; rv:48.0; A405DL) Gecko/48.0 Firefox/48.0 KAIOS/2.5
174Mozilla/5.0 (Mobile; rv:84.0) Gecko/84.0 Firefox/84.0 KAIOS/3.1
175Mozilla/5.0 (Mobile; smart2.4S; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
176Mozilla/5.0 (Mobile;Orange_Nevalink;rv:48.0; CAEN) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2 
177Mozilla/5.0 (Mobile;Orange_Nevamini;rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2.1 
178Mozilla/5.0 (Mobile;Tecno_T901;rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.1
179Mozilla/5.0 (Mobile;Vodacom_Vibe4G;rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.3.2
180Mozilla/5.0(Mobile;TECNO_T920D_4G;rv:48.0)Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2
181Mozilla/5.0(Mobile;itel_it9200_4G;rv:48.0)Gecko/48.0 Firefox/48.0 KAIOS/2.5.1.2

Limitations: these user agents are limited to a sample from a fixed time window, deduplicated on KaiOS version and build identifiers.

Using User Agents

The most important distinction for a KaiOS application to make is to segment users originating from the KaiStore (global) and the JioStore (JioPhone in India). Here’s a code snippet for detecting if the KaiOS device is a JioPhone or not:

1function isJioPhone() {
2    const normalizedUserAgent = (navigator.userAgent || '').toLowerCase();
3    return (
4        normalizedUserAgent.includes('lyf')     // All other JioPhone models
5        || normalizedUserAgent.includes('jio')  // JioPhone Prima 4G (F491H)
6    );
7}

User agents can also be used for check KaiOS version (2.5 vs 3.0), although feature detection and runtime checks for specific APIs are a more reliable way to accomplish version detection.

Finally, user agents could be used in contexts where feature detection isn’t available to identify information like the device model and manufacturer. From the list above, popular KaiOS manufacturers include: Nokia, Jio (LYF), Alcatel, Blu, CrossCall, Digit, Energizer, Logicom, Multilaser, Orange, Orbic, TCL, and Tecno.

Conclusion

User agents are a simple and easy way to adapt your app or website to a variety of devices. While it’s ideal to use feature detection, knowing the gamut of available user agents helps determine the most reliable identifiers for segmentation or behvaior change. If you need support adapting your website or PWA for KaiOS, contact the author from the About page.