Clients
Whilst OPTIMADE APIs can be accessed with generic tools (e.g., curl) and any programming language, there a set of specialised clients have been created:
Materials Cloud Tool
An open-source web and local executable client developed by Casper W. Andersen (THEOS, EPFL) using VoilĂ is available on Materials Cloud.
It allows for searching through OPTIMADE databases, filtering on the structure property fields defined in the OPTIMADE API specification, and inspect and download found structures in various file formats (CIF, PDB, VASP POSCAR, XYZ, Quantum ESPRESSO input, and more) utilizing the adapters from the Python optimade
package in the optimade-python-tools
repository.
The filtering can be done either using the OPTIMADE filter language (see the specification for more information) directly, or one can use the friendly filtering widgets (default).
Try this: materialscloud.org/optimadeclient
optimade.science
An open-source web client developed by Tilde MI utilizing the Cross-Origin Resource Sharing (CORS) is available as a single universal index.html
file.
Can be run from the server, USB-stick, etc.
It allows for searching through all the known OPTIMADE databases from the OPTIMADE providers list simultaneously using the OPTIMADE filter language (see the specification for more information).
Try this: optimade.science
optimade-python-tools
The optimade-python-tools
Python library contains an asynchronous client implementation that can be used to concurrently query all OPTIMADE databases from Python code or from the command-line.
More information can be found on the documentation site.
Try this: optimade-python-tools
Swagger
Through the Swagger/OpenAPI UI, one can try making queries to implementations hosting an OpenAPI specification.
Implementations based on the Python optimade
package from the optimade-python-tools
repository automatically creates and hosts an OpenAPI specification at /extensions/openapi.json
.
Note, this is the default location and may not be where the OpenAPI specification is found for individual implementations.
Try this: