The aim of OPTIMADE is to develop a common API, compliant with the JSON:API 1.0 specification. This is to enable interoperability among databases that serve crystal structures and calculated properties of existing and hypothetical materials.
This repository contains a library of tools for implementing and consuming OPTIMADE APIs using Python:
optimade.adapters
module.optimade-get
) that can query multiple OPTIMADE providers concurrently with a given filter, at the command-line or from Python code.optimade-validator
) or used as a GitHub Action from optimade-validator-action; this validator is used to construct the providers dashboard.This document, guides, and the full module API documentation can be found online at https://optimade.org/optimade-python-tools. In particular, documentation of the OPTIMADE API response data models (implemented here with pydantic) can be found online under OPTIMADE Data Models.
The release history and changelog can be found in the changelog.
Detailed installation instructions for different use cases (e.g., using the library or running a server) can be found in the installation documentation.
The latest stable version of this package can be obtained from PyPI:
pip install optimade
The latest development version of this package can be obtained from the main branch of this repository:
git clone https://github.com/Materials-Consortia/optimade-python-tools
Each release of the optimade
package from this repository only targets one version of the OPTIMADE specification, summarised in the table below.
OPTIMADE API version | optimade requirements |
---|---|
v1.0.0 | optimade<=0.12.9 |
v1.1.0 | optimade>=0.16,<1.2 |
v1.2.0 | optimade>=1.2.0 |
All development of this package (bug reports, suggestions, feedback and pull requests) occurs in the optimade-python-tools GitHub repository. Contribution guidelines and tips for getting help can be found in the contributing notes.
If you use this package to access or serve OPTIMADE data, we kindly request that you cite the following:
openapi.json
and index_openapi.json
.openapi.json
(see also interactive JSON editor).openapi.json
specification.