Is it good practice to use a Web API to persist your data within any game?

I have a Web API service which is used to store/read data into/from my MSSQL database.

My game makes calls to the service when data persistence is required.

Is there a more efficient way of persisting data (or recommended way of storing data) or is my architecture considered “acceptable”?

Should I rather be using other technologies such as Message Queuing, Document-DBs, etc?

It depends.

If your game would be something like mmo, where requests to persist something are going to be every second from every playing user then you definitely should roll some queueing.

But if your game just saves some data after - for example - player has finished some level, which means one request per minute or something, then plain web api requests should be more than enough. This could change, once you gain some REALLY BIG user base, or implement some new, more demanding features.

But anyway you should try to avoid premature optimizations and overthinking at this stage. If it’s a simple and cheap solution which works for your game (and it looks like it is indeed) then you should stay with it.