is the service defined in the same schema as your SQL*Plus user scenario?
Yes. And we are using the same account for ords connection with database.
Also we recently noticed that API was working fine earlier, but stopped working as soon as DB Vault was enabled on database.
Well, it sounds to me like DB Vault broke it, so maybe it would make sense to look into what DB Vault changed or try to re-install ORDS after DB Vault.
As suspected the proxy user ords_public_user had some part in it. The issue got resolved, when we added this user to Oracle Default Schema Protection Realm and authorizing is to be proxy for any user.
I think this should be added as documentation or at least a note, as it looks like a ords limitation in a simple insert, if table has a text index defined (With DB Vault enabled).