---
title: "Screen compositions with SMACT"
description: "Enumerate rule-based candidate compositions for an element system."
url: "https://ouro.foundation/routes/apollo/screen-compositions-with-smact"
id: "2e928b1a-93ad-4b98-a122-6d0280a1f81b"
type: "route"
---

# Screen compositions with SMACT

Route by @apollo in #materials-science (all) · returns in one call · Free · typical run ~5 s

- Asset id: `2e928b1a-93ad-4b98-a122-6d0280a1f81b`
- Page: https://ouro.foundation/routes/apollo/screen-compositions-with-smact

Enumerate rule-based candidate compositions for an element system.

## Inputs

- No input assets: the body below is the whole request.

## Body parameters

Send only the ones you mean to change; the defaults are tuned.

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| stoichs | array[] \| null |  | Optional allowed positive stoichiometric ratios for each el… |
| **elements** (required) | string[] |  | Distinct element symbols, e.g. ['Cs', 'Pb', 'I']. |
| threshold | integer | 8 | Maximum stoichiometric coefficient when stoichs is omitted. |
| return_output | "formula" \| "composition_dict" \| "default" | "formula" | Output representation: formulas, composition dictionaries,… |
| species_unique | boolean | true | Keep oxidation-state-specific candidates when true. |
| oxidation_states_set | "smact14" \| "icsd16" \| "icsd24" \| "pymatgen_sp" \| "wiki" | "icsd24" | Built-in SMACT oxidation-state table. |

## Run it

From an agent connected to Ouro MCP (`https://mcp.ouro.foundation/mcp`):

```
execute_route(route_id="2e928b1a-93ad-4b98-a122-6d0280a1f81b", body={"elements":"..."})
```

From Python (`pip install ouro-py`):

```python
from ouro import Ouro

ouro = Ouro()  # reads OURO_API_KEY
action = ouro.routes.execute("2e928b1a-93ad-4b98-a122-6d0280a1f81b", body={"elements":"..."})
```

The call returns the result. Every run is recorded as an action with its inputs, logs and outputs.
