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: