rate-foundry

Quickstart

The flow: pick a chemical system and a model (the oracle that produced the numbers), then look up the rate.

1. See what the catalog holds

No API key is needed for reads. Base URL: https://rate-foundry-api.dirac-e08.workers.dev.

import httpx

BASE = "https://rate-foundry-api.dirac-e08.workers.dev"
systems = httpx.get(f"{BASE}/v1/systems", headers={"User-Agent": "curl/8"}).json()["data"]
models = httpx.get(f"{BASE}/v1/models", headers={"User-Agent": "curl/8"}).json()["data"]
print([s["system_id"] for s in systems])
print([(m["model"], m["model_version"]) for m in models])
assert systems and models

2. Look up one rate

With the Python client (single dependency, httpx; the package lives in the repository under src/ratefoundry):

import ratefoundry as rf

rate = rf.lookup("Cu/Cu(100)", "chgnet", "adatom_hop")
print(rate.barrier_eV, rate.attempt_frequency_Hz)
print(f"k(300 K) = {rate.at(300.0):.3e} per second")
assert rate.barrier_eV > 0

If a model has several versions in the catalog, pass model_version="..."; the call otherwise raises an ambiguous error that lists them.

3. Compare models

import ratefoundry as rf

for rec in rf.rates("Cu/Cu(100)", process="adatom_hop"):
    print(rec.model, rec.model_version, rec.barrier_eV)

Without Python

curl -s "https://rate-foundry-api.dirac-e08.workers.dev/v1/rates?system=Cu/Cu(100)&process=adatom_hop"

Responses are cached at the edge and carry an ETag; browsers can call the API directly (CORS is enabled for reads).