Hi @sasha,
Will just point you to here for a longer post I made on the subject for more details: Updates to Identifier Systems in the Materials Project
For #1 about urls + website: See the numbered list in that post and the bit that starts with Translating the comparisons above into URLs/queries:
TLDR is the backend will accept any id format you pass, even mixed formats, so URLs, Google search results, DOIs, etc. will always still resolve. The website also has user a profile option in the Dashboard to change how IDs are displayed across the website.
For #2 the REST API accepts an additional query parameter id_format to have the IDs formatted directly in the response from the server, see the final footer marked ***. Probably the most relevant for you as a dev.
This option hasn’t propagated to the mp-api client yet in a documented way. It can be passed as a kwarg to the internal _search function, but it’s not very ergonomic
>>> mpr = MPRester(use_document_model=False)
>>> mpr.materials.summary._search(
material_ids=["mp-149"],
fields=["material_id", "task_ids"],
id_format="legacy"
)
[{'material_id': 'mp-149', 'task_ids': ['mp-2629357', 'mp-2064724', ...]}]
On the todo list for the next release of mp-api