We need to work with layouts, though Apex code failed with an error for non-admin users.
Error message:
[{"message":"sObject type 'Layout' is not supported.","errorCode":"INVALID_TYPE"}]
Rest call is:
/services/data/v51.0/tooling/query?q=select+FullName+FROM+Layout+where+Id+=+xxx
It would work with ViewAllData permissions but this is totally insecure.
We found out later that it will work if user will have ViewSetup (+ dependent ViewRoles) permission.
But this is not a solution for us to allow all users have View Setup permissions.
Is there any workaround or another more limited permission to give users an ability request Layout sObject from tooling API ?