rate-foundry

rate-foundry public API

As-predicted surface-reaction rate constants from the MLIPs on Matbench Discovery. Records are predictions as each model made them; comparison context lives in a separate opt-in derived layer and never appears in these responses. Reads are anonymous and CORS-enabled (any origin); writes (POST /v1/ingest) are key-authenticated and not part of the public surface.

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

GET /v1/health

Liveness and schema version

StatusMeaning
200Service is up

Response fields

FieldTypeNotes
okboolean
schema_versionstring or null

GET /v1/systems

List canonical chemical systems

StatusMeaning
200Canonical system ids, e.g. "Cu/Cu(100)"

Response fields

FieldTypeNotes
dataarray
data[].system_idstringe.g. Cu/Cu(100)
data[].substratestringe.g. Cu
data[].facetstringe.g. (100)
data[].adsorbatestring or null

GET /v1/processes

List the process taxonomy

StatusMeaning
200Process slugs, e.g. "adatom_hop"

Response fields

FieldTypeNotes
dataarray
data[].process_idstringe.g. adatom_hop
data[].labelstring
data[].descriptionstring or null

GET /v1/models

List model + version pairs with records in the catalog

StatusMeaning
200Model/version pairs

Response fields

FieldTypeNotes
dataarray
data[].modelstringe.g. chgnet
data[].model_versionstring

GET /v1/rates

Query rate records

The mental model: system in, rates out. All filters are optional and ANDed. Results are ordered by record id and paginated with an opaque cursor.

ParameterInTypeLimitsDescription
systemquerystringCanonical system id, e.g. Cu/Cu(100)
processquerystringProcess slug, e.g. adatom_hop
modelquerystringModel name, e.g. chgnet
limitqueryintegerminimum 1, maximum 1000, default 100
cursorquerystringOpaque pagination cursor from page.next_cursor
StatusMeaning
200A page of rate records
304Unchanged since the supplied ETag
400Malformed query parameters

Response fields

FieldTypeNotes
dataarray
data[].idstring
data[].system_idstring
data[].process_idstring
data[].modelstring
data[].model_versionstring
data[].barrier_eVnumber
data[].attempt_frequency_Hznumber
data[].protocol_versionstring
data[].provenanceobject
data[].provenance.github_shastring
data[].provenance.actions_run_idstring
data[].provenance.utcstring
data[].created_utcstring
data[].path_energies_eVarrayOptional (schema v0.3). As-predicted NEB image energies along the MEP in eV relative to the initial image. Absent when the record has no path.
data[].path_n_imagesintegerOptional (schema v0.3). Length of path_energies_eV.
pageobject
page.limitinteger
page.next_cursorstring or null

GET /v1/rates/{id}

One rate record by id

ParameterInTypeLimitsDescription
idpathstring<system>/<process>/<model>@<version>
StatusMeaning
200The record
304Unchanged since the supplied ETag
404No such record

Response fields

FieldTypeNotes
dataobjectSchema v0.2 record, as-predicted. No comparison fields.
data.idstring
data.system_idstring
data.process_idstring
data.modelstring
data.model_versionstring
data.barrier_eVnumber
data.attempt_frequency_Hznumber
data.protocol_versionstring
data.provenanceobject
data.provenance.github_shastring
data.provenance.actions_run_idstring
data.provenance.utcstring
data.created_utcstring
data.path_energies_eVarrayOptional (schema v0.3). As-predicted NEB image energies along the MEP in eV relative to the initial image. Absent when the record has no path.
data.path_n_imagesintegerOptional (schema v0.3). Length of path_energies_eV.

Errors

FieldTypeNotes
errorobject
error.codestring
error.messagestring