In short, a REST API call does not have any inherent context about the page state or whether it is in preview mode.
The ContentRetriever does allow you to override the inferred preview state, enabling you to explicitly load preview content instead of live content. This could form part of your solution but you would need to ensure proper safeguards were in place such that preview content was never available outside of intended scenarios. The remaining challenge is determining when the API request should enable preview mode. While there are ways to attempt to infer this based on available parameters, these approaches tend to be brittle and can break down across different scenarios, so I would be cautious about relying on them.
One potential approach could be to output the required API URL directly on the page on load, allowing Xperience by Kentico’s middleware to append the necessary virtual context parameters to support preview mode. If you then consumed this URL, it would be used with the appended virtual context and may allow the server to infer the preview state of the request. This is not something I have tested, so it would need to be validated in practice.
Sean may be able to provide more definitive guidance here.