A computer-implemented method operable in a server that has circuitry forming a first one or more processors and memory (1106, 1108, 1110) holding instructions for execution by the first one or more processors and operable in a remote source that has circuitry forming a second one or more processors and memory holding instructions for execution by the second one or more processors, the method comprising: a) at the remote source: generating an application programmer interface, API, response comprising content and one or more tokens, the remote source selecting or sorting data to generate the API response and the one or more tokens corresponding to a data selection or sorting function used to generate the API response; generating an invalidation message directed to at least one token of the one or more tokens; b) at the server: receiving the API response comprising the content having appended thereto the one or more tokens, caching the content and the one or more tokens; receiving the invalidation message indicating that at least one token of the of the one or more tokens is invalid; receiving a client request for content; determining that the cached content is responsive to the request; determining whether each of the cached one or more tokens are valid; upon a determination that all of the one or more cached tokens are valid, serving the cached response to the client; upon a determination that at least one of the one or more cached tokens are not valid, sending a forward request to the remote source for the content. a) at the remote source: generating an application programmer interface, API, response comprising content and one or more tokens, the remote source selecting or sorting data to generate the API response and the one or more tokens corresponding to a data selection or sorting function used to generate the API response; generating an invalidation message directed to at least one token of the one or more tokens; b) at the server: receiving the API response comprising the content having appended thereto the one or more tokens, caching the content and the one or more tokens; receiving the invalidation message indicating that at least one token of the of the one or more tokens is invalid; receiving a client request for content; determining that the cached content is responsive to the request; determining whether each of the cached one or more tokens are valid; upon a determination that all of the one or more cached tokens are valid, serving the cached response to the client; upon a determination that at least one of the one or more cached tokens are not valid, sending a forward request to the remote source for the content. receiving the API response comprising the content having appended thereto the one or more tokens, caching the content and the one or more tokens; receiving the invalidation message indicating that at least one token of the of the one or more tokens is invalid; receiving a client request for content; determining that the cached content is responsive to the request; determining whether each of the cached one or more tokens are valid; upon a determination that all of the one or more cached tokens are valid, serving the cached response to the client; upon a determination that at least one of the one or more cached tokens are not valid, sending a forward request to the remote source for the content.