Is it possible to add a cpt that can only be viewed in backend, not edited?

Looking at the documentation for register_post_type(), I’d suggest trying to set show_ui to false in the array of arguments you’re passing in:

‘show_ui’
(bool) Whether to generate and allow a UI for managing this post type in the admin. Default is value of $public.

Depending on your scenario, you might be better off setting public to false.

tech