Is there API that my app can talk to the SmartThings Hub directly without internet?

Check out the Mira solution. His custom ST Edge drivers accept local IP traffic. However you are really working in a use case that ST was not designed to support (no internet). This question is more of a Hubitat strength.