I want an api or something that can list all the nfts owned by an address, as it is shown on etherscan so I assume we can get that but not able to find that. Also I know that we can do that by monitoring Transfer event but as it is shown on etherscan so do etherscan provide any API to fetch these infos directly?
You can use a service called Moralis https://moralis.io/
They have an API you can use to query exactly that and all other kinds of useful things. It's currently free.
I don't work for them or have any investment in them but I have been using their service for a month or so and it's really really good!