How to set up a Web Hook for On-Demand ISR in Next.js
export default async function handler(request, response) {
if (request.method !== 'POST') {
return response.status(405).send('Method Not Allowed')
}
const Authorization = request.headers.authorization || ''
const token = Authorization.replace(/bearer/i, '').trim()
if (token !== process.env.NEXT_REVALIDATION_TOKEN) {
return response.status(401).send('Unauthorized')
}
try {
const paths = getRevalidationPaths(request.body).filter(Boolean)
if (paths.length === 0) {
return response.status(400).send('Bad Request')
}
await Promise.all(paths.map(path => response.revalidate(path)))
return response.status(204).send('No Content')
} catch (error) {
console.error(error)
return response.status(500).send('Internal Server Error')
}
}• The
getRevalidationPathsis a little function you write that defines which paths should be revalidated for the given payload.
sanity hook logs.
Was this answer helpful?
Sanity – Build the way you think, not the way your CMS thinks
Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.