When you actually need an API route
Server Actions cover internal mutations. Server Components cover internal data reads. Route Handlers cover the rest: webhooks, third-party integrations, and public APIs — anything that exposes a stable URL the outside world can call.
The shape
A route.ts in any folder under app/ exports HTTP method handlers (GET, POST, PUT, DELETE, etc.). Each receives a NextRequest and returns a NextResponse.
Hard rule
A folder with route.ts can't also have page.tsx. They serve different worlds (API vs UI). Pick one per folder.