Mark specific posts as "read" through the API?

Well, I’ve reverse-engineered it with the browser.
the topic_timings() must be called using post index in the timings={} argument instead of the post ID.

I guess that’s quite acceptable workaround, though I’d like to have a post-id-based method because it’s not very easy to infer index from ids (will need to fetch the actual topic first)