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?


1 Like

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).

1 Like

Has this changed? I’m not seeing it in the mapidoc. I’m guessing maybe it’s still just undocumented? (How is the 'theoretical' tag determined? - #4 by shyamd) I do see exp, but it’s not clear if this would be used. Asking here mostly because this pops up via Google search.

Thanks @sgbaird. We’re very close to officially announcing our new API, see and Materials Project - API for details.

This is slightly better documented (all fields are present and typed), including theoretical. I believe the current flag is now a boolean and just True or False. @munrojm can confirm.

Once we’ve officially announced, we will archive the mapidoc repo and point it towards our new API documentation.

Let me know if you need any further info.