Next.js API Routes Cheatsheet

Quick reference for creating API routes in Next.js: basic setup, request methods, dynamic routes, query params, middleware, and error handling.

FeatureDescriptionExampleCategory
API Route FileCreate an endpoint in pages/apipages/api/hello.ts export default function handler(req,res){ res.status(200).json({msg:"Hello"}) }Basics
Export default handlerDefault export for endpointexport default function handler(req,res){...}Basics
GETHandle GET requestsif(req.method==="GET"){ res.status(200).json({data}) }Request Methods
POSTHandle POST requestsif(req.method==="POST"){ const body=req.body; res.status(201).json({body}) }Request Methods
PUT / DELETEHandle PUT/DELETEif(req.method==="DELETE"){...}Request Methods
Dynamic RouteUse [param].ts for dynamic routepages/api/user/[id].ts export default function handler(req,res){ const {id}=req.query }Dynamic Routes
Catch-All RouteUse [...slug].ts for multiple segmentspages/api/posts/[...slug].tsDynamic Routes
req.queryGet query paramsconst {id}=req.queryQuery & Params
req.bodyGet POST body dataconst {name}=req.bodyQuery & Params
req.headersAccess request headersconst auth=req.headers.authorizationQuery & Params
MiddlewareCustom middleware for API routeexport function middleware(req,res,next){ next() }Middleware & Utilities
res.status()Set HTTP status coderes.status(404).json({error:"Not Found"})Middleware & Utilities
res.json()Send JSON responseres.status(200).json({msg:"ok"})Middleware & Utilities
res.send()Send plain text/HTMLres.status(200).send("Hello")Middleware & Utilities
Try/CatchHandle errors in APItry{...} catch(e){ res.status(500).json({error:e.message}) }Error Handling
404 ResponseReturn Not Foundres.status(404).json({error:"Not found"})Error Handling