scientific-skills/database-lookup/references/materials-project.md
https://api.materialsproject.org
Requires a free API key. Register at https://materialsproject.org (free account).
| Env Variable | Header |
|---|---|
MP_API_KEY | X-API-KEY: your_key_here |
All requests must include the API key header.
The current API is v2 (based on the mp-api Python client and the new MAPI endpoints). The legacy v1 REST API at https://www.materialsproject.org/rest/v2/ is deprecated.
GET /materials/summary/?formula=Fe2O3&_fields=material_id,formula_pretty,band_gap,formation_energy_per_atom
GET /materials/summary/?elements=Si,O&_fields=material_id,formula_pretty,band_gap
Query parameters:
formula — exact chemical formula (e.g., Fe2O3, SiO2)chemsys — chemical system, dash-separated (e.g., Fe-O, Li-Fe-P-O)elements — comma-separated elements that must be presentband_gap_min / band_gap_max — filter by band gap (eV)is_stable — true to return only thermodynamically stable phases_fields — comma-separated list of fields to return_limit — max results (default 10, max 1000)_skip — offset for paginationGET /materials/summary/mp-149?_fields=material_id,formula_pretty,band_gap,formation_energy_per_atom,symmetry
Material IDs have the format mp-NNNNN (e.g., mp-149 for silicon).
material_id, formula_pretty, formula_anonymous, chemsys, volume, density, density_atomic, symmetry, band_gap, cbm, vbm, is_gap_direct, is_metal, is_magnetic, ordering, total_magnetization, formation_energy_per_atom, energy_above_hull, is_stable, equilibrium_reaction_energy_per_atom, nsites, elements, nelements, composition, structure
GET /materials/summary/mp-149?_fields=structure
Returns the structure as a pymatgen-compatible JSON dict with lattice parameters and atomic sites.
GET /materials/elasticity/?material_id=mp-149&_fields=material_id,bulk_modulus,shear_modulus,elastic_tensor
GET /materials/electronic_structure/bandstructure/mp-149
GET /materials/electronic_structure/dos/mp-149
GET /materials/thermo/?formula=Fe2O3&_fields=material_id,formation_energy_per_atom,energy_above_hull
GET /materials/summary/?elements=O&band_gap_min=2&is_stable=true&_fields=material_id,formula_pretty,band_gap,formation_energy_per_atom&_limit=10
{
"data": [
{
"material_id": "mp-149",
"formula_pretty": "Si",
"band_gap": 0.6105,
"formation_energy_per_atom": 0.0
}
],
"meta": {
"total_doc": 1
}
}
_fields to reduce payload size and improve performancemp-api handles pagination and retries automatically{
"detail": "Not authenticated"
}
HTTP 401 = missing or invalid API key. HTTP 404 = material not found. HTTP 429 = rate limited.