Is calling the api in a report template 'bad form'?
This will result in one api call per row, which can add up to a lot of queries on the db.

A lighter-weight solution would be do do a single api call before the loop to look up all location types and store them in a local variable, then you can use array_search or similar for each row to get the proper value.