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

54 lines
3.4 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<providers xmlns="https://calco2la.to/schema/providers/v1">
<provider id="climatiq_travel_preview3">
<name>Climatiq Travel v1-preview3</name>
<baseUrl>https://preview.api.climatiq.io</baseUrl>
<auth type="bearer">
<envKey>CLIMATIQ_API_KEY</envKey>
</auth>
<operations>
<operation id="travel.flight.estimate_emissions">
<http method="POST" path="/travel/v1-preview3/distance"/>
<requestBody format="json">
{
"travel_mode": "air",
"origin": {
"iata": "${request.legs[0].origin_iata}"
},
"destination": {
"iata": "${request.legs[0].destination_iata}"
},
"year": ${request.vendor_options.climatiq_year},
"distance_km": ${request.legs[0].distance_km},
"air_details": ${request.vendor_options.climatiq_air_details}
}
</requestBody>
<responseMapping mode="single" rootType="EmissionCalculationResult">
<constant target="EmissionCalculationResult.provider" value="climatiq_travel_preview3"/>
<constant target="EmissionCalculationResult.domain" value="travel.flight"/>
<constant target="EmissionCalculationResult.operation" value="travel.flight.estimate_emissions"/>
<field source="$.co2e" target="EmissionCalculationResult.total.co2eKg"/>
<field source="$.co2e_unit" target="EmissionCalculationResult.total.unit"/>
<constant target="EmissionCalculationResult.total.per" value="passenger"/>
<field source="$.distance_km" target="EmissionCalculationResult.distance.value"/>
<constant target="EmissionCalculationResult.distance.unit" value="km"/>
<field source="$.co2e_calculation_method" target="EmissionCalculationResult.methodology.methodName"/>
<constant target="EmissionCalculationResult.methodology.vendor" value="Climatiq"/>
<constant target="EmissionCalculationResult.methodology.documentationUrl" value="https://www.climatiq.io/docs/api-reference/travel"/>
<field source="$.origin.name" target="EmissionCalculationResult.segments[0].origin.name"/>
<field source="$.origin.latitude" target="EmissionCalculationResult.segments[0].origin.lat"/>
<field source="$.origin.longitude" target="EmissionCalculationResult.segments[0].origin.lon"/>
<field source="$.destination.name" target="EmissionCalculationResult.segments[0].destination.name"/>
<field source="$.destination.latitude" target="EmissionCalculationResult.segments[0].destination.lat"/>
<field source="$.destination.longitude" target="EmissionCalculationResult.segments[0].destination.lon"/>
<field source="$.direct_emissions.co2e" target="EmissionCalculationResult.segments[0].emissions.co2eKg"/>
<field source="$.direct_emissions.co2e_unit" target="EmissionCalculationResult.segments[0].emissions.unit"/>
<field source="$.indirect_emissions.co2e" target="EmissionCalculationResult.segments[0].vendorRaw.indirectEmissionsKg"/>
<field source="$.notices" target="EmissionCalculationResult.metadata.notices"/>
<field source="$.source_trail" target="EmissionCalculationResult.metadata.sourceTrail"/>
<field source="$" target="EmissionCalculationResult.vendorRaw"/>
</responseMapping>
</operation>
</operations>
</provider>
</providers>