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
| Status | Meaning |
|---|---|
| 200 | Service is up |
Response fields
| Field | Type | Notes |
|---|---|---|
| ok | boolean | |
| schema_version | string or null |
GET /v1/systems
List canonical chemical systems
| Status | Meaning |
|---|---|
| 200 | Canonical system ids, e.g. "Cu/Cu(100)" |
Response fields
| Field | Type | Notes |
|---|---|---|
| data | array | |
| data[].system_id | string | e.g. Cu/Cu(100) |
| data[].substrate | string | e.g. Cu |
| data[].facet | string | e.g. (100) |
| data[].adsorbate | string or null |
GET /v1/processes
List the process taxonomy
| Status | Meaning |
|---|---|
| 200 | Process slugs, e.g. "adatom_hop" |
Response fields
| Field | Type | Notes |
|---|---|---|
| data | array | |
| data[].process_id | string | e.g. adatom_hop |
| data[].label | string | |
| data[].description | string or null |
GET /v1/models
List model + version pairs with records in the catalog
| Status | Meaning |
|---|---|
| 200 | Model/version pairs |
Response fields
| Field | Type | Notes |
|---|---|---|
| data | array | |
| data[].model | string | e.g. chgnet |
| data[].model_version | string |
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.
| Parameter | In | Type | Limits | Description |
|---|---|---|---|---|
| system | query | string | Canonical system id, e.g. Cu/Cu(100) | |
| process | query | string | Process slug, e.g. adatom_hop | |
| model | query | string | Model name, e.g. chgnet | |
| limit | query | integer | minimum 1, maximum 1000, default 100 | |
| cursor | query | string | Opaque pagination cursor from page.next_cursor |
| Status | Meaning |
|---|---|
| 200 | A page of rate records |
| 304 | Unchanged since the supplied ETag |
| 400 | Malformed query parameters |
Response fields
| Field | Type | Notes |
|---|---|---|
| data | array | |
| data[].id | string | |
| data[].system_id | string | |
| data[].process_id | string | |
| data[].model | string | |
| data[].model_version | string | |
| data[].barrier_eV | number | |
| data[].attempt_frequency_Hz | number | |
| data[].protocol_version | string | |
| data[].provenance | object | |
| data[].provenance.github_sha | string | |
| data[].provenance.actions_run_id | string | |
| data[].provenance.utc | string | |
| data[].created_utc | string | |
| data[].path_energies_eV | array | Optional (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_images | integer | Optional (schema v0.3). Length of path_energies_eV. |
| page | object | |
| page.limit | integer | |
| page.next_cursor | string or null |
GET /v1/rates/{id}
One rate record by id
| Parameter | In | Type | Limits | Description |
|---|---|---|---|---|
| id | path | string | <system>/<process>/<model>@<version> |
| Status | Meaning |
|---|---|
| 200 | The record |
| 304 | Unchanged since the supplied ETag |
| 404 | No such record |
Response fields
| Field | Type | Notes |
|---|---|---|
| data | object | Schema v0.2 record, as-predicted. No comparison fields. |
| data.id | string | |
| data.system_id | string | |
| data.process_id | string | |
| data.model | string | |
| data.model_version | string | |
| data.barrier_eV | number | |
| data.attempt_frequency_Hz | number | |
| data.protocol_version | string | |
| data.provenance | object | |
| data.provenance.github_sha | string | |
| data.provenance.actions_run_id | string | |
| data.provenance.utc | string | |
| data.created_utc | string | |
| data.path_energies_eV | array | Optional (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_images | integer | Optional (schema v0.3). Length of path_energies_eV. |
Errors
| Field | Type | Notes |
|---|---|---|
| error | object | |
| error.code | string | |
| error.message | string |