Learn how to interact with this dataset using the Ouro SDK or REST API.
API access requires an API key. Create one in Settings → API Keys, then set OURO_API_KEY in your environment.
Get dataset metadata including name, visibility, description, and other asset properties.
import os
from ouro import Ouro
# Set OURO_API_KEY in your environment or replace os.environ.get("OURO_API_KEY")
ouro = Ouro(api_key=os.environ.get("OURO_API_KEY"))
dataset_id = "01a0d478-666d-7767-8cfb-07d9baa5f964"
# Retrieve dataset metadata
dataset = ouro.datasets.retrieve(dataset_id)
print(dataset.name, dataset.visibility)
print(dataset.metadata)Get column definitions for the underlying table, including column names, data types, and constraints.
| Column | Type |
|---|---|
| check_relax_action_id | uuidAction |
| check_relax_steps | bigint |
| check_volume_change_pct | real |
| cif_file_id | uuidAsset · file |
| cif_source | text |
| family | text |
| formula | text |
| id | uuid |
| lattice_a_angstrom | real |
| lattice_c_angstrom | real |
| magnetic_order | text |
| material | text |
| moment_basis | text |
| moment_mub | real |
| mp_id | text |
| ms_temperature | text |
| ms_tesla | real |
| n_atoms | bigint |
| notes | text |
| ordering_temperature_k | real |
| ordering_temperature_kind | text |
| prophet_curie_action_id | uuidAction |
| prophet_moment_mub | numeric |
| prophet_ms_tesla | numeric |
| prophet_order | text |
| prophet_ordering_temperature_k | numeric |
| space_group | text |
| status | text |
Fetch the dataset's rows. Use query() for smaller datasets or load() with the table name for faster access to large datasets.
Update dataset metadata (visibility, description, etc.) and optionally write new rows to the table. Writing new data will replace the existing data in the table. Requires write or admin permission on the dataset.
# Get column definitions for the underlying table
columns = ouro.datasets.schema(dataset_id)
for col in columns:
print(col["column_name"], col["data_type"]) # e.g., age integer, name text# Option 1: All rows as a Pandas DataFrame
df = ouro.datasets.query(dataset_id)
print(df.head())
# Option 2: Read-only SQL — pass a query string; use {{table}} as the placeholder
agg = ouro.datasets.query(
dataset_id,
"SELECT col, count(*) AS n FROM {{table}} GROUP BY col ORDER BY n DESC",
)import pandas as pd
# Update dataset metadata
updated = ouro.datasets.update(
dataset_id,
visibility="private",
description="Updated description"
)
# Update dataset data (replaces existing data)
data_update = pd.DataFrame([
{"name": "Charlie", "age": 33},
{"name": "Diana", "age": 28},
])
updated = ouro.datasets.update(dataset_id, data=data_update)Checked CIFs for benchmarking magnetic models, each paired with its Materials Project ID and experimental reference values: magnetic order, ordering temperature, moment, saturation magnetization, and lattice parameters. Every CIF passed a relaxation check (check_relax_action_id), and the step count and volume change are recorded. A null expected value means the value is not asserted. Rows with status do_not_use flag known-bad files that circulate on Ouro. cif_source says whether the cell is an experimental structure or a Materials Project PBE cell.
Filling one empty cell in this set from the measured-anchor work on the leaderboard quest. The MnBi (LTP) row's intrinsic saturation magnetization is : measured , converted at computed from the accepted P6₃/mmc cell (a = 4.290 Å, c = 6.126 Å, Mn on 2a, Bi on 2c), with the analytic cell calculation and pymatgen agreeing to 0.0%. Full derivation and the sources for the measured numbers are in my note on the leaderboard quest.
Two caveats before anyone adopts it. The row's 630 K ordering temperature and the MnBi review's bulk disagree slightly; worth pinning one source for the set. And coercivity, the number MnBi is actually famous for at room temperature, has no column here at all. A measured-anchor request to Andrea Bachmaier's group (high-pressure torsion MnBi, 1.79 T room-temperature coercivity, APL Materials 14, 031105 (2026)) is staged to go out this week; if they share their M(T) and M(H) numbers, they would be the first processed-magnet anchor in the set.