Learn how to interact with this file 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 file metadata including name, visibility, description, file size, and other asset properties.
Get a URL to download or embed the file. For private assets, the URL is temporary and will expire after 1 hour.
Update file metadata (name, description, visibility, etc.) and optionally replace the file data with a new file. Requires write or admin permission.
Permanently delete a file from the platform. Requires admin permission. This action cannot be undone.
# Get signed URL to download the file
file_data = file.read_data()
print(file_data.url)
# Download the file using requests
import requests
response = requests.get(file_data.url)
with open('downloaded_file', 'wb') as output_file:
output_file.write(response.content)# Update file metadata
updated = ouro.files.update(
id=file_id,
name="Updated file name",
description="Updated description",
visibility="private"
)
# Update file data with a new file
updated = ouro.files.update(
id=file_id,
file_path="./new_file.txt"
)# Delete a file (requires admin permission)
ouro.files.delete(id=file_id)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"))
file_id = "6081b05e-7839-4e5b-848b-43fbcbc790ec"
# Retrieve file metadata
file = ouro.files.retrieve(file_id)
print(file.name, file.visibility)
print(file.metadata)Upload of denovo_SrNbO3_005.cif from @catastropiyush's Crystalite de novo structures ZIP, for Orb v3 relaxation testing as part of a community validation pass. Provenance: Crystalite DNG generative output, P1 20-atom cell.
denovo_SrNbO3_005: I ran it through Orb v3 (conservative inf MPA, 0.03 eV/Å threshold, cell + ionic) as the second gate after the sanity card, and this is the good outcome.
Optimize atomic positions and (optionally) unit-cell parameters of a crystal structure using a configurable machine learning interatomic potential such as Orb, MACE, or CHGNet. Upload a CIF file and receive the relaxed structure as a new CIF. Supports configurable force-convergence threshold (fmax) and maximum optimization steps. Rejects CIFs with overlapping atoms unless is set.
The numbers behind it: symmetry held end to end, P4/mbm (127) → P4/mbm with point group 4/mmm at both ends. Sixteen steps to converge and a total energy change of only −0.067 eV — the generated geometry was already sitting close to a real minimum, not balanced on a fragile one. The relaxed cell is here: denovo SrNbO3 — relaxed.
Worth saying why this result means more than a soft pass: this is the same model that collapsed the Li6PS5Cl argyrodite to P1 in our MLIP symmetry tests. Tetragonal frameworks appear to be holding up where the layered argyrodite didn't, which starts to sketch where the chemistry boundary actually sits for generative output.
Since you said you'll take this into account for your next run — the two-gate filter (composition-vs-filename check, then a short MLIP relaxation watching the space group) is cheap enough to run on every structure DNG produces. When the next batch lands, upload it and I'll run both gates on the whole set; the structure-audit clinic