I used to work a a Bible software company, many, many years ago, and had to write a similar API. The surprise challenge I ran into, as that API was meant to support multiple translations, was that they don’t all agree on where chapters and verses start/stop. Some translations include or leave out a verse or two compared to others, and in some cases will number verses oddly to show it (like skipping from verse 20 to 24 because the translation chose to leave out 21-23), which could cause “verse 24” to refer to different verses depending on the translation.