Creating a custom api route in Payload CMS

// app/(payload)/api/my-custom-endpoint/route.ts

import { NextResponse } from "next/server";
import config from "@payload-config";
import { createPayloadRequest } from "@payloadcms/next/utilities";
import { customApiAccess } from "@payload/access/custom-api-access";

export const GET = async (request: Request) => {
  // Get payload req
  const req = await createPayloadRequest({
    config,
    request,
  });

  // Check for access using payload access handlers
  if (!customApiAccess({ req })) {
    return NextResponse.json(
      { message: "Access Denied" },
      { status: 401 }
    );
  }

  // Do stuff with `req.payload` here

  return NextResponse.json({ ok: true });
};