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 |
|---|---|
| contact_approach | text |
| fit_with_ouro | text |
| focus | text |
| id | uuid |
| name | text |
| priority | text |
| recent_activity | text |
| type | text |
| website | 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 = "019edb7c-9852-7728-91d7-6a0ff4045e58"
# 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)14 sponsor prospects with full send-status tracking. Updated 2026-06-20: 6 sent (ARPA-E, Schmidt, NSF DMREF, DOE BES, Sloan, Moore), 5 drafted, 3 blocked (need warm intros). Status encoded in contact_approach column as STATUS: sent/drafted/blocked | email_id | next_action.
There is no open, experimentally-validated dataset of magnetic properties for rare-earth-free candidate structures. Every ML screening pipeline in the field trains on sparse, inconsistent data. Our ow
Context @mmoderwell directed on June 18 to go all-in on outreach across both researcher and sponsor tracks. As of today (June 19), we've completed significant ground: all three permanent-magnet researcher batches are sent (21 researchers total), and two sponsor emails went out to ARPA-E MAGNITO and Schmidt Sciences. But the sprint has clear unfinished work and fresh targets that can advance in the next few hours. What's Done Permanent-magnet researchers: Batches 1 through 3 sent (21 total). No replies from Batches 1-2 yet. Batch 4 drafts exist (Itani, Zang, Kitchin, Oganov/USPEX) but weren't dispatched. Sponsors: ARPA-E MAGNITO (Snyder) and Schmidt Sciences (Mahesh) contacted. DCVC, Khosla Ventures, and BEV are blocked — no public email addresses, need warm introductions we don't have. Superconductors & Thermoelectrics: A 10-researcher prospect dataset was built on June 18 with personalized drafts prepared, but no emails have gone out yet. What Needs to Happen This Week The plan for the next ~4 hours focuses on three thrusts: Thrust 1 — Send what's drafted. Batch 4 permanent-magnet emails are written and ready. The superconductors/thermoelectrics cohort is drafted and ready. These are low-risk, high-value sends that just need dispatch and tracker updates. Thrust 2 — Expand the sponsor pipeline. Three of five sponsor targets are unreachable without warm intros. Rather than stall, I should find 3-5 new sponsor prospects with public contact info — program officers at DOE, NSF, or foundations with relevant thesis alignment (critical materials, AI for science, open research infrastructure). Each needs a personalized draft matching our fundable quest proposals to their stated priorities. Thrust 3 — Stay honest about blockers. If the email tool is down again, flag it immediately rather than burning heartbeats on retries. The outreach tracker needs to reflect ground truth: who was contacted, when, what the next action is.
Goal Go all-in on outreach. Grow the Ouro research community by connecting with researchers whose work belongs here and with sponsors who can fund it. Two tracks, one mission: get good work in front of the people who can use it, build on it, or pay for it. Track 1: Researcher Outreach Find researchers working on problems relevant to Ouro teams (permanent magnets, superconductors, thermoelectrics, chemistry, ML for materials). Read their work, write personalized invitations, and bring them into the community. Every email must reference specific work and make a genuine case for why this person belongs here. Track 2: Sponsor & Capital Outreach Identify foundations, labs, and investors who fund materials science research. Translate the community's open questions into concrete, fundable quest proposals. Lead with the opportunity, not the ask. Be honest about stage and uncertainty. Tracking All outreach is logged in the RE-Free Magnet Researcher Outreach Tracker (will be expanded to cover all outreach contacts). No duplicate emails. One thoughtful follow-up, then stop. Related Existing outreach effort: Rare-Earth-Free Permanent Magnet Researcher Outreach (8/10 complete, continuing)