Materials Project Materials XAS API

Route providing computed x-ray absorption spectroscopy data for a material following the methodology discussed by [Mathew *et al.*](https://doi.org/10.1038/sdata.2018.151) and [Chen *et al.*](https://doi.org/10.1038/s41597-021-00936-5) Note that x-ray absorption spectroscopy data has not been calculated for all materials in the Materials Project database. See the `XASDoc` schema for a full list of fields returned by this route.

Operations 1

GET /materials/xas/ Get XASDoc documents #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/materials-project-materials-xas-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

materials-project-materials-xas-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Materials Project Materials XAS API
  description: The Materials Project API allows anyone to have direct access to current, up-to-date information from the Materials Project database in a structured way.
  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 XAS
  description: Route providing computed x-ray absorption spectroscopy data for a material following the methodology discussed by Mathew *et al.* and Chen *et al.* Note that x-ray absorption spectroscopy data has not been calculated for all materials in the Materials Project database. See the `XASDoc` schema for a full list of fields returned by this route.
paths:
  /materials/xas/:
    get:
      tags:
      - Materials XAS
      summary: Get XASDoc documents
      operationId: search_materials_xas__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: formula
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Query by formula including anonymized formula or by including wild cards. A comma delimited string list of anonymous formulas or regular formulas can also be provided.
          title: Formula
        description: Query by formula including anonymized formula or by including wild cards. A comma delimited string list of anonymous formulas or regular formulas can also be provided.
      - name: chemsys
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: A comma delimited string list of chemical systems. Wildcards for unknown elements only supported for single chemsys queries
          title: Chemsys
        description: A comma delimited string list of chemical systems. Wildcards for unknown elements only supported for single chemsys queries
      - name: elements
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 60
          - type: 'null'
          description: Query by elements in the material composition as a comma-separated list
          title: Elements
        description: Query by elements in the material composition as a comma-separated list
      - name: exclude_elements
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 60
          - type: 'null'
          description: Query by excluded elements in the material composition as a comma-separated list
          title: Exclude Elements
        description: Query by excluded elements in the material composition as a comma-separated list
      - name: edge
        in: query
        required: false
        schema:
          type: string
          title: XAS Edge
      - name: spectrum_type
        in: query
        required: false
        schema:
          type: string
          title: Spectrum Type
      - name: absorbing_element
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/Element'
          title: Absorbing Element
      - name: spectrum_ids
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Comma-separated list of spectrum_id to query on
          title: Spectrum Ids
        description: Comma-separated list of spectrum_id to query on
      - 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 XASDoc 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` `spectrum_name` `material_id` `spectrum_id` `last_updated` `warnings` `spectrum` `task_ids` `absorbing_element` `spectrum_type` `edge`'
          title: ' Fields'
        description: 'Fields to project from XASDoc 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` `spectrum_name` `material_id` `spectrum_id` `last_updated` `warnings` `spectrum` `task_ids` `absorbing_element` `spectrum_type` `edge`'
      - name: _all_fields
        in: query
        required: false
        schema:
          type: boolean
          description: Include all fields.
          default: false
          title: ' All Fields'
        description: Include all fields.
      - name: _sort_fields
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Comma delimited fields to sort with. Prefixing '-' to a field will force a sort in descending order.
          title: ' Sort Fields'
        description: Comma delimited fields to sort with. Prefixing '-' to a field will force a sort in descending order.
      responses:
        '200':
          description: Search for a XASDoc
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response_XASDoc_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    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
    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.
    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
    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
    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
    XASDoc:
      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.
        spectrum_name:
          type: string
          title: Spectrum Name
          default: XAS
        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 ID of the material, used as a universal reference across proeprty documents. This comes in the form: mp-******.'
        spectrum_id:
          $ref: '#/components/schemas/XasSpectrumID'
        last_updated:
          type: string
          format: date-time
          title: Last Updated
          description: Timestamp for the most recent calculation update for this property.
        warnings:
          items:
            type: string
          type: array
          title: Warnings
          description: Any warnings related to this property.
          default: []
        spectrum:
          anyOf:
          - $ref: '#/components/schemas/TypedXASSpectrumDict'
          - type: 'null'
          title: Spectrum
          description: The XAS spectrum for this calculation.
        task_ids:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Calculation IDs
          description: List of Calculations IDs used to make this XAS spectrum.
        absorbing_element:
          type: string
          title: Absorbing Element
          description: Absoring element.
        spectrum_type:
          type: string
          title: Spectrum Type
          description: XAS spectrum type.
        edge:
          type: string
          title: Absorption Edge
          description: The interaction edge for XAS.
      type: object
      required:
      - spectrum_id
      - absorbing_element
      - spectrum_type
      - edge
      title: XASDoc
      description: Document describing a XAS Spectrum.
    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
    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.
    Element:
      type: string
      enum:
      - H
      - D
      - T
      - He
      - Li
      - Be
      - B
      - C
      - N
      - O
      - F
      - Ne
      - Na
      - Mg
      - Al
      - Si
      - P
      - S
      - Cl
      - Ar
      - K
      - Ca
      - Sc
      - Ti
      - V
      - Cr
      - Mn
      - Fe
      - Co
      - Ni
      - Cu
      - Zn
      - Ga
      - Ge
      - As
      - Se
      - Br
      - Kr
      - Rb
      - Sr
      - Y
      - Zr
      - Nb
      - Mo
      - Tc
      - Ru
      - Rh
      - Pd
      - Ag
      - Cd
      - In
      - Sn
      - Sb
      - Te
      - I
      - Xe
      - Cs
      - Ba
      - La
      - Ce
      - Pr
      - Nd
      - Pm
      - Sm
      - Eu
      - Gd
      - Tb
      - Dy
      - Ho
      - Er
      - Tm
      - Yb
      - Lu
      - Hf
      - Ta
      - W
      - Re
      - Os
      - Ir
      - Pt
      - Au
      - Hg
      - Tl
      - Pb
      - Bi
      - Po
      - At
      - Rn
      - Fr
      - Ra
      - Ac
      - Th
      - Pa
      - U
      - Np
      - Pu
      - Am
      - Cm
      - Bk
      - Cf
      - Es
      - Fm
      - Md
      - 'No'
      - Lr
      - Rf
      - Db
      - Sg
      - Bh
      - Hs
      - Mt
      - Ds
      - Rg
      - Cn
      - Nh
      - Fl
      - Mc
      - Lv
      - Ts
      - Og
      title: Element
      description: Enum representing an element in the periodic table.
    XasSpectrumID:
      properties:
        identifier:
          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: Identifier
        suffix:
          prefixItems:
          - type: string
          - $ref: '#/components/schemas/Element'
          - type: string
          type: array
          maxItems: 3
          minItems: 3
          title: Suffix
        separator:
          type: string
          title: Separator
          default: '-'
      type: object
      required:
      - identifier
      - suffix
      title: XasSpectrumID
    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
    TypedXASSpectrumDict:
      properties:
        '@module':
          type: string
          title: '@Module'
        '@class':
          type: string
          title: '@Class'
        '@version':
          type: string
          title: '@Version'
        x:
          items:
            type: number
          type: array
          title: X
        y:
          items:
            type: number
          type: array
          title: Y
        structure:
          $ref: '#/components/schemas/TypedStructureDict'
        absorbing_element:
          $ref: '#/components/schemas/TypedElementDict'
        edge:
          type: string
          title: Edge
        spectrum_type:
          type: string
          title: Spectrum Type
        absorbing_index:
          type: integer
          title: Absorbing Index
      type: object
      required:
      - '@module'
      - '@class'
      - '@version'
      - x
      - y
      - structure
      - absorbing_element
      - edge
      - spectrum_type
      - absorbing_index
      title: TypedXASSpectrumDict
    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.
    Response_XASDoc_:
      properties:
        data:
          anyOf:
          - items:
              $ref: '#/components/schemas/XASDoc'
            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[XASDoc]
    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
    TypedElementDict:
      properties:
        '@module':
          type: string
          title: '@Module'
        '@class':
          type: string
          title: '@Class'
        element:
          type: string
          title: Element
      type: object
      required:
      - '@module'
      - '@class'
      - element
      title: TypedElementDict
    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
  securitySchemes:
    ApiKeyAuth:
      descriptions: MP API key to authorize requests
      name: X-API-KEY
      in: header
      type: apiKey