NFT API, giving total wrong results. EG "unrevealed" when token was revealed and has image URL months ago

How does the NFT API get an update for all tokens of an NFT project please?

I’m trying to pull some data on a few projects and it comes back with metadata as if the project is unrevealed. Missing traits, no image URLS etc. Projects I’ve tried are months and sometimes years old, and metadata is wrong.

Go to etherscan - yes the project has proper URIs
Try getting the metadata from etherscan - yes. Copy image URL - it works?
But in Moralis API it returns all tokens with, for example, “unrevealed.gif” for their images.
Do you guys cache stuff? Am I getting old, cached data?

How to refresh all 10k (or 5555 or 8888) of a project?
Resync seems to only be 1 token at a time - this is not helpful. And I don’t even know what projects are wrong until after I pull the data!

For example
Looking at the Avalanche project Woofys
Look at token 10 as an example
It returns metadata address of
And looking at that JSON the image URL is

But in the result from the API, the metadata that Moralis gives is:
“token_uri”: “”,
“metadata”: {
“name”: “Woofy Capsule”,
“image”: “”,

And same for all tokens, they’re all wrong.

How to force update for a set of contracts please?


Hi @JimBob

Our API does not recognize the metadata changes. In such cases, you can use the reSyncMetadata endpoint to resync the tokenURI and tokenMetadata.

Are you insane? Resync metadata is ONE TOKEN AT A TIME
I came back to Moralis after a long time because it seemed like you were doing better but you’re all still half-assing this, aren’t you?
What’s the point of an NFT API if everything is wrong
It’s not one project
It’s a lot of them

Most of the token-revealable NFT contracts use a custom contract code for it so there is no standard way to recognize such token metadata updates. And we only auto-refresh NFT metadata if it is available on IPFS storage.

We could run a force update of the entire contract but it does take time due to the large number of NFTs.
If you are sure that all the NFTs metadata are outdated we can initiate a force update on the contract.

You could also add a button on your website for users to force the metadata resync, just like how Opensea handles such cases.:grinning_face_with_smiling_eyes:

I don’t know about “most”. It usually mentions “URI”, some regex’s could find it probably.

I could add a button but I’m not making a website, I’m undertaking a research project and data analysis.

Also - button for what? Again as I said above, to refresh a single NFT? Is not so useful. Because meanwhile if I WAS building a Dapp of some kind as a marketplace or swap site or NFT info whatever, the other 9,998 would still be wrong until everyone manually refreshed their own tokens.

I suppose we could use the API credits to iterate through them but we wouldn’t even get through one project a week then.

I will run the force update for this contract. It should be fixed soon.

Thanks John that’s helpful, kind of you

But as I said, I’m seeing this with other collections and so I need to look into another method for data collection.

Thanks anyway though