Hello,
Following up on my previous post: I tried the suggestions from @pawlean (Vercel staff)
Method 1: Project Settings > Caches
What I tried:
Use x-vercel-cache-tags header as suggested by @pawlean (but I can’t find any documentation about this header?):
setResponseHeader(event, 'x-vercel-cache-tags', `${subdomain},subdomain`)
setResponseHeader(event, 'Cache-Control', `public, max-age=0, s-maxage=86400, must-revalidate, cache-tag=${subdomain},subdomain`)
First, I tried to manual purge from the Vercel interface but:
The headers appear correctly in the response.
But manual purge by tag still doesn’t work: x-vercel-cache is still HIT.
Purge all (*) works as expected — the cache returns MISS.

Method 2: Api endpoint (v1/edge-cache/purge)
Then I wanted to try the suggested endpoint by @pawlean:
POST https://api.vercel.com/v1/edge-cache/purge?teamId=YOUR_TEAM_ID
BODY { "tags": ["osso"] }
But the suggested endpoint seems doesn’t exists, it returns a 404 Not Found error:
→ I couldn’t find any documentation or examples for using the /v1/edge-cache/purge endpoint, can you tell us where we can find it?
Conclusion
x-vercel-cache-tags and Cache-Control headers are correctly added
On Project Settings > Caches, Purge CDN cache by tag doesn’t invalidate the cache
But purge-all (*) works
v1/edge-cache/purge suggested API endpoint seems doesn’t exists, returns 404 error…
No documentation about the suggested headers, and no documentation about the endpoint…
So… what am I missing here?
Is this feature simply not supported on Hobby plans, or is there a specific requirement I’ve overlooked?
Thanks again for your help — I really want to understand what’s going on.
