Files
emission-api-lib/providers/carbontracer/carbontracer.xml
2026-05-23 14:53:23 +02:00

71 lines
5.6 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<providers xmlns="https://calco2la.to/schema/providers/v1">
<provider id="carbontracer">
<name>CarbonTracer Uni Graz</name>
<baseUrl>https://api.carbontracer.uni-graz.at</baseUrl>
<auth type="pathApiKey">
<envKey>CARBONTRACER_API_KEY</envKey>
<placeholder>apikey</placeholder>
</auth>
<operations>
<operation id="travel.flight.estimate_emissions">
<http method="GET" path="/routing/${env.CARBONTRACER_API_KEY}/${request.vendor_options.carbontracer_type}/${request.legs[0].origin_iata}/${request.legs[0].destination_iata}/options=airports"/>
<responseMapping mode="single" rootType="EmissionCalculationResult">
<constant target="EmissionCalculationResult.provider" value="carbontracer"/>
<constant target="EmissionCalculationResult.domain" value="travel.flight"/>
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions"/>
<field source="$.response.success" target="EmissionCalculationResult.vendorRaw.success"/>
<field source="$.response.warning" target="EmissionCalculationResult.vendorRaw.warning"/>
<field source="$.response.errors" target="EmissionCalculationResult.errors"/>
<field source="$.response.data.co2eq_occupancy" target="EmissionCalculationResult.total.co2eKg"/>
<field source="$.response.data.unitco2eq" target="EmissionCalculationResult.total.unit"/>
<constant target="EmissionCalculationResult.total.per" value="passenger"/>
<field source="$.response.data.distanceRoute" target="EmissionCalculationResult.distance.value"/>
<field source="$.response.data.unitdistance" target="EmissionCalculationResult.distance.unit"/>
<field source="$.response.data.startLocation.label" target="EmissionCalculationResult.segments[0].origin.name"/>
<field source="$.response.data.startLocation.country" target="EmissionCalculationResult.segments[0].origin.country"/>
<field source="$.response.data.startLocation.Longitude" target="EmissionCalculationResult.segments[0].origin.lon"/>
<field source="$.response.data.startLocation.latitute" target="EmissionCalculationResult.segments[0].origin.lat"/>
<field source="$.response.data.endLocation.label" target="EmissionCalculationResult.segments[0].destination.name"/>
<field source="$.response.data.endLocation.country" target="EmissionCalculationResult.segments[0].destination.country"/>
<field source="$.response.data.endLocation.Longitude" target="EmissionCalculationResult.segments[0].destination.lon"/>
<field source="$.response.data.endLocation.latitute" target="EmissionCalculationResult.segments[0].destination.lat"/>
<field source="$.response.data.requestType" target="EmissionCalculationResult.segments[0].type"/>
<field source="$.response.data.co2eq" target="EmissionCalculationResult.segments[0].emissions.co2eKg"/>
<field source="$.response.data.occupancy" target="EmissionCalculationResult.segments[0].passengerCount"/>
<field source="$.response.data.distanceRoute" target="EmissionCalculationResult.segments[0].distance.value"/>
<field source="$.response.data.unitdistance" target="EmissionCalculationResult.segments[0].distance.unit"/>
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
</responseMapping>
</operation>
<operation id="travel.flight.estimate_emissions.distance">
<http method="GET" path="/co2only/${env.CARBONTRACER_API_KEY}/${request.vendor_options.carbontracer_type}/${request.legs[0].distance_km}"/>
<responseMapping mode="single" rootType="EmissionCalculationResult">
<constant target="EmissionCalculationResult.provider" value="carbontracer"/>
<constant target="EmissionCalculationResult.domain" value="travel.flight"/>
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions.distance"/>
<field source="$.response.success" target="EmissionCalculationResult.vendorRaw.success"/>
<field source="$.response.warning" target="EmissionCalculationResult.vendorRaw.warning"/>
<field source="$.response.errors" target="EmissionCalculationResult.errors"/>
<field source="$.response.data.co2eq" target="EmissionCalculationResult.total.co2eKg"/>
<field source="$.response.data.unitco2eq" target="EmissionCalculationResult.total.unit"/>
<field source="$.response.data.distance" target="EmissionCalculationResult.distance.value"/>
<field source="$.response.data.unitdistance" target="EmissionCalculationResult.distance.unit"/>
<field source="$.response.data.requestType" target="EmissionCalculationResult.segments[0].type"/>
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
</responseMapping>
</operation>
<operation id="travel.location.search">
<http method="GET" path="/location/${env.CARBONTRACER_API_KEY}/${request.query}"/>
<responseMapping mode="single" rootType="LocationRef">
<field source="$.response.data.country" target="LocationRef.country"/>
<field source="$.response.data.city" target="LocationRef.city"/>
<field source="$.response.data.label" target="LocationRef.name"/>
<field source="$.response.data.Longitude" target="LocationRef.lon"/>
<field source="$.response.data.latitute" target="LocationRef.lat"/>
<field source="$" target="LocationRef.vendorRaw"/>
</responseMapping>
</operation>
</operations>
</provider>
</providers>