Hi. Can I get the “Decomposes To” property in the “Material Details” tab of Materials Project site through API?
I asked because there is no description of “Decomposes To” property in the API documentation.
I would like to get information only on whether each material is “Stable” or not.
You can! It is available under the decomposes_to field of a material document. Using pymatgen's MPRester.query (a wrapper around the /rest/v2/query API endpoint):
from pymatgen import MPRester
mpr = MPRester()
results = mpr.query(
{"e_above_hull": 0, "decomposes_to": {"$exists": True}},
["material_id", "e_above_hull", "decomposes_to"]
)
len(results) # 6
results2 = mpr.query(
{"decomposes_to": {"$exists": False}},
["material_id", "e_above_hull"]
)
all(r['e_above_hull'] == 0 for r in results2) # True
The above assumes you have your API key e.g. set via a pymatgen configuration file.
Also, note above that simply filtering for energy above hull (e_above_hull) equal to zero does not ensure that all returned materials are stable. Ensuring that the decomposes_to field is not present in a material document is more reliable. This seems like an issue of numerical imprecision, where the energy above hull is “very close” to zero.
I noticed that the decomposes_to field is missing from the API documentation repository, so I added an issue to ensure that it will be added.
1 Like