How to use "has_icsd_exptl_id" property in pymatgen query function?

Hello all,

I just realized that Materials Project has updated the query at website to include matching for experimentally confirmed structures, by using the property has_icsd_exptl_id. However, I cant find a way to use this property to query using MPRester query in python. If I try, for example, mp.query({“has_icsd_exptl_id”: True"}, [“pretty_formula”]), the results are blank.

Is there anyway to use MPAPI with has_icsd_exptl_id, as I am looking for only experimentally matched structures?


There is no such field. What we added was a theoretical flag that is False when we have confidence the structure comes from an experimental source. We use that plus having a list of ICSD IDs to filter for experimental ICSD compounds. We’re building up a few more experimental data sets so this will likely change in the future.

@pbcst where did you find the “has_icsd_exptl_id” key?

Hi, I am curious if there is a way to use this ‘theoretical’ flag in pymatgen ?

Yes, absolutely. You can use the MPRester.query() method and ask for the theoretical property. This is not documented yet so is considered subject to change, so use at your own risk: the data itself should be reliable, it is the interface to that data that might change.

Note that this is a three-valued flag: it can return False, True or None, where False means it is an experimentally-known structure, True means it is not, and None means we don’t have enough information at this point (in this case, you can assume it’s likely theoretical).