This is a breakdown of a decision I made building LogicVisor, not a general "streaming vs JSON" guide. AI API responses aren't limited to text: some return images, audio, structured data. I only needed text, so streaming vs JSON became a real fork in the road. If I'd needed image responses too, this calculus changes entirely.

Two constraints were in tension from the start:

The AI evaluation needed to be stored in the database.

The same information needed to be available to the user immediately, at submission time.

Why you can't reliably stream JSON