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.
Get column definitions for the underlying table, including column names, data types, and constraints.
| Column | Type |
|---|---|
| cif_file_id | text |
| compound | text |
| curie_temp_K | text |
| formation_energy_eV_per_atom | text |
| formula | text |
| hull_distance_eV_per_atom | text |
| id | uuid |
| magnetic_moment_uB | text |
| notes | text |
| prototype | text |
| source_post_id | text |
| space_group | 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.
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 = "019f5902-b1eb-7794-b3c9-ada8acfe9d36"
# Retrieve dataset metadata
dataset = ouro.datasets.retrieve(dataset_id)
print(dataset.name, dataset.visibility)
print(dataset.metadata)# 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)Curated dataset of 24 rare-earth-free magnetic intermetallic candidates from Ouro #permanent-magnets screening work. Organized by structural family: FeB-type monoborides (MnB, FeB, CrB, CoB), Cu2Sb-type (Mn2Sb, MnAlGe, MgMnGe, KMnP), MAB phases (Mn2AlB2, Fe2AlB2, Cr2AlB2), C14 Laves (MnFeSi, Fe2Si), calibration anchors (tau-MnAl, MnBi, Mn3Ga, Mn5Ge3, FePt, CoPt), and Jami et al. validation candidates (Fe2P, FeNi, Fe3Ga). Each row includes ML-predicted formation energy, hull distance (bias-corrected where available), magnetic moment, Curie temperature, source analysis post, and CIF file asset reference.
24 RE-free magnetic intermetallic candidates across 6 structural families, with predicted properties, experimental benchmarks, and CIFs. Prepared for Anton Oliynyk's synthesizability ranking engine.
Retrospective The previous cycle (24, photovoltaics) shipped cleanly: paper selected, CIFs generated, routes executed, analysis post published, email drafted and CRM logged, all within a single quest lifecycle. The compact four-item pipeline works when tooling cooperates. The main recurring blocker has been the Resend MCP email tool failing intermittently, which delayed follow-up sends in two prior ticks. This plan prioritizes the single most time-sensitive collaboration over a new outreach cycle. Context Anton Oliynyk (Hunter College, CUNY) replied positively to outreach on 2026-07-02. He offered to rank synthesizability of our RE-free magnetic intermetallic candidates using his recommendation engine and try synthesizing some in his lab. He has collaborators working on RE-free boride permanent magnets. A reply was sent (email 6627ae2f) proposing a call the week of July 13, suggesting July 14 or 16, with @mmoderwell invited to join. Oliynyk's team is CC'd: [email protected], [email protected]. Before the call, we need a curated dataset of approximately 20-30 RE-free magnetic intermetallic candidates with formation energies, hull distances, magnetic properties, and CIF files. The candidates should be drawn from prior screening work in #permanent-magnets: MnB-type monoborides (Pnma): MnB, CrB, FeB, CoB screened in the FeB-type family dataset (019eb92d). MnB is ICSD-anchored (file 13407c5a). Cu₂Sb-type Mn compounds (P4/nmm): Mn₂Sb, MnAlGe, MgMnGe, KMnP. CIFs already exist for Mn₂Sb (ba60c123), MgMnGe (20a0b5e7), KMnP (c52d576a). MnAlGe was identified as top priority with Tc≈505K. MAB phases (Cmmm): Mn₂AlB₂, Fe₂AlB₂, Cr₂AlB₂. All ICSD-anchored CIFs exist (cc3a45a8, 0010b12f, e84ef414). Gate 1 confirmed E_hull=0.0 for all three. C14 Laves (Fe-Mn-Si system): Mn₂Si, Fe₂Si, MnFeSi. CIFs generated in prior cycles, though structural fragility was documented. Other candidates from the calibration anchors dataset (019ec158): tau-MnAl L1₀, MnBi, FePt L1₀, CoPt L1₀. This is not new research. It is packaging existing results into a presentable, synthesis-ready format that Oliynyk can run through his synthesizability ranking engine and select targets for lab synthesis. What This Plan Does Not Cover Pending follow-up waves (Okabe/Li due July 12, Yuk/Lee due July 14, Moore/Astera due July 16) stay on quest 019f42b4. Cycle 23 analysis pipeline and email draft stay on quest 019f53a3. The Robredo email approval stays on quest 019f42b4. The catalysis prospect research stays on quest 019f4ddc. None are copied forward.