▲ Next.js Beginner

What are Next.js API routes?

Answer

Next.js API routes allow you to create backend API endpoints within the same Next.js project, without a separate server. App Router — Route Handlers: create a route.ts file in the app/ directory: // app/api/users/route.ts import { NextRequest, NextResponse } from "next/server"; export async function GET(request: NextRequest) { const users = await db.getUsers(); return NextResponse.json(users); } export async function POST(request: NextRequest) { const body = await request.json(); const user = await db.createUser(body); return NextResponse.json(user, { status: 201 }); }. Each HTTP method (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS) is exported as a named function. Pages Router API routes: // pages/api/users.ts export default function handler(req, res) { if (req.method === "GET") { res.json(users); } else if (req.method === "POST") { const user = createUser(req.body); res.status(201).json(user); } }. Route Handler features: access request via NextRequest (URL, headers, cookies, body); dynamic routes: app/api/users/[id]/route.ts; Edge runtime option for low-latency: export const runtime = "edge";; streaming responses; CORS handling; cookie management via cookies(). When to use: third-party API integrations, database operations (keep credentials server-side), webhooks from external services, form handling. For simple data needs, Server Actions or direct Server Component fetching is often cleaner.