userAgent
Last updated April 15, 2025
TheuserAgent helper extends theWeb Request API with additional properties and methods to interact with the user agent object from the request.
proxy.ts
import { NextRequest, NextResponse, userAgent }from'next/server'exportfunctionproxy(request:NextRequest) {consturl=request.nextUrlconst {device }=userAgent(request)// device.type can be: 'mobile', 'tablet', 'console', 'smarttv',// 'wearable', 'embedded', or undefined (for desktop browsers)constviewport=device.type||'desktop'url.searchParams.set('viewport', viewport)returnNextResponse.rewrite(url)}isBot
A boolean indicating whether the request comes from a known bot.
browser
An object containing information about the browser used in the request.
name: A string representing the browser's name, orundefinedif not identifiable.version: A string representing the browser's version, orundefined.
device
An object containing information about the device used in the request.
model: A string representing the model of the device, orundefined.type: A string representing the type of the device, such asconsole,mobile,tablet,smarttv,wearable,embedded, orundefined.vendor: A string representing the vendor of the device, orundefined.
engine
An object containing information about the browser's engine.
name: A string representing the engine's name. Possible values include:Amaya,Blink,EdgeHTML,Flow,Gecko,Goanna,iCab,KHTML,Links,Lynx,NetFront,NetSurf,Presto,Tasman,Trident,w3m,WebKitorundefined.version: A string representing the engine's version, orundefined.
os
An object containing information about the operating system.
name: A string representing the name of the OS, orundefined.version: A string representing the version of the OS, orundefined.
cpu
An object containing information about the CPU architecture.
architecture: A string representing the architecture of the CPU. Possible values include:68k,amd64,arm,arm64,armhf,avr,ia32,ia64,irix,irix64,mips,mips64,pa-risc,ppc,sparc,sparc64orundefined
Was this helpful?