tokenURI is not changing dynamically while getting NFTs

I am using this API endpoint to get NFTs in wallet:
https://deep-index.moralis.io/api/v2/${wallet}/nft/{contractAddress}?chain=rinkeby&format=decimal

NFTs was not revealed at first, so the endpoint returns the unRevealed URI as tokenURI.
But after revealed it is still returns unRevelaed URI instead of returning revealed URI.
If I call tokenURI() endpoint in contract then it return correct one, but the moralis endpoint is still return old one.

Arenโ€™t the secret URIโ€™s only specific to the marketplace? because if it is on the blockchain then it can be viewed by everyone.

Or can you share an nft contract, id to check the same?

Here is contract address is 0x49a8e659a8f84ab3b4bf9be80c0b84df4aa152d6
And it is deployed in rinkeby testnet.
My wallet address is 0x616bb70bADe325AcE258B5D5C2b9E8EbF0d0dce9
https://deep-index.moralis.io/api/v2/0x616bb70bADe325AcE258B5D5C2b9E8EbF0d0dce9/nft/0x49a8e659a8f84ab3b4bf9be80c0b84df4aa152d6?chain=rinkeby&format=decimal

Check the response of the above endpoint.
The tokenURI of the result is different from the contract response.

I am not sure the reason.

I did not understand what you meant by this. I See that all NFTโ€™s have same image data.

Is the NFT image data supposed to have different image?

Yes, it is unrevealed URI.
As it is revealed it should return different metadata with different image.
You can check the tokenURI here:
https://rinkeby.etherscan.io/address/0x49a8e659a8f84ab3b4bf9be80c0b84df4aa152d6#readContract

Use tokenURI() function in the above link

Ahh Yes. Got it.
The NFT data of this contract is last synced last on 2022-04-18 to 2022-04-20.

Is the NFT data revealed after this date?
If yes, then you may require to resync metadata using nft/{address}/{token_id}/metadata/resync endpoint.