Reliafy

API reference

Read models & reliability, create datasets and fit, read fleet forecasts, run strategy calculators, and push operational data — through the reliafy-client Python package or the raw HTTP API. Create a free account, then generate a token under Settings › API access.

reliafy-client is a thin Python wrapper over the HTTP API — each call maps to one endpoint (shown on the right). Pure standard library; you bring SurPyval.

Install & authenticate

pip install reliafy-client        # installed as reliafy-client, imported as `reliafy`

import reliafy
reliafy.configure(token="rlf_...")   # or set RELIAFY_TOKEN; base_url= for self-hosted

Create a token under Settings → API access (Pro on Reliafy Cloud).

reliafy.models

models.push(model, name, *, data=True, unit=None)POST /api/import/models

Push a fitted SurPyval model and return its URL.

Parameters
modelSurPyval modelrequiredA fitted SurPyval distribution.
namestrrequiredModel name.
databooloptionalUpload the fitted observations too (default True → full plot, refittable). False = params only.
unitstroptionalUnit of the time axis.
Returns
"https://reliafy.com/modelling/m/a1b2…"   # str — open in the app
models.push_params(distribution, params, name, *, unit=None, extras=None)POST /api/import/models

Push a model by distribution + parameter values (no SurPyval object).

Parameters
distributionstrrequirede.g. "weibull".
paramsnumber[] | {name,value}[]requiredParameter values.
namestrrequiredModel name.
unitstroptionalTime unit.
extrasdictoptionalgamma / p / f0 for offset / LFP / zero-inflation.
Returns
"https://reliafy.com/modelling/m/…"   # str
models.list()GET /api/v1/models

Your saved models.

Returns
[ { "id": "a1b2…", "name": "Bearing life", "distribution": "Weibull",
    "kind": "distribution", "n": 30, "unit": "hours", "url": "/modelling/m/…" }, … ]
models.get(model_id)GET /api/v1/models/{id}

One model's fit.

Parameters
model_idstrrequiredModel id.
Returns
{ "id": …, "distribution": "Weibull", "params": [{name, value, se, ci}],
  "coefficients": [], "metrics": null, "gof": [{id, label, value}] }
models.reliability(model_id, t=None, covariates=None)POST /api/v1/models/{id}/reliability

Evaluate the reliability functions.

Parameters
model_idstrrequiredModel id.
tnumberoptionalTime to evaluate at. Omit for the whole curve.
covariatesdictoptionalCovariate values for a proportional-hazards model.
Returns
{ "at": { "reliability": 0.666, "failure": 0.334, "hazard": …,
          "cumulative_hazard": …, "density": … } }   # or {"curves": {...}}
models.fit(dataset_id, distribution, name, *, mapping=None, unit=None, covariates=None, formula=None)POST /api/v1/fit

Fit and save a model from one of your datasets.

Parameters
dataset_idstrrequiredDataset to fit.
distributionstrrequirede.g. weibull, weibull_ph, best.
namestrrequiredModel name.
mappingdictrequiredRole → column, e.g. {"x": "hours", "c": "failed"}.
unitstroptionalTime unit.
covariatesstr[]optionalCovariate columns (PH).
formulastroptionalFormulaic covariate formula.
Returns
{ "id": …, "name": "Bearing life", "distribution": "Weibull", "url": "/modelling/m/…" }

reliafy.data

data.upload(name, *, csv=None, data=None)POST /api/v1/datasets

Create a dataset from CSV text or column arrays.

Parameters
namestrrequiredDataset name.
csvstroptionalRaw CSV text (with a header). Provide this or data.
datadictoptionalColumn arrays, e.g. {"hours": [...], "failed": [...]}.
Returns
{ "id": "d3…", "name": "Bearings", "n_rows": 8, "columns": ["hours","failed"], "url": "/datasets/d/…" }

reliafy.strategy

strategy.optimal_replacement(distribution, params, planned_cost, unplanned_cost, *, unit=None)POST /api/v1/strategy/optimal-replacement

Cost-optimal preventive-replacement interval.

Parameters
distributionstrrequirede.g. weibull.
paramsnumber[]requiredDistribution parameters.
planned_costnumberrequiredCost of a planned replacement.
unplanned_costnumberrequiredCost of a failure.
unitstroptionalTime unit.
Returns
{ "optimal_time": 580.5, "optimal_cost_rate": 0.51, "beneficial": true, "mttf": 1272.4 }
strategy.failure_finding(distribution, params, target_availability, *, unit=None)POST /api/v1/strategy/failure-finding

Inspection interval for a hidden (protective) function.

Parameters
distributionstrrequirede.g. exponential.
paramsnumber[]requiredDistribution parameters.
target_availabilitynumberrequiredTarget availability in (0,1), e.g. 0.99.
unitstroptionalTime unit.
Returns
{ "interval": 176.4, "method": "…", "mttf": 8760, "target_availability": 0.99 }

reliafy.fleet

fleet.forecast(fleet_id)GET /api/v1/fleets/{id}/forecast

The live failure forecast for one of your fleets.

Parameters
fleet_idstrrequiredFleet id (from /fleet/forecasts/<id>).
Returns
{ "fleet": {id, name, model_id}, "forecast": {status, method, periods, expected_failures, …} }
  • Errors raise reliafy.ReliafyError; reads/writes are scoped to your own data.
  • Full request/response field tables are on the HTTP API tab.