How do I get JSON data from a custom entity
Dou you have an access control handler or an admin permission to control view/create/update/delete access to your entities?

You need to have that, in addition to the rest specific permissions. In fact, those will go away in 8.2, only the generic entity access will matter then.