Yep, your scenario works and it's completely possible and plausible.
Messages are extremely small and efficient OTA (highly optimized and compressed).
The API is JSON and messages are your own unconstrained JSON object, but they're transmitted as compressed binary. (You can also have a binary payload 'attachment' to a JSON message if you so choose.)
Although everything works fine if the messages are individually in the KB's, that's not the design center because of how we manage memory on our (STM32L4R5) MCU.
Things work most efficiently when the app uses lots of small messages. We buffer them in flash, and power-on the modem at user-settable intervals (or conditions) for upload.