Is streaming API to ChaCha20-Poly1305 possible or recommended against?
This is not specific to this construction, but generally, you want to split the stream in smaller chunks, that are individually encrypted and authenticated.

If the encrypted stream doesn't have a valid authentication tag, this is not something you want to discover at the very end, after having decrypted terabytes of data.

Some precautions have to be taken when splitting a stream into chunks. Namely, you need to make sure that chunks haven't been reordered, removed, duplicated and you need a way to verify that the last chunk you read was meant to be the end of the stream.

The encrypting a sequence or a set of dependent messages page in the libsodium documentation provides some guidance for this, as well as a streaming API using Chacha20-Poly1305.