DCFootprint API 🧮
The enables to consume DCFootprint’s calculations results outside of the web interface, making it possible to call for multiple calculations programmatically.
On a self hosted version of DCFootprint, the API will be available at http://localhost:5173/api/datacenter.
There is for now a single POST route api/datacenter that returns the estimation for a data center, depending on the parameters provided, and for the Functional Units from Ademe’s Product Category Rule.
A swagger/openapi interface is also available at http://localhost:5173/swagger to test the API from your browser.
Request parameters
The parameters needed are the same as the ones presented in the web interface, and described in the parameters chapter.
An example parameters set for a query looks like this:
{
"datacenterLoadFactor": "0.3",
"lifespan": "20",
"location": "United Kingdom",
"maximumUsableElectricalPower": "10",
"powerUsageEffectiveness": "1.54",
"totalSurface": "7000"
}
This will ask DCFootprint for an estimation on a data center located in the UK, with a lifespan hypothesis of 20 years, 10 MW of power installed for the whole facility, a PUE of 1.54 and a total area for all floors of the building of 7000 square meters.
Answer format
The answer is a dictionnary with the following 3 sections:
{
"query": {...},
"parameters": {...},
"results": {...}
}
The query part sums up the query body that has been received.
The parameters section extacts the parameters that have been used for the calculations.
The results one is the one you need, containing all the calculations for the data centers and the functional units.
Auto completion of missing parameters
yearlyTotalEnergy parameter is calculated automatically from the other parameters, if not provided. This is the same behavior as in the web interface.
waterUsageEffectiveness is considerd to be 0 if not provided
Detailled, multi-step, per inventory category results
The detaillled results are in the results dictionnary, then in the impactFactors list.
Each element of this list follows this structure:
{
"name": "🏢 Building architecture",
"amount": 0,
"lifeCycleStep": "manufacturing",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 7,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 3815,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 1046500,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.018445,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "building"
}
Here name indicates which category of the inventory is concerned, among the ones listed in the calculation summary table.
lifeCycleStep gives the life cycle step concerned among: manufacturing, transport, use and end-of-life.
Then the impacts dictionnary gives the result, for each environmental criteria evaluated. The environmental criteria available are described here.
Relative share of impacts among lifecycle steps
Cumulated impacts per life cycle step can be found under the impactFactorsShares key, then perLifeCycle.
Those values are the ones used to generate the bar chart in the web UI.
Results for each Functional Unit
The sub dictionnaries containing results for each Functional Units are named:
- firstUnitResults
- secondUnitResults
and so on.
Complete example result
{
"query": {
"datacenterLoadFactor": "0.3",
"lifespan": "20",
"location": "United Kingdom",
"maximumUsableElectricalPower": "10",
"powerUsageEffectiveness": "1.54",
"totalSurface": "7000",
"yearlyTotalEnergy": 26280
},
"results": {
"datacenterLoadFactor": 0.3,
"lifespan": 20,
"location": "United Kingdom",
"maximumUsableElectricalPower": 10,
"powerUsageEffectiveness": 1.54,
"totalSurface": 7000,
"waterUsageEffectiveness": 0,
"yearlyTotalEnergy": 26280,
"concreteVolume": 0,
"factorsSummary": "",
"firstUnitResults": [
{
"name": "🏢 Building architecture",
"amount": 0,
"lifeCycleStep": "manufacturing",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0.000053899999999999996,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 0.0293755,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 8.05805,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 1.420265e-7,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "building"
},
{
"name": "🏢 Building architecture",
"amount": 0,
"lifeCycleStep": "transport",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 5.03965e-9,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 0.0008111949999999999,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 0.12828199999999998,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 6.602749999999999e-9,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "building"
},
{
"name": "🏢 Building architecture",
"amount": 0,
"lifeCycleStep": "use",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 0,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 0,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "building"
},
{
"name": "🏢 Building architecture",
"amount": 0,
"lifeCycleStep": "end-of-life",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 6.54885e-9,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 0.001005235,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 0.13582799999999998,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 6.225449999999999e-9,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "building"
},
{
"name": "⚙️ Technical environment (energy supply, ❄️ cooling)",
"amount": 0,
"lifeCycleStep": "manufacturing",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0.000015074999999999999,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 0.00192,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 0.2275,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 1.2525e-8,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "technical environment"
},
{
"name": "⚙️ Technical environment (energy supply, ❄️ cooling)",
"amount": 0,
"lifeCycleStep": "transport",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 9.525e-11,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 0.00001535,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 0.0024225,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 1.245e-10,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "technical environment"
},
{
"name": "⚙️ Technical environment (energy supply, ❄️ cooling)",
"amount": 0,
"lifeCycleStep": "use",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0.000237806249976,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 4.1810097024,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 944.80488504,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.000030529837656,
"unit": "disease incidence"
},
"WU": {
"value": 3.2470184144595886,
"unit": "m3 world eq. deprived"
}
},
"category": "technical environment"
},
{
"name": "⚙️ Technical environment (energy supply, ❄️ cooling)",
"amount": 0,
"lifeCycleStep": "end-of-life",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 1.9199999999999997e-7,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 0.0002425,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 0.025449999999999993,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 1.93e-9,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "technical environment"
},
{
"name": "🖥️ IT",
"amount": 0,
"lifeCycleStep": "manufacturing",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0.0005506938076424399,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 0.28700179922105995,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 13.111757324819997,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.0000016462539752273998,
"unit": "disease incidence"
},
"WU": {
"value": 1.17860129730882,
"unit": "m3 world eq. deprived"
}
},
"category": "information technologies"
},
{
"name": "🖥️ IT",
"amount": 0,
"lifeCycleStep": "transport",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 0,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 0,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "information technologies"
},
{
"name": "🖥️ IT",
"amount": 0,
"lifeCycleStep": "use",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0.00009749170439999999,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 5.700447360000001,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 1558.1858760000002,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.0000521902404,
"unit": "disease incidence"
},
"WU": {
"value": 6.012997063814052,
"unit": "m3 world eq. deprived"
}
},
"category": "information technologies"
},
{
"name": "🖥️ IT",
"amount": 0,
"lifeCycleStep": "end-of-life",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 0,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 0,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "information technologies"
}
],
"firstUnitShares": [],
"freightLifts": 0,
"impactFactors": [
{
"name": "🏢 Building architecture",
"amount": 0,
"lifeCycleStep": "manufacturing",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 7,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 3815,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 1046500,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.018445,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "building"
},
{
"name": "🏢 Building architecture",
"amount": 0,
"lifeCycleStep": "transport",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0.0006545,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 105.35,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 16660,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.0008575,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "building"
},
{
"name": "🏢 Building architecture",
"amount": 0,
"lifeCycleStep": "use",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 0,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 0,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "building"
},
{
"name": "🏢 Building architecture",
"amount": 0,
"lifeCycleStep": "end-of-life",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0.0008505,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 130.55,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 17640,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.0008085,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "building"
},
{
"name": "⚙️ Technical environment (energy supply, ❄️ cooling)",
"amount": 0,
"lifeCycleStep": "manufacturing",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 1.9577922077922079,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 249.35064935064938,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 29545.454545454548,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.0016266233766233768,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "technical environment"
},
{
"name": "⚙️ Technical environment (energy supply, ❄️ cooling)",
"amount": 0,
"lifeCycleStep": "transport",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0.00001237012987012987,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 1.9935064935064937,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 314.61038961038963,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.00001616883116883117,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "technical environment"
},
{
"name": "⚙️ Technical environment (energy supply, ❄️ cooling)",
"amount": 0,
"lifeCycleStep": "use",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 1.5441964284155845,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 27149.413651948053,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 6135096.656103897,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.19824569906493508,
"unit": "disease incidence"
},
"WU": {
"value": 21084.535158828498,
"unit": "m3 world eq. deprived"
}
},
"category": "technical environment"
},
{
"name": "⚙️ Technical environment (energy supply, ❄️ cooling)",
"amount": 0,
"lifeCycleStep": "end-of-life",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0.024935064935064935,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 31.493506493506498,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 3305.1948051948048,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.0002506493506493507,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "technical environment"
},
{
"name": "🖥️ IT",
"amount": 0,
"lifeCycleStep": "manufacturing",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 71.51867631719999,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 37272.960937799995,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 1702825.6265999998,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.213799217562,
"unit": "disease incidence"
},
"WU": {
"value": 153065.1035466,
"unit": "m3 world eq. deprived"
}
},
"category": "information technologies"
},
{
"name": "🖥️ IT",
"amount": 0,
"lifeCycleStep": "transport",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 0,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 0,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "information technologies"
},
{
"name": "🖥️ IT",
"amount": 0,
"lifeCycleStep": "use",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0.6330630155844156,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 37015.891948051954,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 10118090.103896106,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.33889766493506496,
"unit": "disease incidence"
},
"WU": {
"value": 39045.43547931203,
"unit": "m3 world eq. deprived"
}
},
"category": "information technologies"
},
{
"name": "🖥️ IT",
"amount": 0,
"lifeCycleStep": "end-of-life",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 0,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 0,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 0,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "information technologies"
}
],
"impactFactorsShares": {
"perLifeCycle": [
{
"impactCriterion": "ADPe",
"lifeCycleStep": "manufacturing",
"share": 80.4764685249922
},
{
"impactCriterion": "AP",
"lifeCycleStep": "manufacturing",
"share": 41337.311587150645
},
{
"impactCriterion": "GWP",
"lifeCycleStep": "manufacturing",
"share": 2778871.081145454
},
{
"impactCriterion": "PM",
"lifeCycleStep": "manufacturing",
"share": 0.23387084093862337
},
{
"impactCriterion": "WU",
"lifeCycleStep": "manufacturing",
"share": 153065.1035466
},
{
"impactCriterion": "ADPe",
"lifeCycleStep": "transport",
"share": 0.0006668701298701299
},
{
"impactCriterion": "AP",
"lifeCycleStep": "transport",
"share": 107.34350649350648
},
{
"impactCriterion": "GWP",
"lifeCycleStep": "transport",
"share": 16974.61038961039
},
{
"impactCriterion": "PM",
"lifeCycleStep": "transport",
"share": 0.0008736688311688311
},
{
"impactCriterion": "WU",
"lifeCycleStep": "transport",
"share": 0
},
{
"impactCriterion": "ADPe",
"lifeCycleStep": "use",
"share": 2.177259444
},
{
"impactCriterion": "AP",
"lifeCycleStep": "use",
"share": 64165.30560000001
},
{
"impactCriterion": "GWP",
"lifeCycleStep": "use",
"share": 16253186.760000002
},
{
"impactCriterion": "PM",
"lifeCycleStep": "use",
"share": 0.5371433640000001
},
{
"impactCriterion": "WU",
"lifeCycleStep": "use",
"share": 60129.97063814053
},
{
"impactCriterion": "ADPe",
"lifeCycleStep": "end-of-life",
"share": 0.025785564935064936
},
{
"impactCriterion": "AP",
"lifeCycleStep": "end-of-life",
"share": 162.0435064935065
},
{
"impactCriterion": "GWP",
"lifeCycleStep": "end-of-life",
"share": 20945.194805194806
},
{
"impactCriterion": "PM",
"lifeCycleStep": "end-of-life",
"share": 0.0010591493506493506
},
{
"impactCriterion": "WU",
"lifeCycleStep": "end-of-life",
"share": 0
}
],
"steps": [
"manufacturing",
"transport",
"use",
"end-of-life"
]
},
"impactTotals": [
{
"name": "Null initialized element",
"amount": 0,
"lifeCycleStep": "total",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 7.001505,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 4050.9,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 1080800,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.020111,
"unit": "disease incidence"
},
"WU": {
"value": 0,
"unit": "m3 world eq. deprived"
}
},
"category": "building"
},
{
"name": "Null initialized element",
"amount": 0,
"lifeCycleStep": "total",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 3.526936071272728,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 27432.251314285713,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 6168261.915844156,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.20013914062337665,
"unit": "disease incidence"
},
"WU": {
"value": 21084.535158828498,
"unit": "m3 world eq. deprived"
}
},
"category": "technical environment"
},
{
"name": "Null initialized element",
"amount": 0,
"lifeCycleStep": "total",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 72.1517393327844,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 74288.85288585196,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 11820915.730496105,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.552696882497065,
"unit": "disease incidence"
},
"WU": {
"value": 192110.53902591203,
"unit": "m3 world eq. deprived"
}
},
"category": "information technologies"
},
{
"name": "Null initialized element",
"amount": 0,
"lifeCycleStep": "total",
"source": "Generated",
"impacts": {
"ADPe": {
"value": 82.68018040405713,
"unit": "kg Sb-Eq"
},
"AP": {
"value": 105772.00420013766,
"unit": "mol H+-Eq"
},
"GWP": {
"value": 19069977.646340262,
"unit": "kg CO2-Eq"
},
"PM": {
"value": 0.7729470231204416,
"unit": "disease incidence"
},
"WU": {
"value": 213195.07418474054,
"unit": "m3 world eq. deprived"
}
},
"category": "total"
}
],
"initialValues": {
"location": {
"label": "Location",
"value": "France",
"description": "Country where the Datacenter is operated. "
},
"maximumUsableElectricalPower": {
"label": "Total power installed (IT + facility)",
"value": 5,
"description": "Total power installed for the building, in MegaWatts (MW). "
},
"dataCenterLoadFactor": {
"label": "Load factor",
"value": 0.3,
"description": "Load factor of the power used over the total power installed, from 0.0 to 1.0. "
},
"lifespan": {
"label": "Building lifespan",
"value": 30,
"description": "Lifespan of the Datacenter, in years. "
},
"totalSurface": {
"label": "Building total surface",
"value": 5000,
"description": "The building total surface in square meters, allowing to compute the total and yearly impacts for the manufacturing, transport and end-of-life life cycle steps"
},
"yearlyTotalEnergy": {
"label": "Total energy (IT + facility), for one year",
"value": 13140000,
"description": "Total, average, energy consumed per year, in MegaWattHour (MWh). "
},
"powerUsageEffectiveness": {
"label": "Power Usage Effectiveness",
"value": 1.45,
"description": "Power Usage Effectiveness of the Datacenter."
},
"waterUsageEffectiveness": {
"label": "Water Usage Effectiveness",
"value": 0,
"description": "Water Usage Effectiveness of the Datacenter."
}
},
"lifts": 0,
"partitionSurface": 0,
"steelMass": 0,
"suspendedCeilingSurface": 0,
"technicalRoomsSurface": 0
},
"version": "0.1.1"
}