Skip to content

List glass

POST https://sciglass.uni-jena.de/api/glass

API for searching for glasses that belong to a specific concentration range with prescribed values of experimentally measured properties. Read more under Search for Glasses.

Request body

comp  map  Optional

Accepts a JSON object containing key-value pairs that represents the component.

  • Example with conditioned NABS glass included (where Na2O must be less than 50%, and Al2O3 can be absent) and without the components K2O and CaO:
{
    "included": [
        {
            "name": "Na2O",
            "range": [None, 50]  # Optional, range[0] (min) >=0, range[1] (max) <=100
        },
        {
            "name": "Al2O3",
            "range": [0, None]  # range[0] = 0 means component can be absent
        },
        {
            "name": "B2O3",
            "range": [None, None]  # Optional, defaults to [None, None] if not limit the range
        },
        {
            "name": "SiO2",
            "range": [None, None]  # Optional, defaults to [None, None] if not limit the range
        }
        # Add more included components here
    ],
    "excluded": [
        {
            "name": "K2O"
        },
        {
            "name": "CaO"
        }
        # Add more excluded component names here
    ]
}
  • Minimum comp object
{
    "included": [
        {
            "name": "Included Component 1"
        }
    ]
}

prop  map  Optional

Accepts a JSON object containing key-value pairs that represents the property.

  • Example with individual property Density at 20°C (g/cm3) ranged from 2~2.5 g/cm3 and Thermal expansion coefficient (TEC) at 55 ± 10°C *1E7 (K-1)
{
    "included": [
        {
            "name": "DENSITY",
            "condition": "and",  # Optional, must be one of the conditions "and" or "or", defaults to "and"
            "range": [2, 2.5],  # Optional
        },
        {
            "name": "TEC55",
            "range": [None, None],  # Optional, defaults to [None, None] if not limit the range
        }
        # Add more included properties here
    ]
}
  • Minimum prop object
{
    "included": [
        {
            "name": "Included Property 1"
        }
    ]
}
  • Individual Properties
Individual Properties Unit prop
T1 (logη=1) °C
"T1"
T2 (logη=2) °C
"T2"
T3 (logη=3) °C
"T3"
T4 (logη=4) °C
"T4"
T5 (logη=5) °C
"T5"
T6 (logη=6) °C
"T6"
T7 (logη=7) °C
"T7"
T8 (logη=8) °C
"T8"
T9 (logη=9) °C
"T9"
T10 (logη=10) °C
"T10"
T11 (logη=11) °C
"T11"
T12 (logη=12) °C
"T12"
T13 (logη=13) °C
"T13"
logη at 500°C P
"V500"
logη at 600°C P
"V600"
logη at 700°C P
"V700"
logη at 800°C P
"V800"
logη at 900°C P
"V900"
logη at 1000°C P
"V1000"
logη at 1100°C P
"V1100"
logη at 1200°C P
"V1200"
logη at 1300°C P
"V1300"
logη at 1400°C P
"V1400"
logη at 1500°C P
"V1500"
logη at 1600°C P
"V1600"
logη at 1800°C P
"V1800"
logη at 2000°C P
"V2000"
logη at 2200°C P
"V2200"
Tg °C
"TG"
Mg °C
"Mg"
Littleton point °C
"LPT"
Annealing point °C
"ANPT"
Strain point °C
"SPT"
Softening point °C
"Tsoft"
logρ at 20°C Ohm·cm
"RO20"
logρ at 100°C Ohm·cm
"RO100"
logρ at 150°C Ohm·cm
"RO150"
logρ at 300°C Ohm·cm
"RO300"
logρ at 800°C Ohm·cm
"ro800"
logρ at 1000°C Ohm·cm
"ro1000"
logρ at 1200°C Ohm·cm
"ro1200"
logρ at 1400°C Ohm·cm
"ro1400"
TK-100 °C
"TK100C"
ε' (~20°C, ~1MHz) -
"EPS730"
Tanδ *1E4 -
"TGD730"
α at 55 ± 10°C *1E7 K-1
"TEC55"
α at 100 ± 10°C *1E7 K-1
"TEC100"
α at 160 ± 10°C *1E7 K-1
"TEC160"
α at 210 ± 10°C *1E7 K-1
"TEC210"
α at 350 ± 10°C *1E7 K-1
"TEC350"
α at T < Tg *1E7 K-1
"ANY_TEC"
Density at 20°C g/cm3
"DENSITY"
Density at 800°C g/cm3
"dens800"
Density at 1000°C g/cm3
"dens1000"
Density at 1200°C g/cm3
"dens1200"
Density at 1400°C g/cm3
"dens1400"
Molar/spec. volume at 20°C cm3/g
"spvm"
nd at 20°C -
"ND300"
n at 0.6 < λ < 1µm (20°C) -
"nd300low"
n at λ > 1µm (20°C) -
"nd300hi"
Mean dispersion *1E4 -
"DNFC300"
Abbe's number -
"NUD300"
Thermal shock resist. K
"RTSH180"
Young's modulus GPa
"MOD_UNG"
Shear modulus GPa
"MOD_SDV"
Poisson's ratio -
"pois"
Microhardness GPa
"MIKROTV"
Tliq °C
"TLiq"
Tm °C
"Tm"
Thermal conductivity W/(m·K)
"cond220"
CP at 20°C J/(kg·K)
"cp20"
CP at 200°C J/(kg·K)
"cp200"
CP at 400°C J/(kg·K)
"cp400"
CP at 800°C J/(kg·K)
"cp800"
CP at 1000°C J/(kg·K)
"cp1000"
CP at 1200°C J/(kg·K)
"cp1200"
CP at 1400°C J/(kg·K)
"cp1400"
σ at T > Tg mN/m
"any_sut"
σ at 900°C mN/m
"SUT900"
σ at 1200°C mN/m
"SUT1200"
σ at 1300°C mN/m
"SUT1300"
σ at 1400°C mN/m
"SUT1400"
Tmax °C
"Tmax"
Vmax cm/s
"Vmax"
Tc °C
"tcr"
Tx °C
"tx"
Tn °C
"Tn"
Io cm-3·s-1
"Io"

Note

  1. Dilatometric softening temperature, Mg
  2. Microhardness
  3. Glass transition temperature, Tg
  4. Thermal conductivity
  5. Thermal endurance (Thermal shock resistance)

are move from Property Groups to Individual Properties when searching for glasses, as they only correspond to one standardized property and not several. This is different from the original design of SciGlass.

  • Property Groups
Property Group prop
Acoustical properties
"518"
Chemical durability
"600"
Crystallization
"950"
Density
"100"
Dielectric properties
"730"
Diffusion, permeation & solubility of gases
"830"
Elastic properties
"500"
Electrical resistivity
"700"
Glass formation
"900"
Heat capacity, Cp
"200"
Internal friction
"520"
Ion diffusion
"800"
Magnetic properties
"890"
Optical properties
"300"
Optical spectra
"320"
Stress-optic coefficient
"516"
Strength
"540"
Surface tension
"560"
Liquidus temperature, Tliq
"954"
Thermal expansion coefficient, TEC
"130"
Thermal diffusivity
"230"
Viscosity
"400"
Viscosity standard points
"410"
Volatilization
"990"

Note

The prop value is not the same as the string value defined in Table list.

A property code is used here rather than a human-readable longer text name for prop. The choice between them is not yet decided and API changes may happen in the future.

Query parameters

system  string or array  Optional

The name of the system. Allowed system names are:

"SiO2"
"R2O"
"RO"
"R2O3"
"RO2"
"R2O5"
"RO3"
"Halides"
"Others"

If used, must be any combination of the allowed system names.


exact_system  boolean  Optional  Defaults to false

Whether the systems selected should match exactly or not.


system_type  integer  Optional  Defaults to 0

Number of glass systems (system type).

System Type system_type
All
"0"
One-component (One-comp)
"1"
Binary
"2"
Ternary
"3"
Quaternary
"4"
multi-component (>4 components)
"5"

impurity  boolean  Optional  Defaults to true

Whether to consider impurities.

Only effective if system_type is not equal to 0. If true, impurities are considered as components, if false, impurities are ignored and not included in the result.


kind  string  Optional  Defaults to mol

Specify the kind of percent for the Min and Max values.

Kind of % kind
Molar %
"mol"
Weight %
"wt"
Atomic %
"at"

Note

In SciGlass, the System type card is disabled and is not considered in the search when Kind of % = Atom %. Hence, when kind="at", system_type is ignored and not used in the search.

If this is not the case for the latest SciGlass version, please contact us.


analysis  boolean  Optional  Defaults to false

Whether only the glass composition given by chemical analysis should be searched.

detail  boolean  Optional  Defaults to false

By default, only the selected components are displayed in the result.

Set this option to true to display all components of glasses even without selecting components.

The composition result will be stored in the Composition column as a JSON string. E.g., { "SiO2": 75, "Al2O3": 12.5, "Li2O": 6.25, "Na2O": 6.25 }

Note

It is recommended to limit the criteria first. Otherwise, the result table may contain an excessive number of components in the Composition column.

Note

This option requires you to select at least one property first.


Example request

import asyncio  # (1)!

import httpx
import pandas as pd  # (2)!

# API endpoint
endpoint_url = "https://sciglass.uni-jena.de/api/glass"

# Create the request body
body = {
    "comp": {
        "included": [
            {
                "name": "Na2O",
                "range": [20, 50]  # Optional, min >=0, max <=100
            },
            {
                "name": "Al2O3"
            },
            {
                "name": "B2O3"
            },
            {
                "name": "SiO2"
            }
        ],
        "excluded": [
            {
                "name": "K2O"
            },
            {
                "name": "CaO"
            }
        ]
    },
    "prop": {
        "included": [
            {
                "name": "DENSITY",  # Density at 20°C (g/cm3)
                "condition": "and",  # Optional, must be one of the conditions "and" or "or", defaults to "and"
                "range": [2, 2.5]  # Optional
            },
            {
                "name": "TEC55"  # Thermal expansion coefficient (TEC) at 55 ± 10°C *1E7 (K-1)
            }
        ]
    }
}

# Create the query parameters
params = {
    # "system": ["SiO2", "R2O"],  # optional, if used, must be any combination of the allowed system names
    # "exact_system": False,  # default=False
    # "system_type": 0,  # default=0
    # "impurity": True,  # default=True
    # "year_from": 1878,  # optional, if used, must be greater than or equal to 1878
    # "year_to": 2019,  # optional, if used, must be less than or equal to 2019
    # "analysis": False,  # default=False
    # "detail": False,  # default=False
    # "spectral_index": False,  # default=False
    # "glass_formation": False,  # default=False
}

headers = {
    "Accept": "application/json",
    "Content-type": "application/json",
    "Authorization": "Bearer $SCIGLASS_NEXT_API_KEY"
}

async def example():
    async with httpx.AsyncClient(timeout=None) as client:
        r = await client.post(endpoint_url, json=body, params=params, headers=headers)
        if r.status_code == 200:
            data = r.json()
            print(data)

            # Define the column names
            columns = [item['title'] for item in data['head']]

            # Convert the rows to DataFrame
            df = pd.DataFrame(data['rows'], columns=columns)

            # Display the DataFrame
            print(df)

            # Export the result to CSV
            df.to_csv('out.csv', index=False)

        else:
            print(f"Request failed with status code: {r.status_code}")
            print("Response text:", r.text)


asyncio.run(example())
  1. AsyncIO is Python's built-in library for writing concurrent code with the async/await syntax.
  2. This is optional and is imported in this example to show how to export the result to a CSV file using pandas.
curl -X 'POST' \
  https://sciglass.uni-jena.de/api/glass \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $SCIGLASS_NEXT_API_KEY"
  -d '{
    "comp": {
        "included": [
            {
                "name": "Na2O",
                "range": [20, 50]
            },
            {
                "name": "Al2O3"
            },
            {
                "name": "B2O3"
            },
            {
                "name": "SiO2"
            }
        ],
        "excluded": [
            {
                "name": "K2O"
            },
            {
                "name": "CaO"
            }
        ]
    },
    "prop": {
        "included": [
            {
                "name": "DENSITY",
                "condition": "and",
                "range": [2, 2.5]
            },
            {
                "name": "TEC55"
            }
        ]
    }
}'

{
    'head': [
        {'title': 'Table ID'},
        {'title': 'GNo'},
        {'title': 'Year'},
        {'title': 'Na<sub>2</sub>O (mol%)'},
        {'title': 'Al<sub>2</sub>O<sub>3</sub> (mol%)'},
        {'title': 'B<sub>2</sub>O<sub>3</sub> (mol%)'},
        {'title': 'SiO<sub>2</sub> (mol%)'},
        {'title': 'Density at 20°C (g/cm<sup>3</sup>)'},
        {'title': 'α at 55 ± 10°C *1E7 (K<sup>-1</sup>)'}
    ],
    'tooltip': [
        None,
        'Glass No',
        None,
        None,
        None,
        None,
        None,
        'Density at 20°C (g/cm<sup>3</sup>)',
        'Thermal expansion coefficient (TEC) at 55 ± 10°C *1E7 (K<sup>-1</sup>)'
    ],
    'rows': [
        [12220, 71252, 1997, 24.0, 4.0, 8.0, 64.0, 2.485, 95.24942],
        [14607, 135120, 1961, 23.15, 20.14, 32.64, 3.7, 2.42, 12.3831]
        # more glasses
    ]
}