My website is hosted on Google App Engine using Standard Python.
In request handlers, I am setting HTTP header "cache-control: max-age=3600, public"
So frontend server "Google Frontend" caches the response for 1hr(which I want to save cost).
In rare cases the content of page changes and I want the content in frontend cache to be invalidated. How can I do that?
Is there any API for it?
I can't alter the URL as they have 90% traffic from Google Search.
When you set cache-control via the header or meta tag, that tells the browser to store the response.  So, the next time, it will not even ping your server.  This means that you cannot invalidate that cache after set.
What you need is a backend cache. Frameworks like Django, Flask, etc. make this easy.  You can set a template cache, so it responds quickly, without much processing.
You can store the response in GAE's memcache, and send from there.  You can easily invalidate that cache, because you have complete control over it.
Alternatively, you could change the url.  Google reads your canonical meta tag to get the desired indexed url, so you can add a query string, etc., but still save the Google score to that indexed url.
How to invalidate cashed URL response from GAE "server: Google Frontend"