You are currently viewing documentation for version 14 of Next.js.
userAgent
The userAgent
helper extends the Web Request API with additional properties and methods to interact with the user agent object from the request.
middleware.ts
import { NextRequest, NextResponse, userAgent } from 'next/server'
export function middleware(request: NextRequest) {
const url = request.nextUrl
const { device } = userAgent(request)
const viewport = device.type === 'mobile' ? 'mobile' : 'desktop'
url.searchParams.set('viewport', viewport)
return NextResponse.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, orundefined
if 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
,WebKit
orundefined
.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
,sparc64
orundefined
Was this helpful?