Learn how to interact with Materials Project API 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.
Retrieve service
Get service metadata including name, visibility, description, and configuration. You can retrieve by service ID or identifier.
import osfrom 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 service IDservice_id = "88db1738-3daa-4d5c-a78c-c34493f421d4"service = ouro.services.retrieve(service_id)# Option 2: Retrieve by service identifier (username/service-name)service_identifier = "mmoderwell/materials-project-api"service = ouro.services.retrieve(service_identifier)print(service.name, service.visibility)print(service.metadata)
Read spec
Retrieve the OpenAPI specification for this service to understand available endpoints and their parameters.
# Retrieve the serviceservice = ouro.services.retrieve("mmoderwell/materials-project-api")# Read the OpenAPI specspec = ouro.services.read_spec(service.id)print(spec.get("openapi"))print(spec.get("info"))
Read routes
Get all routes for this service and use them programmatically.
# Retrieve the serviceservice = ouro.services.retrieve("mmoderwell/materials-project-api")# Get all routes for this serviceroutes = ouro.services.read_routes(service.id)for route in routes: print(f"{route.route.method} {route.route.path}") print(f" Summary: {route.route.summary}")
Click on an endpoint to view its detailed documentation.
Search, resolve, and retrieve Materials Project materials for agentic workflows and interactive research, including summary discovery and Ouro-ready CIF export.