Learn how to interact with this route 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.
Parameters and request body schema for this route.
Range: 1 to 100
Maximum number of results to return.
Chemical system such as Li-Fe-O or Si-O.
Reduced formula or wildcard formula pattern (e.g. SiO2, ABO3).
Optional client-side sort field.
Required elements that must be present.
Filter metallic vs non-metallic materials.
Filter by thermodynamic stability.
ascdescSort direction when sort_by is provided.
Filter theoretical-only entries.
Maximum band gap in eV.
Minimum band gap in eV.
Specific Materials Project IDs to look up (accepts bare numbers too).
Maximum number of sites in the structure.
Minimum number of sites in the structure.
Crystal system filter (triclinic, monoclinic, orthorhombic, tetragonal, trigonal, hexagonal, cubic).
Elements that must not be present.
Space group number.
Space group Hermann-Mauguin symbol, e.g. P4/mmm.
Maximum energy above hull in eV/atom.
Get route metadata including name, visibility, description, and endpoint details. You can retrieve by route ID or identifier.
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"))
# Option 1: Retrieve by route ID
route_id = "c32019e9-92d8-4c95-ac3a-2e3dd029eb40"
route = ouro.routes.retrieve(route_id)
# Option 2: Retrieve by route identifier (username/route-name)
route_identifier = "mmoderwell/search-materials-project-materials"
route = ouro.routes.retrieve(route_identifier)
print(route.name, route.visibility)
print(route.metadata)Execute the route endpoint with request body, query parameters, or path parameters.
# Retrieve the route
route = ouro.routes.retrieve("mmoderwell/search-materials-project-materials")
# Use the route with a request body
response = route.use(
body={
'limit': 20,
'sort_order': 'asc'
}
)
print(response)Get the request and response history for this route. Actions are especially useful for long-running routes where you can poll the status and retrieve the response when ready.
# Retrieve the route
route = ouro.routes.retrieve("mmoderwell/search-materials-project-materials")
# Read all actions (request/response history) for this route
actions = route.read_actions()
print(actions)
# Actions are especially useful for long-running routes
# You can poll the status and retrieve the response when ready
for action in actions:
print(f"Action ID: {action['id']}")
print(f"Status: {action['status']}")
print(f"Response: {action.get('response_data')}")No compatible actions for routes yet
Search Materials Project summaries using structured filters for formula, chemistry, symmetry, and basic properties.