As of January 28, 2026, users are experiencing errors when attempting to access the Materials Project API via MPRester.
Ref.:https://github.com/materialsproject/api/issues/1055#issuecomment-3809363619
Issue Overview
The following code triggers a JSONDecodeError:
from mp_api.client import MPRester
MPRester("YOUR_API_KEY")Recommended Action
Since this is likely a server-side error on the Materials Project end, there is no fix required on the user side.
We anticipate that the Materials Project team will update their server configurations shortly. As this is not a bug in your local program, your existing code should function normally once their server settings are restored to their previous state.
Technical Details
The Materials Project provides a "heartbeat" endpoint to check system status: https://api.materialsproject.org/heartbeat/
Based on the mp-api source code, this endpoint usually does not require authentication. However, it is currently returning a 403 Forbidden error (indicating missing or invalid credentials).
Due to a bot attack on the Materials Project starting January 27th, the server is currently experiencing intermittent errors. There are likely no actions users can take on their end to resolve this.
Minimum Reproducible Code
You can confirm the 403 error from the heartbeat endpoint using the following snippet:
from requests import get endpoint = "https://api.materialsproject.org/" response = get(url=endpoint + "heartbeat") print(response.status_code)
This corresponds to the logic found in the following line of the mp-api library (which is where the JSONDecodeError originates):
For mp-api==0.45.15:
https://github.com/materialsproject/api/blob/v0.45.15/mp_api/client/mprester.py#L494