openapi: 3.1.0 info: title: Materials Project Defect Tasks Materials Bonds API description: "\nThe Materials Project API allows anyone to have direct access to current, up-to-date information from the Materials Project database in a structured way.\n\nThis allows for analysis, development of automated tools, machine learning, downloading personal copies of the Materials Project database and more on a large scale.\n\nThe API is offered with the hopes of making Materials Project data more useful to you. We want you to use our data! As such, the API is offered free-of-charge and we support several tools to help you get started.\n\n## API Key\nTo make any request to the Materials Project API, you must use an API key. Your API key is generated for you automatically upon registering with the Materials Project website and is synced with the email you used to register.\n\nRemember to keep your API key safe and to not share it with anyone you do not trust.\n\nIf you are logged in, you can always access your API key from this page or from your [dashboard](https://next-gen.materialsproject.org/dashboard).\n\nIf you intend heavy API usage, you can give us a heads up by sending a message to . With the exception of retrieving charge densities, this is not required, but may help us if we see unusual load on our servers.\n\n## Accessing Data\nTo use the API, you have three options:\n\n1. You can use our first-party supported Python client. This is the recommend route. The `mp-api` package containing the client is pip installable.\n\n ```\n pip install mp-api\n ```\n\n The `MPRester` client can be accessed by importing from it. This will ultimately replace the legacy `MPRester` available in pymatgen.\n\n For more details on how to use this, including code examples, please see .\n\n2. You can demo the API interactively on this documentation page. Click the \"Authorize\" button, paste in your API key, and then click the appropriate section to try out a query.\n\n3. Since this is a REST API, and offers a fully-compliant OpenAPI specification, it's possible to use the API with many libraries in many languages and environments, including JavaScript, MATLAB, Mathematica, etc. However, we do not offer first-party support for explaining how to do this, and you will have to follow the specification yourself.\n\n" version: 0.86.4rc5.dev1+g77c2c1315 x-logo: url: https://raw.githubusercontent.com/materialsproject/emmet/master/emmet-api/emmet/api/core/assets/mp_logo_small.png security: - ApiKeyAuth: [] tags: - name: Materials Bonds description: Route for retrevial of bonding information for a given material. paths: /materials/bonds/: get: tags: - Materials Bonds summary: Get BondingDoc documents operationId: search_materials_bonds__get parameters: - name: material_ids in: query required: false schema: anyOf: - type: string - type: 'null' description: Comma-separated list of material_id values to query on title: Material Ids description: Comma-separated list of material_id values to query on - name: max_bond_length_max in: query required: false schema: anyOf: - type: number - type: 'null' description: Maximum value for the maximum bond length in the structure. title: Max Bond Length Max description: Maximum value for the maximum bond length in the structure. - name: max_bond_length_min in: query required: false schema: anyOf: - type: number - type: 'null' description: Minimum value for the maximum bond length in the structure. title: Max Bond Length Min description: Minimum value for the maximum bond length in the structure. - name: min_bond_length_max in: query required: false schema: anyOf: - type: number - type: 'null' description: Maximum value for the minimum bond length in the structure. title: Min Bond Length Max description: Maximum value for the minimum bond length in the structure. - name: min_bond_length_min in: query required: false schema: anyOf: - type: number - type: 'null' description: Minimum value for the minimum bond length in the structure. title: Min Bond Length Min description: Minimum value for the minimum bond length in the structure. - name: mean_bond_length_max in: query required: false schema: anyOf: - type: number - type: 'null' description: Maximum value for the mean bond length in the structure. title: Mean Bond Length Max description: Maximum value for the mean bond length in the structure. - name: mean_bond_length_min in: query required: false schema: anyOf: - type: number - type: 'null' description: Minimum value for the mean bond length in the structure. title: Mean Bond Length Min description: Minimum value for the mean bond length in the structure. - name: coordination_envs in: query required: false schema: anyOf: - type: string - type: 'null' description: Query by coordination environments in the material composition as a comma-separated list (e.g. 'Mo-S(6),S-Mo(3)') title: Coordination Envs description: Query by coordination environments in the material composition as a comma-separated list (e.g. 'Mo-S(6),S-Mo(3)') - name: coordination_envs_anonymous in: query required: false schema: anyOf: - type: string - type: 'null' description: Query by anonymous coordination environments in the material composition as a comma-separated list (e.g. 'A-B(6),A-B(3)') title: Coordination Envs Anonymous description: Query by anonymous coordination environments in the material composition as a comma-separated list (e.g. 'A-B(6),A-B(3)') - name: _page in: query required: false schema: type: integer description: Page number to request (takes precedent over _limit and _skip). title: ' Page' description: Page number to request (takes precedent over _limit and _skip). - name: _per_page in: query required: false schema: type: integer description: Number of entries to show per page (takes precedent over _limit and _skip). Limited to 1000. default: 100 title: ' Per Page' description: Number of entries to show per page (takes precedent over _limit and _skip). Limited to 1000. - name: _skip in: query required: false schema: type: integer description: Number of entries to skip in the search. default: 0 title: ' Skip' description: Number of entries to skip in the search. - name: _limit in: query required: false schema: type: integer description: Max number of entries to return in a single query. Limited to 1000. default: 100 title: ' Limit' description: Max number of entries to return in a single query. Limited to 1000. - name: _fields in: query required: false schema: type: string description: 'Fields to project from BondingDoc as a list of comma separated strings. Fields include: `builder_meta` `nsites` `elements` `nelements` `composition` `composition_reduced` `formula_pretty` `formula_anonymous` `chemsys` `volume` `density` `density_atomic` `symmetry` `material_id` `deprecated` `deprecation_reasons` `last_updated` `origins` `warnings` `structure` `property_name` `structure_graph` `method` `bond_types` `bond_length_stats` `coordination_envs` `coordination_envs_anonymous`' title: ' Fields' description: 'Fields to project from BondingDoc as a list of comma separated strings. Fields include: `builder_meta` `nsites` `elements` `nelements` `composition` `composition_reduced` `formula_pretty` `formula_anonymous` `chemsys` `volume` `density` `density_atomic` `symmetry` `material_id` `deprecated` `deprecation_reasons` `last_updated` `origins` `warnings` `structure` `property_name` `structure_graph` `method` `bond_types` `bond_length_stats` `coordination_envs` `coordination_envs_anonymous`' - name: _all_fields in: query required: false schema: type: boolean description: Include all fields. default: false title: ' All Fields' description: Include all fields. responses: '200': description: Search for a BondingDoc content: application/json: schema: $ref: '#/components/schemas/Response_BondingDoc_' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: EmmetMeta: properties: emmet_version: anyOf: - type: string - type: 'null' title: Emmet Version description: The version of emmet this document was built with. default: 0.86.4rc4 pymatgen_version: anyOf: - type: string - type: 'null' title: Pymatgen Version description: The version of pymatgen this document was built with. default: 2026.4.16 run_id: anyOf: - type: string - type: 'null' title: Run Id description: The run id associated with this data build. batch_id: anyOf: - type: string - type: 'null' title: Batch Id description: Identifier corresponding to the origin of this document's blessed task. database_version: anyOf: - type: string - type: 'null' title: Database Version description: The database version for the built data. build_date: anyOf: - type: string format: date-time - type: 'null' title: Build Date description: The build date for this document. license: anyOf: - type: string enum: - BY-C - BY-NC - type: 'null' title: License description: License for the data entry. type: object title: EmmetMeta description: Default emmet metadata. TypedAggregateProperitesDict: properties: magmom: anyOf: - items: type: number type: array - type: 'null' title: Magmom charge: anyOf: - items: type: number type: array - type: 'null' title: Charge velocities: anyOf: - items: prefixItems: - type: number - type: number - type: number type: array maxItems: 3 minItems: 3 type: array - type: 'null' title: Velocities selective_dynamics: anyOf: - items: prefixItems: - type: boolean - type: boolean - type: boolean type: array maxItems: 3 minItems: 3 type: array - type: 'null' title: Selective Dynamics type: object title: TypedAggregateProperitesDict TypedStructureGraphDict: properties: '@module': type: string title: '@Module' '@class': type: string title: '@Class' structure: $ref: '#/components/schemas/TypedStructureDict' graphs: $ref: '#/components/schemas/TypedGraphDict' type: object required: - '@module' - '@class' - structure - graphs title: TypedStructureGraphDict Meta: properties: api_version: type: string title: Api Version description: A string containing the version of the Materials API implementation, e.g. v0.9.5 default: 0.86.4rc5.dev1+g77c2c1315 time_stamp: type: string format: date-time title: Time Stamp description: A string containing the date and time at which the query was executed total_doc: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Total Doc description: The total number of documents available for this query facet: anyOf: - additionalProperties: true type: object - type: 'null' title: Facet description: A dictionary containing the facets available for this query additionalProperties: true type: object title: Meta description: Meta information for the MAPI Response. TypedGraphDict: properties: directed: type: boolean title: Directed multigraph: type: boolean title: Multigraph graph: $ref: '#/components/schemas/GraphDescriptorDict' nodes: items: $ref: '#/components/schemas/TypedNodeDict' type: array title: Nodes adjacency: items: items: $ref: '#/components/schemas/TypedAdjacencyDict' type: array type: array title: Adjacency type: object required: - directed - multigraph - graph - nodes - adjacency title: TypedGraphDict TypedSpeciesDict: properties: element: anyOf: - type: string - type: 'null' title: Element oxidation_state: anyOf: - type: number - type: 'null' title: Oxidation State spin: anyOf: - type: number - type: 'null' title: Spin occu: anyOf: - type: number - type: 'null' title: Occu type: object title: TypedSpeciesDict HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError TypedSiteDict: properties: label: anyOf: - type: string - type: 'null' title: Label name: anyOf: - type: string - type: 'null' title: Name properties: anyOf: - $ref: '#/components/schemas/TypedSiteProperitesDict' - type: 'null' species: anyOf: - items: $ref: '#/components/schemas/TypedSpeciesDict' type: array - type: 'null' title: Species abc: anyOf: - items: type: number type: array - type: 'null' title: Abc xyz: anyOf: - items: type: number type: array - type: 'null' title: Xyz type: object title: TypedSiteDict GraphDescriptorDict: properties: name: type: string title: Name edge_weight_name: type: string title: Edge Weight Name edge_weight_units: type: string title: Edge Weight Units type: object required: - name title: GraphDescriptorDict TypedStructureDict: properties: '@module': type: string title: '@Module' '@class': type: string title: '@Class' charge: anyOf: - type: number - type: 'null' title: Charge lattice: $ref: '#/components/schemas/TypedLatticeDict' sites: items: $ref: '#/components/schemas/TypedSiteDict' type: array title: Sites properties: anyOf: - $ref: '#/components/schemas/TypedAggregateProperitesDict' - type: 'null' type: object required: - '@module' - '@class' - lattice - sites title: TypedStructureDict Response_BondingDoc_: properties: data: anyOf: - items: $ref: '#/components/schemas/BondingDoc' type: array - type: 'null' title: Data description: List of returned data errors: anyOf: - items: $ref: '#/components/schemas/Error' type: array - type: 'null' title: Errors description: Any errors on processing this query meta: anyOf: - $ref: '#/components/schemas/Meta' - type: 'null' description: Extra information for the query type: object title: Response[BondingDoc] Error: properties: code: type: integer title: Code description: The error code message: type: string title: Message description: The description of the error type: object required: - code - message title: Error description: Base Error model for General API. TypedSiteProperitesDict: properties: magmom: anyOf: - type: number - type: 'null' title: Magmom charge: anyOf: - type: number - type: 'null' title: Charge velocities: anyOf: - prefixItems: - type: number - type: number - type: number type: array maxItems: 3 minItems: 3 - type: 'null' title: Velocities selective_dynamics: anyOf: - prefixItems: - type: boolean - type: boolean - type: boolean type: array maxItems: 3 minItems: 3 - type: 'null' title: Selective Dynamics coordination_no: anyOf: - type: integer - type: 'null' title: Coordination No forces: anyOf: - items: type: number type: array - type: 'null' title: Forces type: object title: TypedSiteProperitesDict ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError SymmetryData: properties: crystal_system: anyOf: - type: string - type: 'null' title: Crystal System description: The crystal system for this lattice. symbol: anyOf: - type: string - type: 'null' title: Space Group Symbol description: The spacegroup symbol for the lattice. hall: anyOf: - type: string - type: 'null' title: Hall Symbol description: Hall symbol for the lattice number: anyOf: - type: integer - type: 'null' title: Space Group Number description: The spacegroup number for the lattice. point_group: anyOf: - type: string - type: 'null' title: Point Group Symbol description: The point group for the lattice. symprec: anyOf: - type: number - type: 'null' title: Symmetry Finding Precision description: The precision provided to spglib to determine the symmetry of this structure. angle_tolerance: anyOf: - type: number - type: 'null' title: Angle Tolerance description: Angle tolerance provided to spglib to determine the symmetry of this structure. version: anyOf: - type: string - type: 'null' title: spglib version type: object title: SymmetryData description: Defines a symmetry data set for materials documents PropertyOrigin: properties: name: type: string title: Name description: The property name task_id: anyOf: - type: string pattern: ^([A-Za-z]+-)?(\d+)(-[A-Za-z0-9]+)*$ examples: - mp-3534 - '3453' - mp-834-Ag - type: string examples: - mp-ft - task:pqrs title: Task Id description: The calculation ID this property comes from. last_updated: type: string format: date-time title: Last Updated description: The timestamp when this calculation was last updated type: object required: - name - task_id title: PropertyOrigin description: Provenance document for the origin of properties in a material document TypedAdjacencyDict: properties: to_jimage: prefixItems: - type: integer - type: integer - type: integer type: array maxItems: 3 minItems: 3 title: To Jimage weight: type: number title: Weight id: type: integer title: Id key: type: integer title: Key type: object required: - to_jimage - weight - id - key title: TypedAdjacencyDict TypedLatticeDict: properties: matrix: items: items: type: number type: array type: array title: Matrix pbc: anyOf: - prefixItems: - type: boolean - type: boolean - type: boolean type: array maxItems: 3 minItems: 3 - type: 'null' title: Pbc a: type: number title: A b: type: number title: B c: type: number title: C alpha: type: number title: Alpha beta: type: number title: Beta gamma: type: number title: Gamma volume: type: number title: Volume type: object required: - matrix - a - b - c - alpha - beta - gamma - volume title: TypedLatticeDict TypedBondLengthStatsDict: properties: all_weights: items: type: number type: array title: All Weights min: type: number title: Min max: type: number title: Max mean: type: number title: Mean variance: type: number title: Variance type: object required: - all_weights - min - max - mean - variance title: TypedBondLengthStatsDict TypedNodeDict: properties: id: type: integer title: Id type: object required: - id title: TypedNodeDict BondingDoc: properties: builder_meta: anyOf: - $ref: '#/components/schemas/EmmetMeta' - type: 'null' description: Builder metadata. nsites: anyOf: - type: integer - type: 'null' title: Nsites description: Total number of sites in the structure. elements: anyOf: - items: type: string type: array - type: 'null' title: Elements description: List of elements in the material. nelements: anyOf: - type: integer - type: 'null' title: Nelements description: Number of elements. composition: anyOf: - additionalProperties: type: number type: object - type: 'null' title: Composition description: Full composition for the material. composition_reduced: anyOf: - additionalProperties: type: number type: object - type: 'null' title: Reduced Composition description: Simplified representation of the composition. formula_pretty: anyOf: - type: string - type: 'null' title: Pretty Formula description: Cleaned representation of the formula. formula_anonymous: anyOf: - type: string - type: 'null' title: Anonymous Formula description: Anonymized representation of the formula. chemsys: anyOf: - type: string - type: 'null' title: Chemical System description: Dash-separated string of elements in the material. volume: anyOf: - type: number - type: 'null' title: Volume description: Total volume for this structure in ų. density: anyOf: - type: number - type: 'null' title: Density description: Density in g/cm³. density_atomic: anyOf: - type: number - type: 'null' title: Packing Density description: The atomic packing density in ų/atom. symmetry: anyOf: - $ref: '#/components/schemas/SymmetryData' - type: 'null' description: Symmetry data for this material. material_id: anyOf: - type: string pattern: ^([A-Za-z]+-)?(\d+)(-[A-Za-z0-9]+)*$ examples: - mp-3534 - '3453' - mp-834-Ag - type: string examples: - mp-ft - task:pqrs - type: 'null' title: Material Id description: 'The Materials Project ID of the material, used as a universal reference across property documents.This comes in the form: mp-******.' deprecated: type: boolean title: Deprecated description: Whether this property document is deprecated. default: true deprecation_reasons: anyOf: - items: type: string type: array - type: 'null' title: Deprecation Reasons description: List of deprecation tags detailing why this document isn't valid. last_updated: type: string format: date-time title: Last Updated description: Timestamp for the most recent calculation update for this property. origins: anyOf: - items: $ref: '#/components/schemas/PropertyOrigin' type: array - type: 'null' title: Origins description: Dictionary for tracking the provenance of properties. warnings: items: type: string type: array title: Warnings description: Any warnings related to this property. default: [] property_name: type: string title: Property Name default: bonding structure_graph: $ref: '#/components/schemas/TypedStructureGraphDict' title: Structure Graph description: Structure graph method: type: string title: Method description: Method used to compute structure graph. bond_types: additionalProperties: items: type: number type: array type: object title: Bond Types description: Dictionary of bond types to their length, e.g. a Fe-O to a list of the lengths of Fe-O bonds in Angstrom. bond_length_stats: $ref: '#/components/schemas/TypedBondLengthStatsDict' description: 'Dictionary of statistics of bonds in structure ' coordination_envs: items: type: string type: array title: Coordination Envs description: List of co-ordination environments, e.g. ['Mo-S(6)', 'S-Mo(3)']. coordination_envs_anonymous: items: type: string type: array title: Coordination Envs Anonymous description: List of co-ordination environments without elements present, e.g. ['A-B(6)', 'A-B(3)']. type: object required: - structure_graph - method - bond_types - bond_length_stats - coordination_envs - coordination_envs_anonymous title: BondingDoc description: 'Structure graphs representing chemical bonds calculated from structure using near neighbor strategies as defined in pymatgen.' securitySchemes: ApiKeyAuth: descriptions: MP API key to authorize requests name: X-API-KEY in: header type: apiKey