OpenSea token URIs returned from getNFTs method returns 404

Hey all, I’m new to using Moralis so I apologise in advance if I’ve missed something obvious. I have been following this helpful tutorial to learn how to use the getNFTs method:

Currently, the code I have works great in retrieving all the NFTs a user has owned but I’m getting a problem actually accessing the file associated with the NFT when using the token URI. All URIs on IPFS works perfectly and have no issues but other URIs returned (such as those from OpenSea) are returning as {"success": false}

Below is my current code. Are there any extra headers I need to apply before sending the request? According to the video tutorial, it doesn’t look like I need to as they were able to retrieve the image from the NFT from an OpenSea URI without any extra config. I’m using the same account address in the video too and this is one of the URIs that I receive:

getAllNFTs = async (account) => {
    const nfts = []
    for (const chain of chains) {
        const options = { chain: chain, address: account }
        const chainNFTs = await Moralis.Web3API.account.getNFTs(options);
        chainNFTs.result.forEach(nft => {
            if (nft.token_uri) {
                const url = this.fixUrl(nft.token_uri)
                    .then((res) => {
                        const item = { chain: chain, src: '' }
                        Object.keys( => {
                            if (key.includes('image')) {
                                item.src = this.fixUrl([key])
                    .catch((err) => { console.log(err) })
    return nfts

fixUrl(url) {
    if (url.startsWith('ipfs')) {
        return '' + url.split('ipfs://ipfs/').slice(-1)
    } else {
        return url + '?format=json'

it looks like OpenSea API doesn’t work now on polygon, that API returns 404 error code for that url