{
  "openapi": "3.1.0",
  "info": {
    "title": "SQUAKE API Documentation",
    "version": "",
    "description": "# Introduction\n## Trusted technology to achieve your carbon targets.\n\nThe **SQUAKE Solution Suite** is live with industry leaders from several travel and logistics segments and performs accurate carbon calculations for all types of activities (e.g. flights, road, accommodation amongst others) according to national and international standards. It automates carbon reductions and/or compensations along the supply chain, from supplier selection (SAF, DAC, ecological restoration) to inventory management, invoicing and credit retirement.\n\n## Customer Support\nFor any issues or inquiries, you can reach our dedicated customer support team through our [Support Page](https://support.squake.earth/). This is the best place to ask questions, report incidents, or get assistance with integrating or using SQUAKE's solutions.\n\n## Contact Forms\nOur contact forms are designed to help you communicate with us effectively. Whether you want to get in contact with our support team or need to report an incident, we've got you covered. Please use the appropriate form below:\n\n* [Contact Form](https://support.squake.earth/hc/en-gb/requests/new?ticket_form_id=5351278647581): Get in contact with our customer support team or share your thoughts and suggestions about our services and processes.\n* [Incident Form](https://support.squake.earth/hc/en-gb/requests/new?ticket_form_id=21154347283741): Report any issues or incidents you've encountered, and our support team will respond as soon as possible.\n\n## Authentication\nSQUAKE uses API keys to authenticate requests. You can create and revoke API keys in the [Dashboard](https://app.squake.earth/), which you can access by contacting us under `product@squake.earth`. You should securely store your API keys; and encrypt them on rest if possible. Be aware that each API key is shown exactly once in the UI during creation. SQUAKE advises rotating API keys on a regular basis.\n\nTo use the sandbox environment, a separate API key must be created. Switch to sandbox mode in the dashboard, then create an API key.\n\nAll requests must be authenticated and made over HTTPS. SQUAKE supports TLS 1.2 - TLS 1.3. Requests without authentication or via plain HTTP result in an error.\n\nWhen using HTTP Basic Auth, the API key is the username; leave the password blank. For bearer auth, pass the API key as the token.\n\nExample using HTTP Basic Auth (note: there is no password, but a colon is still required):\n\n```shell\ncurl https://api.squake.earth/v2/pricing -u <YOUR_API_KEY>\n```\n\nExample using bearer auth:\n```shell\ncurl https://api.squake.earth/v2/pricing -H \"Authorization: Bearer <YOUR_API_KEY>\"\n```\n\n## Request ID\nSQUAKE associates each API request with a unique identifier. Find this value in the `SQUAKE-Request-Id` header. If you need to contact us regarding a specific request, providing the request identifier helps the resolution process.\n\n## Uptime Monitoring\nPlease visit [status.squake.earth](https://status.squake.earth) to check our uptime monitor. You can subscribe to events to stay informed of any service disruption. We will also publish a post-mortem about any incident should one occur.\n\nYou can programmatically check if servers are reachable. Read the documentation of the `Health Check` endpoints for details. The health check endpoints are the only endpoints that do not require authentication.\n\n## Sandbox\nThere is a sandbox server available for testing at\n\n`https://api.sandbox.squake.earth`\n\nSandbox and production are separate systems and share no data. Sandbox uses less computing power and may be slower than production. Both sandbox and production environments run the same version of the API; thus, they share the same feature set.\n\nTo use the sandbox environment, a separate API key must be created. Switch to sandbox mode in the dashboard, then create an API key.\n\n## Static IP Addresses\nAll outgoing traffic originates from one of the following static IP addresses. SQUAKE owns these IP addresses and never shares them for any other traffic.\n\n| Environment | IP Address     | Geo Region     |\n|-------------|----------------|----------------|\n| Production  | 52.59.66.213   | Europa/Germany |\n| Production  | 52.7.39.159    | USA            |\n| Sandbox     | 18.197.251.125 | Europa/Germany |\n\n## Getting Started with SQUAKE API\nThis guide will help you make requests to the SQUAKE API in order to calculate emissions for a travel journey.\n\n### Choose a group of Endpoints\nSQUAKE API has the following group of endpoints:\n- [Calculations](https://docs-v2.squake.earth/docs/openapi/calculations) - Calculates carbon emissions for various activities in a low-latency process.\n- [Pricing](https://docs-v2.squake.earth/docs/openapi/pricing) - Returns pricing for a given product and carbon quantity, valid for two weeks by default.\n- [Combined Calculation & Pricing](https://docs-v2.squake.earth/docs/openapi/combined-calculation-and-pricing) - Performs carbon calculation and pricing in a single call for convenience.\n- [Carbon Comparison](https://docs-v2.squake.earth/docs/openapi/carbon-comparison) - Compares carbon quantities to recognizable items like cars or light bulbs.\n- [Purchases](https://docs-v2.squake.earth/docs/openapi/purchases) - Registers a purchase to compensate for carbon emissions, requiring a prior pricing quote.\n- [Products](https://docs-v2.squake.earth/docs/openapi/products) - Lists purchasable compensation options, including single climate projects and bundles.\n- [Files](https://docs-v2.squake.earth/docs/openapi/files) - Manages file attachments related to purchases, such as compensation confirmations.\n- [Webhooks](https://docs-v2.squake.earth/docs/openapi/webhooks) - Allows you to receive notifications about events happening in SQUAKE.\n- [Audits](https://docs-v2.squake.earth/docs/openapi/audits) - Provides a list of audits or a specific audit for calculations.\n- [Health Check](https://docs-v2.squake.earth/docs/openapi/health-check) - Verifies if SQUAKE's server is reachable.\n\n### Precision of Calculations\n\n#### Bus Databases\nIf you want operator-specific calculations for buses, then use the following [dataset](https://squake.notion.site/31f83752e3bd4cf2ba314ceb8fa2acc6?v=5190873dd753431187b735a8fe40038f) supported by SQUAKE's methodology.\n\n#### Car Databases\nIf you have specific information about car models, then use one of the following methodologies: [ADEME](https://squake.notion.site/136f89fa8b1949e899f82f874d4f648c?v=49c586d0b74d4a6bbe2cf03d16546f5c) (France), [US-EPA](https://squake.notion.site/7f437246ecec4760a8b95b5c1d06f34a?v=454b352108e640ceb124890cf75f1c9f) (USA) and [EU-EEA](https://squake.notion.site/Car-EU-EEA-f38231a59f934d819ac1014c65bb701c) (EU).\n\n#### Hotel Databases\nUse the [HCMI](https://squake.notion.site/Hotel-HCMI-SQUAKE-7bd2c02fe23b45889e1c30ffc8018bcd) and [GreenView](https://squake.notion.site/Hotel-GreenView-Locations-237754e0050480fc9dfcd3ea65ce7c51?source=copy_link) methodologies to obtain more accurate emissions. \n\n#### GLEC Databases\nFor road and sea logistics activities according to GLEC, use the [GLEC dataset](https://squake.notion.site/GLEC-6947b398c6704220838ae5a16902b064).\n\n#### Train Databases\nFor operator-specific calculations for trains, use the [train dataset](https://squake.notion.site/21a17389cc5c4e38946f97ecaf6435bb?v=6be41159e77247599fe9b3672782fd5e).\n\n#### Van Databases\nFor van calculations, use the [EU-EEA supported dataset](https://squake.notion.site/b9afb2b6c23e4b60868c5b6148224c6d?v=49a2ac9295ab4cc18a328da841b7b583).\n\n### Carbon Comparison\nCompare carbon quantities to more recognizable items like cars or kettles. View accepted units in this [comparison database](https://squake.notion.site/96b220031e8e4d64aec4f0e46a5bde97?v=8c67ffdcf91c4477acf0640688beea11).\n<br>\n<br>\n<br>\n",
    "termsOfService": "https://www.squake.earth/legal/general-terms-and-conditions",
    "contact": {
      "name": "SQUAKE.earth",
      "url": "https://www.squake.earth/contact-us",
      "email": "product@squake.earth"
    }
  },
  "servers": [
    {
      "url": "https://api.squake.earth",
      "description": "Production"
    },
    {
      "url": "https://api.sandbox.squake.earth",
      "description": "Sandbox"
    }
  ],
  "security": [
    {},
    {
      "Bearer-Auth": []
    }
  ],
  "tags": [
    {
      "name": "Calculations",
      "description": ""
    },
    {
      "name": "Pricing",
      "description": ""
    },
    {
      "name": "Combined Calculation & Pricing",
      "description": ""
    },
    {
      "name": "Carbon Comparison",
      "description": ""
    },
    {
      "name": "Purchases",
      "description": ""
    },
    {
      "name": "Products",
      "description": ""
    },
    {
      "name": "Files",
      "description": ""
    },
    {
      "name": "Webhooks",
      "description": ""
    },
    {
      "name": "Audits",
      "description": "Audit logs are created when enabled on calculation requests.\n\n| ℹ️ To use this feature you need to have it enabled for your account, please contact us for more information.|\n|------------------------------------------------------------------------------------------------------------|\n\n<br>\nWhen Audit mode is enabled for a client, SQUAKE will generate audit logs if it's requested within the calculations request body. These logs are immutable; once they are created they cannot be altered—please use this feature only for final calculations.\n\nOperational notes:\n- Use **audit mode** whenever a calculation is for **past activity / post-booking (post-validated)** (e.g., ticketed & already-flown flights, completed stays/trips, historical backfills, invoice reconciliation/true-ups, corrections). These records are final and must be immutable.\n- **Audit mode must not be used for future-looking / pre-booking** or other non-final use cases (e.g., shopping/quotes, draft or tentative itineraries, forecasting/scenario planning, preliminary estimates, or POS value requests). These are expected to change.\n- **Post-booking (finalized) calculations MUST be performed with audit mode enabled.**\n- **Pre-booking (non-audit) calculated values must not be carried over into post-booking reporting**; after the activity is finalized, the calculation must be re-run with audit mode enabled.\n- Requests that handle **points-of-sale (POS) values** or other preview/estimation-only calls MUST be sent **without** audit mode.\n\nRule of thumb: **Past/post-validated = audit mode; Future/pre-booking = no audit mode**.\n\nIf you are calculating on behalf of a legal entity, you can create an Auditable entity via the [/v2/audits/entities](https://docs-v2.squake.earth/docs/openapi/audits/post-v2-audits-entities) endpoint and use the ID from the response as the `audit_for` property in the calculation request. This will associate all audit logs created for that calculation with the given Auditable entity.\n"
    },
    {
      "name": "Health Check",
      "description": "Check if SQUAKE's server can be reached."
    },
    {
      "name": "Travel Data",
      "description": "Create travel trip data and activities for reporting and analytics, and read back, or delete,\nwhat SQUAKE stored.\n\n`POST /v2/travel-data` ingests trips and returns their emissions. The trip endpoints\n(`/v2/travel-data/trips`) then serve the stored records: a trip carries its own attributes and\nthe IDs of its activities, and each activity carries its traveler and every calculation persisted\nfor it — including the ones from additional methodologies, which the flat `items` array of a\nsubmission does not report.\n\nTo ingest travel data you need to have it enabled for your account — please contact us. Until\nthen, `POST /v2/travel-data` and the CSV imports respond with `404` and error code\n`travel_data_not_found`. On the read endpoints that same response covers every miss: a trip that\ndoes not exist and a trip you cannot access are deliberately indistinguishable.\n"
    },
    {
      "name": "Clients",
      "description": "Manage a hierarchy of clients and submit travel data on their behalf. One authenticated integration\ncan create child clients and act for any of its descendants — no separate credential per child.\n\nTo use these endpoints you need to have this feature enabled for your account — please contact us.\nUntil then, every `/v2/clients` endpoint responds with `404`.\n\n**Environment isolation:** sandbox and production hierarchies are entirely separate. Clients created\nin sandbox exist only in sandbox, `id`s and `external_reference`s have no parity across environments,\nand there is no sync in either direction (the same test/live model you may know from other providers).\n"
    },
    {
      "name": "Invitations",
      "description": "Invite users into the sub-clients of your hierarchy. Each invitation creates (or resends to) a\nuser in the target sub-client and emails them an acceptance link they follow to set a password\nand finish signing up.\n\nInvitations may only be issued into sub-clients of the authenticated client — never into the\nauthenticated client itself. Users of your own organization are managed through the SQUAKE\nDashboard.\n\nRequires this feature to be enabled for your account (contact us); otherwise every\n`/v2/invitations` endpoint responds with `404`.\n"
    }
  ],
  "paths": {
    "/v2/calculations": {
      "post": {
        "tags": [
          "Calculations"
        ],
        "summary": "Perform a Calculation",
        "description": "The calculations endpoint can calculate carbon emissions for one or multiple activities. The carbon footprint or your journey consisting of, for example, a return flight, two cab rides, and a hotel stay can be computed all at once, passing all five activities in the items array.\nInclude the string literal \"items\" in the \"expand\" array to retrieve values for each item separately in addition to the total carbon quantity.\n\n\nThis is a low-latency endpoint. SQUAKE does not provide you with a unique identifier for any calculation results. You must quote a price on the pricing endpoint to purchase compensation for your carbon emissions.\n\n\nSome data sets are extensive and thus documented separately [here](https://squake.notion.site/Databases-2a5a8e757fc74b62bef3be7c5ac2f699).",
        "operationId": "post-calculations",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "expand": {
                    "type": "array",
                    "description": "Include `\"items\"` to return emissions per item (in addition to the total).\nInclude `\"legs\"` to return per-leg rows for flight items that use `routing`\n(multi-leg itineraries). `legs` is only meaningful when combined with `items`.\nSee [Flight routing](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-routing).\n",
                    "items": {
                      "type": "string",
                      "enum": [
                        "items",
                        "legs"
                      ],
                      "examples": [
                        "items",
                        "legs"
                      ]
                    }
                  },
                  "carbon_unit": {
                    "$ref": "#/components/schemas/carbon_unit"
                  },
                  "distance_unit": {
                    "$ref": "#/components/schemas/distance_unit"
                  },
                  "audit_for": {
                    "type": "string",
                    "description": "**(Optional)** Provide when calculating on behalf of a specific Auditable entity; otherwise omit.\n\nIf you make a calculation on behalf of a specific legal entity, you can specify the ID of the auditable entity. This will associate all audit logs created for that calculation with the given Auditable entity.\n"
                  },
                  "items": {
                    "type": "array",
                    "description": "One entry per activity you want calculated. A single request can mix activity\ntypes freely — a flight, two taxi rides, and a hotel stay are one call, and the\nresponse returns their combined `carbon_quantity`. Add `\"items\"` to `expand` to\nalso get the emissions of each entry separately.\n\nEvery item is shaped by two fields:\n\n- **`type`** — the activity, e.g. `flight`, `hotel`, `car`, `train`,\n  `road_freight`, `expenditure`.\n- **`methodology`** — the standard to calculate it with, e.g. `DEFRA`, `ICAO`,\n  `TIM`, `GREENVIEW`, `GLEC`.\n\nThose two decide which further fields the item takes, and which of them are\nrequired: `flight` + `ICAO` expects `origin` and `destination` (or `routing` for a\nmulti-leg itinerary), while `hotel` + `GREENVIEW` expects `country`, `city`, and\n`number_of_nights`. Not every methodology is available for every activity type.\n\nTwo fields are accepted on any item: `external_reference`, echoed back on the\nmatching response item so you can reconcile results with your own records, and\n`audit` for the immutable audit log of a final calculation.\n\nPick your activity type below to see the fields it accepts per methodology. For\ncopy-paste request and response pairs, see the\n[calculation examples](https://docs-integration.squake.earth/api-calculations-request-response)\nin the integration docs.\n",
                    "items": {
                      "$ref": "#/components/schemas/Calculation-Items"
                    }
                  }
                },
                "required": [
                  "items"
                ]
              },
              "examples": {
                "calculation-flight-defra": {
                  "summary": "Flight type with DEFRA methodology",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "flight",
                        "audit": false,
                        "methodology": "DEFRA",
                        "external_reference": "string",
                        "booking_class": "economy",
                        "number_of_travelers": 1,
                        "aircraft_type": "7M7",
                        "fare_class": "Y",
                        "origin": "BER",
                        "destination": "CDG",
                        "airline": "LH",
                        "radiative_forcing_index": true,
                        "sustainable_fuels": {
                          "carbon_reduction_percentage_of_total": 0.25
                        },
                        "energy_scope": "ttw"
                      }
                    ]
                  }
                },
                "calculation-flight-routing": {
                  "summary": "Flight with routing (multi-leg) and expanded legs",
                  "value": {
                    "expand": [
                      "items",
                      "legs"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "flight",
                        "methodology": "DEFRA",
                        "routing": "BER-FRA-JFK",
                        "booking_class": "economy",
                        "number_of_travelers": 1,
                        "radiative_forcing_index": true,
                        "external_reference": "multi_leg_example"
                      }
                    ]
                  }
                },
                "calculation-accommodation": {
                  "summary": "Accommodation type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "accommodation",
                        "audit": false,
                        "methodology": "SQUAKE",
                        "external_reference": "string",
                        "number_of_nights": 1,
                        "country": "DE",
                        "number_of_travelers": 1,
                        "square_meters": 50
                      }
                    ]
                  }
                },
                "calculation-air-freight": {
                  "summary": "Air Freight type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "air_freight",
                        "audit": false,
                        "methodology": "GLEC",
                        "external_reference": "string",
                        "number_of_travelers": 1,
                        "origin": "BER",
                        "destination": "CDG",
                        "weight_in_tonnes": 1
                      }
                    ]
                  }
                },
                "calculation-bus": {
                  "summary": "Bus type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "bus",
                        "audit": false,
                        "methodology": "SQUAKE",
                        "external_reference": "string",
                        "number_of_travelers": 1,
                        "origin": "BER",
                        "destination": "PAR",
                        "fuel_type": "diesel",
                        "operator_name": "hamburger_hochbahn"
                      }
                    ]
                  }
                },
                "calculation-car": {
                  "summary": "Car type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "car",
                        "audit": false,
                        "methodology": "ACRISS",
                        "external_reference": "string",
                        "number_of_travelers": 1,
                        "origin": "BER",
                        "destination": "CDG",
                        "distance_in_km": 878,
                        "fuel_type": "diesel",
                        "acriss_car_type": "C",
                        "sipp_car_type": "XCAR"
                      }
                    ]
                  }
                },
                "calculation-coffee-production": {
                  "summary": "Coffee Production type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "coffee_production",
                        "audit": false,
                        "methodology": "SQUAKE",
                        "external_reference": "string",
                        "country": "ET",
                        "organic": true,
                        "quantity": 6,
                        "unit": "tonne"
                      }
                    ]
                  }
                },
                "calculation-event": {
                  "summary": "Event type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "event",
                        "audit": false,
                        "methodology": "HCMI",
                        "methodology_version": "2024",
                        "external_reference": "string",
                        "number_of_days": 1,
                        "country": "DE",
                        "stars": 5,
                        "city": "Berlin",
                        "square_meters": 50,
                        "hotel_type": "hotel_average"
                      }
                    ]
                  }
                },
                "calculation-expenditure": {
                  "summary": "Expenditure type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "expenditure",
                        "audit": false,
                        "methodology": "OFNK",
                        "external_reference": "string",
                        "currency": "EUR",
                        "total": 500,
                        "country": "DE",
                        "category": "retail",
                        "merchant_category_code": 3000
                      }
                    ]
                  }
                },
                "calculation-ferry": {
                  "summary": "Ferry type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "ferry",
                        "audit": false,
                        "methodology": "ADEME",
                        "external_reference": "string",
                        "number_of_travelers": 1,
                        "origin": "BER",
                        "destination": "CDG",
                        "number_of_cars": 10,
                        "vesel_type": "day_ferry"
                      }
                    ]
                  }
                },
                "calculation-hotel": {
                  "summary": "Hotel type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "items": [
                      {
                        "type": "hotel",
                        "audit": false,
                        "methodology": "GREENVIEW",
                        "external_reference": "string",
                        "number_of_nights": 3,
                        "stars": 4,
                        "country": "DE",
                        "city": "Berlin"
                      }
                    ]
                  }
                },
                "calculation-hotel-nos-gestes-climat": {
                  "summary": "Hotel type with NOS-GESTES-CLIMAT methodology",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "items": [
                      {
                        "type": "hotel",
                        "audit": false,
                        "methodology": "NOS-GESTES-CLIMAT",
                        "external_reference": "hotel-ngc-1",
                        "number_of_nights": 2
                      }
                    ]
                  }
                },
                "calculation-inland-waterways": {
                  "summary": "Inland Waterways type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "inland_waterways",
                        "audit": false,
                        "methodology": "GLEC",
                        "external_reference": "string",
                        "origin": "BER",
                        "destination": "CDG",
                        "weight_in_tonnes": 3,
                        "vessel_type": "motor_vessels_under_50_m",
                        "energy_scope": "wtw"
                      }
                    ]
                  }
                },
                "calculation-logistics-hub": {
                  "summary": "Logistics Hub type (replaces the deprecated Logistics Site type)",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "logistics_hub",
                        "audit": false,
                        "methodology": "GLEC",
                        "external_reference": "string",
                        "weight_in_tonnes": 3,
                        "logistics_site_type": "warehouse",
                        "condition_type": "mixed"
                      }
                    ]
                  }
                },
                "calculation-logistics": {
                  "summary": "Logistics type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "logistics",
                        "audit": false,
                        "methodology": "SQUAKE",
                        "external_reference": "string",
                        "weight_in_kg": 2500,
                        "origin": "BER",
                        "destination": "PAR",
                        "shipping_method": "express"
                      }
                    ]
                  }
                },
                "calculation-private-jet": {
                  "summary": "Private Jet type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "private_jet",
                        "audit": false,
                        "methodology": "SQUAKE",
                        "external_reference": "string",
                        "origin": "BER",
                        "destination": "CDG",
                        "identifier": "P18",
                        "identifier_kind": "ICAO"
                      }
                    ]
                  }
                },
                "calculation-rail-freight": {
                  "summary": "Rail Freight type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "rail_freight",
                        "audit": false,
                        "methodology": "GLEC",
                        "external_reference": "string",
                        "origin": "BER",
                        "destination": "CDG",
                        "weight_in_tonnes": 2.5,
                        "fuel_type": "diesel",
                        "energy_scope": "wtw",
                        "load_characteristic": "average"
                      }
                    ]
                  }
                },
                "calculation-restaurant": {
                  "summary": "Restaurant type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "restaurant",
                        "audit": false,
                        "methodology": "BASE-EMPREINTE",
                        "external_reference": "string",
                        "number_of_travelers": 1,
                        "meal_type": "average"
                      }
                    ]
                  }
                },
                "calculation-road-freight": {
                  "summary": "Road Freight type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "road_freight",
                        "audit": false,
                        "methodology": "GLEC",
                        "external_reference": "string",
                        "weight_in_tonnes": 1,
                        "origin": "BER",
                        "destination": "CDG",
                        "truck_type": "van_under_3.5_t",
                        "energy_scope": "wtw"
                      }
                    ]
                  }
                },
                "calculation-sea-freight": {
                  "summary": "Sea Freight type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "sea_freight",
                        "audit": false,
                        "methodology": "GLEC",
                        "external_reference": "string",
                        "weight_in_tonnes": 1,
                        "origin": "BER",
                        "destination": "CDG",
                        "continer": false,
                        "vessel_type": "general_cargo_under_4999_dwt",
                        "energy_scope": "wtw",
                        "fuel_type": "hfo"
                      }
                    ]
                  }
                },
                "calculation-train": {
                  "summary": "Train type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "train",
                        "audit": false,
                        "methodology": "REM",
                        "external_reference": "string",
                        "number_of_travelers": 1,
                        "origin": "BER",
                        "destination": "CDG",
                        "fuel_type": "diesel",
                        "train_type": "high_speed",
                        "departure_date": "2025-06-15",
                        "origin_country": "DE",
                        "destination_country": "FR",
                        "energy_scope": "wtw"
                      }
                    ]
                  }
                },
                "calculation-van": {
                  "summary": "Van type",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "van",
                        "audit": false,
                        "methodology": "EU-EEA",
                        "external_reference": "string",
                        "weight_in_tonnes": 1,
                        "origin": "BER",
                        "destination": "CDG",
                        "manufacturer": "ford",
                        "model": "transit",
                        "fuel_type": "diesel",
                        "engine_size_in_cubic_cm": 2000
                      }
                    ]
                  }
                },
                "calculation-flight-with-audit": {
                  "summary": "Flight type with audit",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "audit_for": "d3427e0d-5a3c-40ce-842e-5552e77caa4f",
                    "items": [
                      {
                        "type": "flight",
                        "audit": true,
                        "methodology": "DEFRA",
                        "external_reference": "string",
                        "booking_class": "economy",
                        "number_of_travelers": 1,
                        "aircraft_type": "7M7",
                        "fare_class": "Y",
                        "origin": "BER",
                        "destination": "CDG",
                        "airline": "LH",
                        "radiative_forcing_index": true,
                        "sustainable_fuels": {
                          "carbon_reduction_percentage_of_total": 0.25
                        },
                        "energy_scope": "ttw"
                      }
                    ]
                  }
                },
                "calculation-flight-ademe": {
                  "summary": "Flight type with ADEME methodology",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "flight",
                        "audit": false,
                        "methodology": "ADEME",
                        "external_reference": "string",
                        "number_of_travelers": 1,
                        "aircraft_type": "7M7",
                        "aircraft_size": "under_50_seats",
                        "origin": "BER",
                        "destination": "CDG",
                        "airline": "LH"
                      }
                    ]
                  }
                },
                "calculation-flight-base-empreinte": {
                  "summary": "Flight type with BASE EMPREINTE methodology",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "flight",
                        "audit": false,
                        "methodology": "BASE-EMPREINTE",
                        "external_reference": "string",
                        "number_of_travelers": 1,
                        "aircraft_type": "7M7",
                        "aircraft_size": "under_50_seats",
                        "origin": "BER",
                        "destination": "CDG",
                        "radiative_forcing_index": true,
                        "sustainable_fuels": {
                          "carbon_reduction_percentage_of_total": 0.25
                        }
                      }
                    ]
                  }
                },
                "calculation-flight-co2-emissiefactoren-nl": {
                  "summary": "Flight type with CO2 Emissiefactoren NL methodology",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "flight",
                        "audit": false,
                        "methodology": "CO2-EMISSIEFACTOREN-NL",
                        "external_reference": "string",
                        "booking_class": "economy",
                        "number_of_travelers": 1,
                        "aircraft_type": "7M7",
                        "fare_class": "Y",
                        "origin": "BER",
                        "destination": "CDG",
                        "airline": "LH",
                        "radiative_forcing_index": true,
                        "sustainable_fuels": {
                          "carbon_reduction_percentage_of_total": 0.25
                        },
                        "energy_scope": "ttw"
                      }
                    ]
                  }
                },
                "calculation-flight-gate4": {
                  "summary": "Flight type with GATE4 methodology",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "flight",
                        "audit": false,
                        "methodology": "GATE4",
                        "external_reference": "string",
                        "booking_class": "economy",
                        "number_of_travelers": 1,
                        "fare_class": "Y",
                        "origin": "BER",
                        "destination": "CDG",
                        "airline": "LH",
                        "flight_number": "BA115",
                        "departure_date": "2023-10-01",
                        "sustainable_fuels": {
                          "carbon_reduction_percentage_of_total": 0.25
                        }
                      }
                    ]
                  }
                },
                "calculation-flight-icao": {
                  "summary": "Flight type with ICAO methodology",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "flight",
                        "audit": false,
                        "methodology": "ICAO",
                        "external_reference": "string",
                        "booking_class": "economy",
                        "number_of_travelers": 1,
                        "aircraft_type": "7M7",
                        "origin": "BER",
                        "destination": "CDG",
                        "fare_class": "Y",
                        "airline": "LH",
                        "sustainable_fuels": {
                          "carbon_reduction_percentage_of_total": 0.25
                        }
                      }
                    ]
                  }
                },
                "calculation-flight-tim": {
                  "summary": "Flight type with TIM methodology",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "flight",
                        "audit": false,
                        "methodology": "TIM",
                        "external_reference": "string",
                        "booking_class": "economy",
                        "number_of_travelers": 1,
                        "fare_class": "Y",
                        "origin": "BER",
                        "destination": "CDG",
                        "airline": "LH",
                        "flight_number": "LH180",
                        "departure_date": "2023-10-01",
                        "sustainable_fuels": {
                          "carbon_reduction_percentage_of_total": 0.25
                        }
                      }
                    ]
                  }
                },
                "calculation-flight-tu-chalmers": {
                  "summary": "Flight type with TU Chalmers methodology",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "flight",
                        "audit": false,
                        "methodology": "TU-CHALMERS",
                        "external_reference": "string",
                        "booking_class": "economy",
                        "number_of_travelers": 1,
                        "fare_class": "Y",
                        "origin": "BER",
                        "destination": "CDG",
                        "airline": "LH",
                        "plane_type": "scheduled",
                        "biosfuel": true,
                        "sustainable_fuels": {
                          "carbon_reduction_percentage_of_total": 0.25
                        }
                      }
                    ]
                  }
                },
                "calculation-flight-up-epa": {
                  "summary": "Flight type with US EPA methodology",
                  "value": {
                    "expand": [
                      "items"
                    ],
                    "carbon_unit": "tonne",
                    "distance_unit": "kilometer",
                    "items": [
                      {
                        "type": "flight",
                        "audit": false,
                        "methodology": "US-EPA",
                        "external_reference": "string",
                        "number_of_travelers": 1,
                        "origin": "BER",
                        "destination": "CDG",
                        "sustainable_fuels": {
                          "carbon_reduction_percentage_of_total": 0.25
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "carbon_quantity",
                    "carbon_unit"
                  ],
                  "properties": {
                    "carbon_quantity": {
                      "type": "number",
                      "examples": [
                        0.37
                      ]
                    },
                    "carbon_unit": {
                      "$ref": "#/components/schemas/carbon_unit"
                    },
                    "items": {
                      "type": "array",
                      "description": "Present when `expand` includes `items`. Per-item emissions; for routed flights,\ninclude `legs` in `expand` to also receive `routing` and per-leg rows on the item.\n",
                      "items": {
                        "type": "object",
                        "optional": [
                          "audit_id"
                        ],
                        "required": [
                          "carbon_quantity",
                          "carbon_unit",
                          "type",
                          "methodology"
                        ],
                        "properties": {
                          "carbon_quantity": {
                            "type": "number",
                            "examples": [
                              0.37
                            ]
                          },
                          "audit_id": {
                            "type": "string",
                            "description": "If the item was audited, this is the ID of the audit.\nThis is only present if the item was audited.\n"
                          },
                          "carbon_unit": {
                            "$ref": "#/components/schemas/carbon_unit"
                          },
                          "external_reference": {
                            "type": "string"
                          },
                          "type": {
                            "$ref": "#/components/schemas/Carbon-Activity-Type"
                          },
                          "methodology": {
                            "$ref": "#/components/schemas/Emissions-Calculation-Methodology"
                          },
                          "methodology_version": {
                            "type": "string",
                            "description": "The version of the methodology used for the calculation. Only present if the methodology is a versioned methodology.",
                            "examples": [
                              "2025",
                              "2024",
                              "2023",
                              "2022",
                              "2021",
                              "2020"
                            ]
                          },
                          "distance": {
                            "type": "number",
                            "description": "Total distance for the item when applicable (e.g. flight); for `routing`, equals the sum of leg distances."
                          },
                          "distance_unit": {
                            "$ref": "#/components/schemas/distance_unit"
                          },
                          "routing": {
                            "type": "string",
                            "description": "Echoes the submitted routing chain when the item used `routing` and `expand` includes `legs`.",
                            "examples": [
                              "BER-FRA-JFK"
                            ]
                          },
                          "legs": {
                            "type": "array",
                            "description": "Per-leg breakdown when the flight used `routing` and `expand` includes `legs`.",
                            "items": {
                              "$ref": "#/components/schemas/Calculation-Flight-Leg"
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "regular_calculation": {
                    "$ref": "#/components/examples/regular_calculation"
                  },
                  "calculation_with_audit": {
                    "$ref": "#/components/examples/calculation_with_audit"
                  }
                }
              }
            },
            "headers": {
              "SQUAKE-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/SQUAKE-Request-Id"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/pricing": {
      "get": {
        "tags": [
          "Pricing"
        ],
        "summary": "Quote a Pricing",
        "description": "Returns pricing for a given product and carbon quantity (or a fixed total amount in any supported currency).\n<br><br>\nBy default, requested pricing is valid for two weeks starting the moment you\nrequest it. Expired pricings can still be used as long as the underlying price\nhasn''t changed for your convenience.\n<br><br>\nRepeated purchases using the same pricing are possible via API and the checkout\npage using the pricing id or `payment_link`, respectively.\n<br><br>\nYou can append additional parameters to the `payment_link`; SQUAKE's checkout\npage supports the following:\n\n* **localization**: Please use a two-letter ISO 639-1 code, for example: `&locale=en`\nfor English.\n\n* **utm_***: any valid UTM tracking parameters, e.g., `&utm_medium=email`.\n<br><br>\n\nThis is a low-latency endpoint, useful for previewing pricing before making\na purchase either via API or on the SQUAKE checkout page via the returned\n`payment_link`.'\n",
        "operationId": "get-pricing",
        "parameters": [
          {
            "in": "query",
            "name": "filter",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "properties": {
                "product": {
                  "description": "The product_id to calculate pricing for.",
                  "type": "string"
                },
                "carbon_quantity": {
                  "description": "The quantity of carbon to base the pricing on.",
                  "type": "number"
                },
                "carbon_unit": {
                  "$ref": "#/components/schemas/carbon_unit"
                },
                "fixed_total": {
                  "description": "A fixed amount to compensate for emissions. The number refers to the lowest denomination of the chosen currency, for example sending 1234 EUR means 12.34 EUR.",
                  "type": "integer"
                },
                "currency": {
                  "$ref": "#/components/schemas/currency"
                },
                "expand[]": {
                  "description": "Include the price or product as objects in the response (ID if omitted).",
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "product",
                      "price"
                    ],
                    "examples": [
                      "product"
                    ]
                  }
                },
                "payment_link_return_url": {
                  "description": "If the customer does not exit the browser after the purchase, on success, SQUAKE will redirect the customer to this link. This is used when you want your customer to use the SQUAKE checkout page for the purchase.",
                  "type": "string"
                },
                "payment_method": {
                  "$ref": "#/components/schemas/payment_method"
                }
              },
              "oneOf": [
                {
                  "title": "Carbon Quantity and Unit",
                  "required": [
                    "carbon_quantity",
                    "carbon_unit"
                  ]
                },
                {
                  "title": "Fixed Total",
                  "required": [
                    "fixed_total"
                  ]
                }
              ]
            },
            "examples": {
              "pricing-carbon-quantity": {
                "summary": "Pricing with carbon quantity",
                "value": {
                  "expand[]": [
                    "price"
                  ],
                  "product": "product_123ab",
                  "carbon_quantity": 0.123,
                  "carbon_unit": "tonne"
                }
              },
              "pricing-fixed-price": {
                "summary": "Pricing with fixed price",
                "value": {
                  "expand[]": [
                    "price"
                  ],
                  "product": "product_123ab",
                  "fixed_total": 465,
                  "currency": "EUR"
                }
              },
              "pricing-with-stripe": {
                "summary": "Pricing with Stripe payment method",
                "value": {
                  "expand[]": [
                    "price"
                  ],
                  "product": "product_123ab",
                  "carbon_quantity": 0.123,
                  "carbon_unit": "tonne",
                  "payment_method": "stripe"
                }
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Pricing-Response-Params",
                  "description": "foobarbaz"
                }
              }
            },
            "headers": {
              "SQUAKE-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/SQUAKE-Request-Id"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/calculations-with-pricing": {
      "post": {
        "tags": [
          "Combined Calculation & Pricing"
        ],
        "summary": "Perform a Calculation including a Price Quote",
        "description": "Convenience all-in-one endpoint to perform carbon calculation\nand pricing. A purchase can be performed via API or SQUAKE's checkout page\nusing the returned `payment_link`.\n<br><br>\nAll features supported by either the `/calculations` or `/pricing` endpoint\nare equally valid for this combined endpoint. Please read the respective descriptions\nfor details.\n<br><br>\nIf you need only either pricing or carbon emissions, SQUAKE advises using\nthe specific endpoints for lower latency and reduced implementation complexity.'\n",
        "operationId": "post-calc-and-pricing",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "expand": {
                    "type": "array",
                    "description": "If you include `\"items\"`, SQUAKE returns emissions per item. Include `\"legs\"`\nfor per-leg flight rows when using `routing`. If you include `items.pricing`\na pricing token will be returned for each item.\n",
                    "items": {
                      "type": "string",
                      "enum": [
                        "items",
                        "legs",
                        "product",
                        "price",
                        "items.pricing"
                      ],
                      "examples": [
                        "items"
                      ]
                    }
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Calculation-Items"
                    }
                  },
                  "product": {
                    "type": "string",
                    "pattern": "product_[A-Za-z0-9]*",
                    "examples": [
                      "product_afg3465afg3"
                    ]
                  },
                  "payment_link_return_url": {
                    "type": "string",
                    "description": "If the customer does not exit the browser after the purchase, on success, SQUAKE will redirect the customer to this link."
                  },
                  "currency": {
                    "$ref": "#/components/schemas/currency"
                  },
                  "carbon_unit": {
                    "$ref": "#/components/schemas/carbon_unit"
                  },
                  "distance_unit": {
                    "$ref": "#/components/schemas/distance_unit"
                  },
                  "payment_method": {
                    "$ref": "#/components/schemas/payment_method"
                  }
                },
                "required": [
                  "items",
                  "product"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "A token encoding the pricing. Used to make a purchase."
                    },
                    "carbon_quantity": {
                      "type": "number"
                    },
                    "carbon_unit": {
                      "$ref": "#/components/schemas/carbon_unit"
                    },
                    "payment_link": {
                      "type": "string"
                    },
                    "price": {
                      "oneOf": [
                        {
                          "type": "string",
                          "description": "ID of a price.",
                          "pattern": "price_[A-Za-z0-9]*",
                          "examples": [
                            "price_1MMroL2eZvKYlo2CxbxAACvb"
                          ]
                        },
                        {
                          "$ref": "#/components/schemas/Price"
                        }
                      ]
                    },
                    "product": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "ID of a product.",
                          "pattern": "product_[A-Za-z0-9]*",
                          "examples": [
                            "product_01fa2d8f04e424"
                          ]
                        },
                        {
                          "$ref": "#/components/schemas/Product"
                        }
                      ]
                    },
                    "valid_until": {
                      "$ref": "#/components/schemas/iso_8601_date"
                    },
                    "currency": {
                      "$ref": "#/components/schemas/currency"
                    },
                    "total": {
                      "type": "integer",
                      "description": "The total amount in the lower denomination of the currency; e.g. 12.34 USD would be 1234."
                    },
                    "items": {
                      "type": "array",
                      "description": "Expand items to receive emissions per item. By default, this is not included.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "carbon_quantity": {
                            "type": "number"
                          },
                          "carbon_unit": {
                            "$ref": "#/components/schemas/carbon_unit"
                          },
                          "external_reference": {
                            "type": "string"
                          },
                          "type": {
                            "$ref": "#/components/schemas/Carbon-Activity-Type"
                          },
                          "methodology": {
                            "$ref": "#/components/schemas/Emissions-Calculation-Methodology"
                          },
                          "methodology_version": {
                            "type": "string",
                            "description": "The version of the methodology used for the calculation. Only present if the methodology is a versioned methodology.",
                            "examples": [
                              "2025",
                              "2024",
                              "2023",
                              "2022",
                              "2021",
                              "2020"
                            ]
                          },
                          "distance": {
                            "type": "number",
                            "description": "Total distance for the item when applicable; for `routing`, equals the sum of leg distances."
                          },
                          "distance_unit": {
                            "$ref": "#/components/schemas/distance_unit"
                          },
                          "routing": {
                            "type": "string",
                            "description": "Present when the flight used `routing` and `expand` includes `legs`."
                          },
                          "legs": {
                            "type": "array",
                            "description": "Per-leg breakdown when the flight used `routing` and `expand` includes `legs`.",
                            "items": {
                              "$ref": "#/components/schemas/Calculation-Flight-Leg"
                            }
                          },
                          "pricing": {
                            "type": "object",
                            "description": "Only included if `expand` includes `items.pricing`",
                            "properties": {
                              "id": {
                                "type": "string",
                                "description": "A token encoding the pricing. Used to make a purchase."
                              },
                              "total": {
                                "type": "string",
                                "description": "The total amount in the lower denomination of the currency; e.g. 12.34 USD would be 1234."
                              },
                              "currency": {
                                "$ref": "#/components/schemas/currency"
                              }
                            },
                            "required": [
                              "id",
                              "total",
                              "currency"
                            ]
                          }
                        },
                        "required": [
                          "carbon_quantity",
                          "carbon_unit",
                          "type",
                          "methodology"
                        ]
                      }
                    }
                  },
                  "required": [
                    "id",
                    "carbon_quantity",
                    "carbon_unit",
                    "price",
                    "product",
                    "valid_until",
                    "currency",
                    "total"
                  ]
                }
              }
            },
            "headers": {
              "SQUAKE-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/SQUAKE-Request-Id"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/carbon-comparison": {
      "post": {
        "tags": [
          "Carbon Comparison"
        ],
        "summary": "Compare Carbon Usage",
        "description": "This endpoint allows you to compare carbon quantities to more\nrecognizable items such as cars, light bulbs, or kettles.\n<br><br>\nOur list of metrics and comparison units are quite extensive so a list of\naccepted combinations has been compiled and is available [here](https://squake.notion.site/96b220031e8e4d64aec4f0e46a5bde97?v=8c67ffdcf91c4477acf0640688beea11&pvs=4)\n",
        "operationId": "post-v2-carbon-comparison",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "carbon_quantity": {
                    "type": "integer",
                    "minimum": 1,
                    "examples": [
                      2000
                    ]
                  },
                  "carbon_unit": {
                    "$ref": "#/components/schemas/carbon_unit"
                  },
                  "items": {
                    "type": "array",
                    "description": "You can define one or more metrics you want to compare your carbon quantity to.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "metric": {
                          "type": "string",
                          "examples": [
                            "annual_usage"
                          ]
                        },
                        "comparison_unit": {
                          "type": "string",
                          "description": "If you don't send a comparison unit then SQUAKE will find the best match for the amount of CO2 you send in the `carbon_quantity`",
                          "examples": [
                            "cars"
                          ]
                        }
                      },
                      "required": [
                        "metric"
                      ]
                    }
                  }
                },
                "required": [
                  "carbon_quantity",
                  "carbon_unit",
                  "items"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "carbon_quantity": {
                      "type": "integer",
                      "examples": [
                        5000
                      ]
                    },
                    "carbon_unit": {
                      "$ref": "#/components/schemas/carbon_unit"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "comparison_unit": {
                            "type": "string",
                            "description": "The unit used as the comparison, if you passed one in then it will be here. If you didn't send one then this will be the one SQUAKE selected",
                            "examples": [
                              "cars"
                            ]
                          },
                          "metric": {
                            "type": "string",
                            "examples": [
                              "annual_usage"
                            ]
                          },
                          "amount": {
                            "type": "number",
                            "description": "The amount based on the metric, for example if `metric` was `annual_usage` and `amount` was `0.5` then that would be half a year",
                            "format": "float"
                          }
                        },
                        "required": [
                          "comparison_unit",
                          "metric",
                          "amount"
                        ]
                      }
                    }
                  },
                  "required": [
                    "carbon_quantity",
                    "carbon_unit",
                    "items"
                  ]
                }
              }
            },
            "headers": {
              "SQUAKE-Request-Id": {
                "schema": {
                  "type": "string"
                },
                "description": "Unique identifier linked to this API request. If you need to contact us regarding a specific request, providing the request identifier helps the resolution process."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/purchases": {
      "post": {
        "tags": [
          "Purchases"
        ],
        "summary": "Create a Purchase",
        "description": "You can register a purchase programmatically to compensate for\ncarbon emissions on this endpoint. You must quote for pricing beforehand and\npass the returned pricing ID as a parameter.\n\nAlternatively, you can use the `payment_link` from the pricing endpoint to\nfinalize the purchase using SQUAKE's provided checkout page.\n\n### Lifecycle\n\n#### When purchasing via API (this endpoint)\n\n* **reserved**: A successful purchase starts in the state \"reserved\";  SQUAKE\nregistered your purchase and reserved carbon credits accordingly.\n\n* **canceled**: SQUAKE offers 14 days to cancel a purchase worry-free. This\nis a terminal state.\n\n* **confirmed**: The refundable period has passed. If you need to cancel the\npurchase beyond this point, please request a refund on the refunds endpoint.\n\n* **invoiced**: Without further action, a purchase is invoiced after the grace\nperiod and transitions to \"invoiced\".\n\n#### When purchasing via the checkout page\n\n* **payment_initiated**: the end customer entered the payment flow on the\ncheckout page\n\n* **payment_aborted**: the payment failed permanently, for example, because\nthe customer exited the page without finalizing the payment and didn''t return\nbefore the pricing''s validity ended. This is a terminal state.\n\n* **confirmed**: the payment provider informed SQUAKE about the successful\npayment. In this flow, this state exists only for a short time; the purchase\nimmediately continues to \"settled\".\n\n#### Both\n\n* **settled**: SQUAKE has received the payment.\n\n* **refunded**: a refund request was successfully processed. This is a terminal\nstate.\n\n* **certificates_confirmed**: all certificates for the carbon credits have\nbeen confirmed from all project partners related to the purchase.\n\n* **certificates_retired**: all certificates have been retired in the corresponding\nregistries. This is a terminal state.\n",
        "operationId": "post-purchases",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "pricing": {
                    "type": "string",
                    "description": "The ID from the pricing endpoint"
                  },
                  "confirmation_document": {
                    "$ref": "#/components/schemas/Confirmation-Document"
                  },
                  "certificate_document": {
                    "$ref": "#/components/schemas/Certificate-Document"
                  },
                  "expand": {
                    "type": "array",
                    "description": "Receive either the file-id, or the file-object of a requested document. If omitted, only IDs are returned.",
                    "items": {
                      "const": "files",
                      "examples": [
                        "files"
                      ]
                    }
                  },
                  "metadata": {
                    "$ref": "#/components/schemas/Metadata"
                  },
                  "external_reference": {
                    "type": "string",
                    "description": "If given, this reference must be unique. Suppose you need idempotency on the purchase endpoint: in that case, the external reference must be provided, meaning you can retry a purchase call with the same pricing id multiple times without registering multiple purchases, e.g., to recover from a network failure. Remember: with a valid pricing id, you can register as many purchases as you need. The reference should have enough entropy; a great choice is a V4 UUID."
                  }
                },
                "required": [
                  "pricing"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Purchase"
                }
              }
            },
            "headers": {
              "SQUAKE-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/SQUAKE-Request-Id"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/purchases/{id}": {
      "get": {
        "tags": [
          "Purchases"
        ],
        "summary": "Retrieve a Purchase",
        "description": "Retrieve a purchase placed earlier. Useful to check for its state.\nTo avoid short polling, you can register a webhook to stay informed about\nall your purchases automatically.\n\nYou can use the `external_reference` as ID as well for the lookup; i.e. your\nunique identifier.\n",
        "operationId": "get-purchases-id",
        "parameters": [
          {
            "name": "expand[]",
            "in": "query",
            "description": "Include e.g. \"files\" to retrieve files as a full object (defaults to just their IDs)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Purchase"
                }
              }
            },
            "headers": {
              "SQUAKE-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/SQUAKE-Request-Id"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      },
      "patch": {
        "tags": [
          "Purchases"
        ],
        "summary": "Update a Purchase",
        "description": "Update a purchase placed earlier.\n\nYou can use the `external_reference` as ID as well for the lookup; i.e. your\nunique identifier.\n\nOmitted keys will not affect any present data. To remove optional data you must explicitly set the value to `null`.\n",
        "operationId": "patch-purchases-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "confirmation_document": {
                    "$ref": "#/components/schemas/Confirmation-Document"
                  },
                  "certificate_document": {
                    "$ref": "#/components/schemas/Certificate-Document"
                  },
                  "expand": {
                    "type": "array",
                    "description": "Receive either the file-id, or the file-object of a requested document. If omitted, only IDs are returned.",
                    "items": {
                      "const": "files",
                      "examples": [
                        "files"
                      ]
                    }
                  },
                  "metadata": {
                    "$ref": "#/components/schemas/Metadata"
                  },
                  "external_reference": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Purchase"
                }
              }
            },
            "headers": {
              "SQUAKE-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/SQUAKE-Request-Id"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/purchases/{id}/cancel": {
      "post": {
        "tags": [
          "Purchases"
        ],
        "summary": "Cancel a Purchase",
        "description": "A purchase can be canceled as long as it is not confirmed; this\nis in the state `reserved`. After the cancelation period passes, the purchase\ntransitions to `confirmed`. Confirmed purchases go to the batch settlement.\n",
        "operationId": "post-purchases-id-cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Purchase"
                }
              }
            },
            "headers": {
              "SQUAKE-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/SQUAKE-Request-Id"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/products": {
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "Retrieve Products",
        "description": "A product is any purchasable compensation option SQUAKE offers.\nIn the simplest case, a product maps to a single climate project such as \"Sustainable\nBiofuel for Shipping\". Depending on client need, SQUAKE also offers bundles\nof multiple climate projects; these can be centered around specific goals,\ne.g.,\"carbon reduction\", \"location\", or what is desired to achieve a particular\nprice point or sustainability goal. Feel free to contact us for more information\nor custom products.\n",
        "operationId": "get-products",
        "parameters": [
          {
            "name": "locale",
            "in": "query",
            "description": "Descriptions of products can be localized.",
            "schema": {
              "$ref": "#/components/schemas/Locale"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "An optional parameter that enables pagination, by default the amount of items per page is 25",
            "schema": {
              "type": "number",
              "minimum": 1
            }
          },
          {
            "name": "items",
            "in": "query",
            "description": "An optional parameter that enables pagination, this controls the amount of items per page. Can be used separetly or in conjunction with `page`",
            "schema": {
              "type": "number",
              "minimum": 1,
              "maximum": 25,
              "examples": [
                5
              ]
            }
          },
          {
            "name": "category",
            "in": "query",
            "description": "Allows filtering of the categories of a product, filters by `code`",
            "schema": {
              "type": "string",
              "examples": [
                "Water"
              ]
            }
          },
          {
            "name": "class",
            "in": "query",
            "description": "Allows filtering of the classes of a product, filters by `code`",
            "schema": {
              "type": "string",
              "examples": [
                "Nature Based"
              ]
            }
          },
          {
            "name": "impact_type",
            "in": "query",
            "description": "Allows filtering of the impact types of a product, filters by `code`",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Product"
                  }
                }
              }
            },
            "headers": {
              "SQUAKE-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/SQUAKE-Request-Id"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/products/{id}": {
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "Retrieve a Product",
        "description": "Retrieve details about a specific product",
        "operationId": "get-products-id",
        "parameters": [
          {
            "name": "locale",
            "in": "query",
            "description": "Descriptions of products can be localized.",
            "schema": {
              "$ref": "#/components/schemas/Locale"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The product ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            },
            "headers": {
              "SQUAKE-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/SQUAKE-Request-Id"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/files/{id}": {
      "get": {
        "tags": [
          "Files"
        ],
        "summary": "Retrieve a File",
        "description": "Certain records may have files attached. For a purchase, you can\nrequest a compensation confirmation, for example. SQUAKE can send this via\nemail; you can have it returned from the purchase request immediately or fetch\nthe file from this endpoint later.\n\nSQUAKE advises fetching files async after the purchase to keep the latency\nof the purchase API call low. You will always receive the file ID from the\npurchase endpoint if files are, or will be, attached to the record.\n",
        "operationId": "get-files-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/File"
                }
              }
            },
            "headers": {
              "SQUAKE-Request-Id": {
                "schema": {
                  "$ref": "#/components/schemas/SQUAKE-Request-Id"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/healthz": {
      "get": {
        "tags": [
          "Health Check"
        ],
        "summary": "Healthz",
        "description": "Simple health check to verify SQUAKE's server can be reached.",
        "operationId": "get-v2-healthz",
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/livez": {
      "get": {
        "tags": [
          "Health Check"
        ],
        "summary": "Livez",
        "description": "Health check to verify SQUAKE's server can be reached; this additionally checks the most critical sub-dependencies, such as database systems.",
        "operationId": "get-v2-livez",
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/readyz": {
      "get": {
        "tags": [
          "Health Check"
        ],
        "summary": "Readyz",
        "description": "Extensive health check to verify SQUAKE's server can be reached;\nthis additionally checks all sub-dependencies, such as database systems, and\nalso considers the error rate of the most recent history. Meaning even if\nSQUAKE's servers are reachable, including their sub-systems, if other clients\nexperience excessively many errors, this endpoint returns an error.\n",
        "operationId": "get-v2-readyz",
        "responses": {
          "200": {
            "description": "OK"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/clients": {
      "get": {
        "tags": [
          "Clients"
        ],
        "summary": "List Clients",
        "description": "Returns the authenticated client together with all of its descendants. Only clients you can act\nfor are ever returned — never a parent, sibling, or unrelated client.\n\nResults are paginated with the standard `page` / `per_page` query parameters; pagination\nmetadata is returned in the response headers.\n\nRequires this feature to be enabled for your account (contact us); otherwise this endpoint responds with `404`.\n",
        "operationId": "get-v2-clients",
        "parameters": [
          {
            "name": "parent_id",
            "in": "query",
            "description": "Return only the direct children of this client (its UUID). Must be the authenticated client or one of its descendants, otherwise `client_not_found` is returned.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "external_reference",
            "in": "query",
            "description": "Return only the client with this exact `external_reference`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "Case-insensitive search across client name and `external_reference`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination (starts at 1).",
            "schema": {
              "type": "number",
              "minimum": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Number of clients per page. Falls back to the default when omitted or invalid.",
            "schema": {
              "type": "number",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Client"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      },
      "post": {
        "tags": [
          "Clients"
        ],
        "summary": "Create Child Client",
        "description": "Creates a new child client under the authenticated client (or under a visible descendant via\n`parent_id`). The child is created for travel-data ingestion only: it inherits address, tax,\ncurrency, and methodology defaults from its parent, but has no credentials, no billing or\npurchasing capability, and no product or project access.\n\nSubmit travel data for the new client by passing its `id` as the `client_id` on\n`POST /v2/travel-data`. The child is usable on the very next request after creation.\n\nSend `methodology_configuration` to configure the child's methodologies in the same request\ninstead of inheriting the parent's. Omit it and the child gets a copy of the parent's current\noptions — a copy, not a link: later changes on the parent never propagate to the child.\n\nOptions that cannot be read as a list at all are rejected with `invalid_methodology_options`\n(`400`); options that are readable but not allowed — an unknown `activity_type` or\n`methodology`, two defaults for one activity type, more than three per type — are rejected\nwith `invalid_methodology_options` (`422`). In both cases no client is created.\n\nRequires this feature to be enabled for your account (contact us); otherwise this endpoint responds with `404`.\n",
        "operationId": "post-v2-clients",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The child client's display name.",
                    "examples": [
                      "BMW Germany"
                    ]
                  },
                  "external_reference": {
                    "type": "string",
                    "description": "Your own reference for the client, unique among the children of the same parent. Generated from the name when omitted.",
                    "examples": [
                      "bmw-de"
                    ]
                  },
                  "parent_id": {
                    "type": "string",
                    "format": "uuid",
                    "description": "The parent to create the child under. Defaults to the authenticated client; must be the authenticated client or one of its descendants."
                  },
                  "metadata": {
                    "type": "object",
                    "description": "A set of key-value pairs of yours that helps you link this record in your system."
                  },
                  "methodology_configuration": {
                    "type": "object",
                    "description": "The methodologies the child calculates with. Omit the whole object to inherit a\ncopy of the parent's current options. When present it must carry\n`methodology_options`; an empty object is rejected with\n`invalid_methodology_options` (`400`).\n",
                    "required": [
                      "methodology_options"
                    ],
                    "properties": {
                      "methodology_options": {
                        "type": "array",
                        "description": "The full list of options to configure. Replaces the inherited defaults\noutright, so send every option the child should have — including an empty\narray to configure no methodology at all.\n",
                        "items": {
                          "$ref": "#/components/schemas/Client-Methodology-Option"
                        }
                      }
                    },
                    "examples": [
                      {
                        "methodology_options": [
                          {
                            "activity_type": "flight",
                            "methodology": "TIM",
                            "version": "AT_TIME_OF_TRAVEL",
                            "default": true
                          },
                          {
                            "activity_type": "hotel",
                            "methodology": "HCMI",
                            "version": "AT_TIME_OF_TRAVEL",
                            "default": true
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Client"
                }
              }
            }
          },
          "400": {
            "description": "The `parent_id` is not the authenticated client or one of its descendants\n(`invalid_parent_client`), or `methodology_options` could not be read as a list of\noptions at all — it is not an array, or an entry is not an object carrying a boolean\n`default` (`invalid_methodology_options`). Nothing is created.\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errors": {
                      "$ref": "#/components/schemas/API-Error"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/clients/me": {
      "get": {
        "tags": [
          "Clients"
        ],
        "summary": "Retrieve the Authenticated Client",
        "description": "Returns the public representation of the authenticated client. Use it to discover your own\nclient `id` before creating children or submitting travel data on behalf of a descendant.\n\nRequires this feature to be enabled for your account (contact us); otherwise this endpoint responds with `404`.\n",
        "operationId": "get-v2-clients-me",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Client"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/clients/{id}": {
      "get": {
        "tags": [
          "Clients"
        ],
        "summary": "Retrieve a Client",
        "description": "Returns a single visible client by `id` (the authenticated client or one of its descendants).\nClients outside your hierarchy are indistinguishable from missing ones: both return\n`client_not_found` (`404`).\n\nRequires this feature to be enabled for your account (contact us); otherwise this endpoint responds with `404`.\n",
        "operationId": "get-v2-clients-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Client"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      },
      "patch": {
        "tags": [
          "Clients"
        ],
        "summary": "Update a Client",
        "description": "Updates the editable fields of a visible client: `name`, `external_reference`, `metadata`, and\n`methodology_configuration`. Only the fields you send are changed; the others keep their\ncurrent values.\n\nSending `methodology_configuration` replaces the client's methodology options in full — send\nevery option the client should keep, not just the ones that change. When the resulting list\ndiffers from the current one, the activities already stored for this client are recalculated\nwith the new methodologies in the background; the response returns as soon as the\nconfiguration is written.\n\nThe whole update is atomic: options that cannot be read as a list are rejected with\n`invalid_methodology_options` (`400`), and readable but disallowed options — an unknown\n`activity_type` or `methodology`, two defaults for one activity type, more than three per\ntype — with `invalid_methodology_options` (`422`). Either way nothing is written, including\nthe other fields sent in the same request.\n\nRe-parenting is not supported. A `parent_id` that would move the client — including `null`,\nwhich reads as a request to make it a root — is rejected with `parent_id_immutable` (`400`)\nand nothing is written. Sending the client's current `parent_id` is accepted and ignored, so\nyou can read a client, change a field, and send the whole object back unchanged in shape.\n\nRequires this feature to be enabled for your account (contact us); otherwise this endpoint responds with `404`.\n",
        "operationId": "patch-v2-clients-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "examples": [
                      "BMW Germany GmbH"
                    ]
                  },
                  "external_reference": {
                    "type": "string",
                    "examples": [
                      "bmw-de"
                    ]
                  },
                  "metadata": {
                    "type": "object",
                    "description": "A set of key-value pairs of yours that helps you link this record in your system."
                  },
                  "methodology_configuration": {
                    "type": "object",
                    "description": "The methodologies the client calculates with. Omit the whole object to leave the\ncurrent configuration untouched. When present it must carry\n`methodology_options`; an empty object is rejected with\n`invalid_methodology_options` (`400`).\n",
                    "required": [
                      "methodology_options"
                    ],
                    "properties": {
                      "methodology_options": {
                        "type": "array",
                        "description": "The full list of options to store. Replaces the client's current options\noutright — an empty array clears them.\n",
                        "items": {
                          "$ref": "#/components/schemas/Client-Methodology-Option"
                        }
                      }
                    },
                    "examples": [
                      {
                        "methodology_options": [
                          {
                            "activity_type": "flight",
                            "methodology": "DEFRA",
                            "version": "AT_TIME_OF_TRAVEL",
                            "default": true
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Client"
                }
              }
            }
          },
          "400": {
            "description": "The `parent_id` sent would re-parent the client, which is not supported\n(`parent_id_immutable`), or `methodology_options` could not be read as a list of options\nat all (`invalid_methodology_options`). Nothing is written.\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errors": {
                      "$ref": "#/components/schemas/API-Error"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      },
      "delete": {
        "tags": [
          "Clients"
        ],
        "summary": "Delete a Client",
        "description": "Soft-deletes a descendant client and removes it from the client hierarchy. Only leaf clients\ncan be deleted. If the client still has children, this endpoint returns `client_has_children`\n(`422`); delete its descendants first, from the bottom of the hierarchy upwards.\n\nThe authenticated client cannot delete itself. The authenticated client, an unknown or already\ndeleted client, and a client outside your hierarchy all return `client_not_found` (`404`).\n\nRequires this feature to be enabled for your account (contact us); otherwise this endpoint responds with `404`.\n",
        "operationId": "delete-v2-clients-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "description": "The client still has child clients (`client_has_children`).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errors": {
                      "$ref": "#/components/schemas/API-Error"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/invitations": {
      "post": {
        "tags": [
          "Invitations"
        ],
        "summary": "Invite a User",
        "description": "Invites a user to one of the authenticated client's sub-clients. The user is created if they don't already exist, or reused if the \nemail address already belongs to a user of that sub-client. An invitation email is then queued.\n\nThis endpoint only supports sub-clients: `client_id` must refer to a sub-client of the authenticated client. You can't invite users \nto the authenticated client itself. Omitting `client_id` also targets the authenticated client (as it does elsewhere in v2), so both \ncases return `client_not_invitable` (`403`). To manage users in your own organization, use the SQUAKE Dashboard.\n\nRe-inviting the same email address for the same sub-client is safe. The existing invitation is returned with an updated `sent_at`, \nand the email is sent again. The acceptance URL stays the same, so any previously sent invitation link will continue to work. If\n`locale` is omitted when re-inviting a user, the locale from the previous invitation is preserved.\n",
        "operationId": "post-v2-invitations",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "client_id",
                  "user_email",
                  "role"
                ],
                "properties": {
                  "client_id": {
                    "type": "string",
                    "format": "uuid",
                    "description": "The sub-client to invite the user into. Must be a descendant of the authenticated client; the authenticated client itself is refused.",
                    "examples": [
                      "4fb3ec7a-92cb-471f-b75f-c3fe7c2a34d5"
                    ]
                  },
                  "user_email": {
                    "type": "string",
                    "format": "email",
                    "description": "The invitee's email address",
                    "examples": [
                      "ada.lovelace@example.com"
                    ]
                  },
                  "role": {
                    "type": "string",
                    "description": "The role the invited user will hold in the sub-client (for example `admin` or `user`)\n",
                    "examples": [
                      "admin"
                    ]
                  },
                  "first_name": {
                    "type": "string",
                    "description": "The invitee's first name. Optional; kept as-is on resend when omitted.",
                    "examples": [
                      "Ada"
                    ]
                  },
                  "last_name": {
                    "type": "string",
                    "description": "The invitee's last name. Optional; kept as-is on resend when omitted.",
                    "examples": [
                      "Lovelace"
                    ]
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "en",
                      "de",
                      "fr"
                    ],
                    "description": "The language used for the invitation email and acceptance page. Optional;\ndefaults to `en` for a new invitation and is kept as-is on resend when omitted.\n",
                    "examples": [
                      "de"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invitation"
                }
              }
            }
          },
          "400": {
            "description": "The request contains an invalid value:\n- `invalid_role` — `role` is missing, unknown, or not one of the client-level roles.\n- `invalid_locale` — `locale` is not one of `en`, `de`, or `fr`.\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errors": {
                      "$ref": "#/components/schemas/API-Error"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "description": "The `client_id` names the authenticated client (or was omitted); invitations may only be\nissued into sub-clients (`client_not_invitable`).\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errors": {
                      "$ref": "#/components/schemas/API-Error"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "description": "The invitation cannot be issued:\n- `email_not_available` — the address already belongs to a user outside the sub-client\n  being invited into.\n- `invitation_already_accepted` — the user of that address in the sub-client has\n  already accepted an invitation and cannot be invited again.\n",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errors": {
                      "$ref": "#/components/schemas/API-Error"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/invitations/{id}": {
      "get": {
        "tags": [
          "Invitations"
        ],
        "summary": "Retrieve an Invitation",
        "description": "Returns an invitation by id. You can read invitations belonging to the authenticated client or any of its descendants. \nInvitations outside your hierarchy are treated the same as invitations that don’t exist, so both return not_found (404).\n\nUse this to check whether an invitation has been accepted (accepted_at) or to retrieve its acceptance URL again.\n",
        "operationId": "get-v2-invitations-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invitation"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/travel-data": {
      "post": {
        "tags": [
          "Travel Data"
        ],
        "summary": "Create Travel Data Items",
        "description": "Accepts trip records with nested activities for travel data ingestion.\n\n**Request size limit:** A single request may contain a maximum of **50 activities** in total across all trips.\nFor larger data sets, split your payload into batches of up to 50 activities and send each batch as a separate request.\nRequests exceeding this limit are rejected with a `400` error before any data is persisted.\n\nIf an activity omits `methodology`, SQUAKE selects the client's configured default methodology for that activity type.\nPass `methodology` only when you want to override that default for a specific activity.\n**Supported activity types:** `car`, `flight`, `hotel`, and `train`.\n\n**Monetary values:** Both trips and individual activities accept `amount_in_cents` and `currency`.\nUse activity-level values to attribute spend to a specific leg; they take precedence over trip-level values\nin activity-based reporting. When `currency` is present, `amount_in_cents` must be a positive integer.\nThe API does not accept `amount_base_currency`.\n\n**Reading the data back:** alongside the flat `items` array, the response returns a `trips`\narray with the ID of every trip this request persisted and the IDs of the activities written\nunder it. Store those IDs to read, or delete, the stored records later via\n[`/v2/travel-data/trips`](https://docs-v2.squake.earth/docs/openapi/travel-data/get-v2-travel-data-trips)\n— or address a trip by your own `trip_reference` instead. A `trips` entry reports the trip's\nidentity only; a trip read returns those same fields plus the trip as you described it (name,\npurpose, status, dates, booking provider, amount, cost center).\n\n**On behalf of another client:** pass an optional root-level `client_id` (a client `id` as\nreturned by [`/v2/clients`](https://docs-v2.squake.earth/docs/openapi/clients/get-v2-clients))\nto store this travel data under a descendant client. Submitting data for another client must be\nenabled for your account (contact us); omitting `client_id` preserves the existing behavior of\ningesting for the authenticated client. Note that CSV imports (`/v2/travel-data/imports`) do not\naccept `client_id`.\n\n**Flight routing:** `flight` activities accept the same methodology-specific fields as the corresponding\n`/v2/calculations` flight schemas, including `routing` for multi-leg itineraries (a hyphen-separated airport chain,\ne.g. `BER-FRA-JFK`) as an alternative to `origin`/`destination`. Exactly one of `routing` or the `origin`/`destination`\npair must be provided; `routing` only applies to `flight` activities.\n",
        "operationId": "post-v2-travel-data",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "client_id": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Optional. Submit this travel data on behalf of a descendant client — pass the\ntarget client's `id` (a UUID as returned by `/v2/clients`). Omit it to ingest for\nthe authenticated client (the default, unchanged behavior). Providing `client_id`\nrequires this capability to be enabled for your account (contact us); an id outside\nyour hierarchy returns `client_not_found` (`404`) and nothing is persisted. All trips\nin one request are owned by the same target client.\n"
                  },
                  "trips": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Travel-Data-Trip"
                    }
                  }
                }
              },
              "examples": {
                "example_1": {
                  "summary": "Basic trip with one car activity",
                  "value": {
                    "trips": [
                      {
                        "amount_in_cents": 10000,
                        "currency": "USD",
                        "trip_name": "Business Trip to NYC",
                        "trip_purpose": "Client Meeting",
                        "trip_reference": "BT-2023-001",
                        "trip_status": "completed",
                        "start_date_utc": "2023-10-01",
                        "end_date_utc": "2023-10-05",
                        "booking_provider": "Test Provider",
                        "activities": [
                          {
                            "type": "car",
                            "amount_in_cents": 2500,
                            "currency": "EUR",
                            "origin": "BER",
                            "destination": "MUC",
                            "fuel_type": "diesel",
                            "traveler": {
                              "name": "Mustermann",
                              "email": "test@company.io",
                              "traveler_type": "employee"
                            }
                          }
                        ],
                        "cost_center": {
                          "name": "Marketing",
                          "purpose": "Marketing Campaign",
                          "email": "cc@company.io"
                        }
                      }
                    ]
                  }
                },
                "basic_flight": {
                  "summary": "Flight activity without routing (origin/destination)",
                  "value": {
                    "trips": [
                      {
                        "trip_reference": "BT-2026-001",
                        "start_date_utc": "2026-06-15",
                        "trip_status": "completed",
                        "activities": [
                          {
                            "type": "flight",
                            "methodology": "DEFRA",
                            "origin": "BER",
                            "destination": "JFK",
                            "number_of_travelers": 1,
                            "aircraft_type": "7M7",
                            "fare_class": "Y",
                            "airline": "LH",
                            "radiative_forcing_index": true,
                            "external_reference": "flight-basic-001",
                            "traveler": {
                              "name": "Jane Doe",
                              "email": "jane.doe@example.com",
                              "traveler_type": "employee"
                            }
                          }
                        ]
                      }
                    ]
                  }
                },
                "flight_with_routing": {
                  "summary": "Flight activity using multi-leg routing instead of origin/destination",
                  "value": {
                    "trips": [
                      {
                        "trip_reference": "BT-2026-002",
                        "start_date_utc": "2026-06-15",
                        "trip_status": "completed",
                        "activities": [
                          {
                            "type": "flight",
                            "methodology": "DEFRA",
                            "routing": "BER-FRA-JFK",
                            "booking_class": "economy",
                            "number_of_travelers": 1,
                            "radiative_forcing_index": true,
                            "external_reference": "flight-routing-001"
                          }
                        ]
                      }
                    ]
                  }
                },
                "multi_activity_trip": {
                  "summary": "Single trip combining flight, hotel, and car activities",
                  "value": {
                    "trips": [
                      {
                        "trip_reference": "BT-2026-003",
                        "trip_name": "Business Trip to New York",
                        "trip_purpose": "Client Meeting",
                        "start_date_utc": "2026-06-15",
                        "end_date_utc": "2026-06-19",
                        "trip_status": "completed",
                        "cost_center": {
                          "name": "Sales",
                          "email": "cc-sales@example.com"
                        },
                        "activities": [
                          {
                            "type": "flight",
                            "methodology": "DEFRA",
                            "routing": "BER-FRA-JFK",
                            "booking_class": "economy",
                            "number_of_travelers": 1,
                            "radiative_forcing_index": true,
                            "external_reference": "trip-003-flight-outbound",
                            "traveler": {
                              "name": "Jane Doe",
                              "traveler_type": "employee"
                            }
                          },
                          {
                            "type": "hotel",
                            "methodology": "GREENVIEW",
                            "number_of_nights": 3,
                            "country": "US",
                            "city": "New York",
                            "external_reference": "trip-003-hotel",
                            "traveler": {
                              "name": "Jane Doe"
                            }
                          },
                          {
                            "type": "car",
                            "methodology": "ACRISS",
                            "usage_type": "rental",
                            "provider_company": "Hertz",
                            "origin": "JFK",
                            "destination": "JFK",
                            "fuel_type": "petrol",
                            "acriss_car_type": "E",
                            "external_reference": "trip-003-car",
                            "traveler": {
                              "name": "Jane Doe"
                            }
                          }
                        ]
                      }
                    ]
                  }
                },
                "hotel_and_train": {
                  "summary": "Trip combining a hotel stay and a train journey",
                  "value": {
                    "trips": [
                      {
                        "trip_reference": "BT-2026-004",
                        "start_date_utc": "2026-06-15",
                        "end_date_utc": "2026-06-16",
                        "trip_status": "completed",
                        "activities": [
                          {
                            "type": "hotel",
                            "methodology": "GREENVIEW",
                            "number_of_nights": 1,
                            "country": "FR",
                            "city": "Paris",
                            "external_reference": "trip-004-hotel"
                          },
                          {
                            "type": "train",
                            "methodology": "REM",
                            "number_of_travelers": 1,
                            "origin": "BER",
                            "destination": "CDG",
                            "fuel_type": "diesel",
                            "train_type": "high_speed",
                            "departure_date": "2026-06-15",
                            "origin_country": "DE",
                            "destination_country": "FR",
                            "energy_scope": "wtw",
                            "external_reference": "trip-004-train"
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Travel-Data-Items-Response"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/travel-data/trips": {
      "get": {
        "tags": [
          "Travel Data"
        ],
        "summary": "List Travel Data Trips",
        "description": "Returns the trips stored for the authenticated client, most recently ingested first. Trips\nfrom every source are listed — API submissions, CSV imports and TMC integrations alike.\n\nEach trip is returned in full: the identity fields a submission echoes back (`id`,\n`trip_reference`, `client_id`, `submitted_by_client_id`, `activity_ids`) plus the trip as you\ndescribed it on ingestion — `trip_name`, `trip_purpose`, `trip_status`, `start_date_utc`,\n`end_date_utc`, `booking_provider`, `amount_in_cents`, `currency` and the nested `cost_center`.\n\nWhat a trip does *not* carry is its activities: only their IDs. Read an activity, its\ntraveler, its calculations and its audit references from\n[`/v2/travel-data/trips/{trip_id}/activities`](https://docs-v2.squake.earth/docs/openapi/travel-data/get-v2-travel-data-trips-trip-id-activities).\n\n**Pagination:** results are paginated with the `page` and `items` query parameters, and the\npagination metadata is returned in the response headers (`Current-Page`, `Page-Items`,\n`Total-Pages`, `Total-Count`, and an RFC 8288 `Link` header).\n\n**Multi-client:** if submitting on behalf of other clients is enabled for your account, this\nlists the trips of the authenticated client and all of its descendants. Otherwise only your\nown trips are returned — never a parent's, a sibling's, or an unrelated client's. A client\nwith no stored trips gets an empty array.\n",
        "operationId": "get-v2-travel-data-trips",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination (starts at 1).",
            "schema": {
              "type": "number",
              "minimum": 1
            }
          },
          {
            "name": "items",
            "in": "query",
            "description": "Number of trips per page. Defaults to 20, capped at 100.",
            "schema": {
              "type": "number",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Travel-Data-Stored-Trip"
                  }
                }
              }
            },
            "headers": {
              "Current-Page": {
                "description": "The page returned.",
                "schema": {
                  "type": "string"
                }
              },
              "Page-Items": {
                "description": "Number of trips per page.",
                "schema": {
                  "type": "string"
                }
              },
              "Total-Pages": {
                "description": "Total number of pages available.",
                "schema": {
                  "type": "string"
                }
              },
              "Total-Count": {
                "description": "Total number of trips available.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "RFC 8288 links to the `first`, `prev`, `next` and `last` page.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/travel-data/trips/{id}": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "required": true,
          "description": "The trip's `id` (UUID) or your own `trip_reference` — either identifies the trip.\n",
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "tags": [
          "Travel Data"
        ],
        "summary": "Retrieve a Travel Data Trip",
        "description": "Returns a single stored trip, addressed either by its SQUAKE `id` or by your own\n`trip_reference`. The response is the same shape the trip list returns: the identity fields a\nsubmission echoes back plus the trip as you described it on ingestion — name, purpose, status,\ndates, booking provider, amount and the nested `cost_center`.\n\nThe trip carries the IDs of its activities, not the activities themselves — read those from\n[`/v2/travel-data/trips/{trip_id}/activities`](https://docs-v2.squake.earth/docs/openapi/travel-data/get-v2-travel-data-trips-trip-id-activities).\n\nA trip you cannot access is indistinguishable from one that does not exist: both respond with\n`404` and error code `travel_data_not_found`.\n",
        "operationId": "get-v2-travel-data-trips-id",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Travel-Data-Stored-Trip"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      },
      "delete": {
        "tags": [
          "Travel Data"
        ],
        "summary": "Delete a Travel Data Trip",
        "description": "Deletes a trip and everything hanging off it: all of its activities — routing legs\nincluded — and their calculations. Responds with `204` and an empty body.\n\n**Audit logs are kept.** They are an immutable record of what was calculated, so deleting a\ntrip does not remove the audit logs its calculations produced.\n\n**Reporting lags a delete.** Dashboards and reporting views are refreshed periodically, so a\ndeleted trip can still appear in them until the next refresh.\n\nThis cannot be undone — re-submit the trip to `POST /v2/travel-data` to restore it, which\nrecalculates its emissions and creates new IDs.\n\nA trip you cannot access responds with `404` and error code `travel_data_not_found`, and\nnothing is deleted.\n",
        "operationId": "delete-v2-travel-data-trips-id",
        "responses": {
          "204": {
            "description": "No Content — the trip and its activities were deleted."
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/travel-data/trips/{trip_id}/activities": {
      "get": {
        "tags": [
          "Travel Data"
        ],
        "summary": "List the Activities of a Travel Data Trip",
        "description": "Returns every activity of a trip, in ingestion order, each with its traveler and the\ncalculations persisted for it. A trip is a single booking, so the list is bounded and returned\nin full — it is not paginated.\n\nThis is where additional methodologies become visible: the `items` array of\n`POST /v2/travel-data` only reports the primary methodology of each activity, while an\nactivity here carries one calculation per methodology configured for its type.\n\n**The key set varies by activity `type`.** `origin` and `destination` are returned for\n`flight`, `car` and `train` but not for `hotel`; `fuel_type` only for `car` and `train`. A key\nthe type cannot have is omitted rather than returned as `null`, so read `type` first.\n`traveler` is always present, and is `null` for an activity submitted without one.\n\nIndividual legs of a `routing` flight are not listed — the routed activity carries the\nitinerary total.\n\nA trip you cannot access responds with `404` and error code `travel_data_not_found`.\n",
        "operationId": "get-v2-travel-data-trips-trip-id-activities",
        "parameters": [
          {
            "name": "trip_id",
            "in": "path",
            "required": true,
            "description": "The trip's `id` (UUID) or your own `trip_reference`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Travel-Data-Stored-Activity"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/travel-data/trips/{trip_id}/activities/{activity_id}": {
      "get": {
        "tags": [
          "Travel Data"
        ],
        "summary": "Retrieve an Activity of a Travel Data Trip",
        "description": "Returns a single activity of a trip with its traveler and the calculations persisted for it.\nActivities are always addressed through their trip.\n\nAs in the list, the key set depends on the activity `type`: `origin`/`destination` are absent\nfor a `hotel` stay, and `fuel_type` is only returned for `car` and `train`.\n\nAn activity of another trip, a routing leg, and an ID that does not exist all respond with\n`404` and error code `travel_data_not_found`.\n",
        "operationId": "get-v2-travel-data-trips-trip-id-activities-activity-id",
        "parameters": [
          {
            "name": "trip_id",
            "in": "path",
            "required": true,
            "description": "The trip's `id` (UUID) or your own `trip_reference`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "activity_id",
            "in": "path",
            "required": true,
            "description": "The activity's `id` (UUID), as listed in the trip's `activity_ids`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Travel-Data-Stored-Activity"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/webhooks": {
      "get": {
        "summary": "Retrieve Registered Webhooks",
        "description": "Webhooks are HTTP callbacks that notify your application when\nevents happen in SQUAKE's system.\n\nInstead of continuously polling our API, webhooks push data to your endpoint when events occur.\n\nThis endpoint returns the list of currently registered webhooks.\nSee the Integration Documentation for more information.\n",
        "operationId": "get-v2-webhooks",
        "tags": [
          "Webhooks"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Webhook"
                  }
                }
              }
            }
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      },
      "post": {
        "summary": "Register New Webhook",
        "description": "This endpoint allows you to register a new Webhook to subscribe to certain kind of events being triggered by Squake\n<br><br>\n**Important:** This endpoint returns a newly created webhook upon a successful request.\n<br>\nThe webhook includes a `signing_key` used to verify the authenticity of future webhook messages.\nPlease ensure you save this `signing_key`, as it cannot be retrieved later.\n",
        "operationId": "post-v2-webhooks",
        "tags": [
          "Webhooks"
        ],
        "requestBody": {
          "description": "This endpoint accepts JSON object with two fields:\n\n- `kind`\n- `endpoint_url`\n\n\nRight now we're supporting next types:\n\n- `order` - we'll send you an event when purchase which was made via stripe\nchanges status\n- `confirmation_document_available` - we'll send a document when it's\ngenerated\n- `certificate_document_available` - we'll send a document when it's generated\n\nThe `endpoint_url` value should be a valid URL that accepts `POST` requests.\n",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "order",
                      "confirmation_document_available",
                      "certificate_document_available"
                    ]
                  },
                  "endpoint_url": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookWithSigningKey"
                }
              }
            }
          },
          "422": {
            "$ref": "#/components/responses/422"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/webhooks/{id}": {
      "get": {
        "summary": "Retrieve Webhook Information",
        "description": "This endpoint allows you to retrieve an information about a specific Webhook",
        "operationId": "get-v2-webhooks-id",
        "tags": [
          "Webhooks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      },
      "put": {
        "summary": "Update Webhook",
        "description": "This endpoint allows you to update a previously registered webhook.\n\nIt accepts the same parameters as the Register New Webhook endpoint and\nresponds with an updated Webhook entity\n",
        "operationId": "put-v2-webhooks-id",
        "tags": [
          "Webhooks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "order",
                      "confirmation_document_available",
                      "certificate_document_available"
                    ]
                  },
                  "endpoint_url": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Webhook"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "422": {
            "$ref": "#/components/responses/422"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      },
      "delete": {
        "summary": "Delete Webhook",
        "description": "This endpoint allows you to delete previously registered webhook",
        "operationId": "delete-v2-webhooks-id",
        "tags": [
          "Webhooks"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/audits": {
      "get": {
        "summary": "Retrieve the list of Audit logs",
        "description": "Retrieve the list of audit logs for the authenticated client\n",
        "operationId": "get-v2-audits",
        "tags": [
          "Audits"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Audit"
                  }
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/403"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/audits/{id}": {
      "get": {
        "summary": "Retrieve a specific Audit log",
        "description": "Retrieves detailed information about a specific Audit log\n",
        "operationId": "get-v2-audits-id",
        "tags": [
          "Audits"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Audit"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/audits/entities": {
      "get": {
        "summary": "Retrieve the list of Auditable entities",
        "description": "Retrieve the list of Auditable entities, which can be used for auditing\n",
        "operationId": "get-v2-audits-entities",
        "tags": [
          "Audits"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AuditableEntity"
                  }
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/403"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      },
      "post": {
        "summary": "Create a new Auditable entity",
        "description": "Create a new Auditable entity, which can be used for auditing\n",
        "operationId": "post-v2-audits-entities",
        "tags": [
          "Audits"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuditableEntityRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AuditableEntity"
                  }
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/403"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    },
    "/v2/audits/entities/{id}": {
      "get": {
        "summary": "Retrieve a specific Auditable entity",
        "description": "Retrieve a specific Auditable entity\n",
        "operationId": "get-v2-audits-entities-id",
        "tags": [
          "Audits"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditableEntity"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/403"
          }
        },
        "security": [
          {},
          {
            "Bearer-Auth": []
          }
        ],
        "servers": [
          {
            "url": "https://api.squake.earth",
            "description": "Production"
          },
          {
            "url": "https://api.sandbox.squake.earth",
            "description": "Sandbox"
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "HTTP-Basic-Auth": {
        "type": "http",
        "scheme": "basic"
      },
      "Bearer-Auth": {
        "type": "http",
        "scheme": "bearer"
      }
    },
    "responses": {
      "400": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "$ref": "#/components/schemas/API-Error"
                }
              }
            }
          }
        },
        "headers": {
          "SQUAKE-Request-Id": {
            "schema": {
              "$ref": "#/components/schemas/SQUAKE-Request-Id"
            }
          }
        }
      },
      "401": {
        "description": "Unauthorized",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "$ref": "#/components/schemas/API-Error"
                }
              }
            }
          }
        },
        "headers": {
          "SQUAKE-Request-Id": {
            "schema": {
              "$ref": "#/components/schemas/SQUAKE-Request-Id"
            }
          }
        }
      },
      "403": {
        "description": "Forbidden",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "$ref": "#/components/schemas/API-Error"
                }
              }
            }
          }
        },
        "headers": {
          "SQUAKE-Request-Id": {
            "schema": {
              "$ref": "#/components/schemas/SQUAKE-Request-Id"
            }
          }
        }
      },
      "404": {
        "description": "Not Found",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "$ref": "#/components/schemas/API-Error"
                }
              }
            }
          }
        },
        "headers": {
          "SQUAKE-Request-Id": {
            "schema": {
              "$ref": "#/components/schemas/SQUAKE-Request-Id"
            }
          }
        }
      },
      "422": {
        "description": "Unprocessable Entity",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errors": {
                  "$ref": "#/components/schemas/API-Error"
                }
              }
            }
          }
        },
        "headers": {
          "SQUAKE-Request-Id": {
            "schema": {
              "$ref": "#/components/schemas/SQUAKE-Request-Id"
            }
          }
        }
      }
    },
    "schemas": {
      "Client": {
        "type": "object",
        "title": "Client",
        "description": "A client in your hierarchy, as returned by the `/v2/clients` endpoints. The authenticated client\nand each of its descendants are represented by this object.\n\nThe `id` is the client's UUID: pass it as `parent_id` when creating a child, or as the travel-data\n`client_id` when submitting on behalf of a descendant.\n",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "The client's unique identifier (UUID). Use this value as a `parent_id` or as the travel-data `client_id`.",
            "examples": [
              "4fb3ec7a-92cb-471f-b75f-c3fe7c2a34d5"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ],
            "description": "The client's display name.",
            "examples": [
              "BMW Germany"
            ]
          },
          "external_reference": {
            "type": [
              "string",
              "null"
            ],
            "description": "Your own reference for this client, unique among the children of a given parent. Generated from the name when omitted on creation.",
            "examples": [
              "bmw-de"
            ]
          },
          "parent_id": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid",
            "description": "The UUID of this client's parent, or `null` for the authenticated (root) client.",
            "examples": [
              "0f1f3d3b-2775-4cc0-885e-8d51db6d6de1"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "active"
            ],
            "description": "The client's lifecycle status."
          },
          "metadata": {
            "type": "object",
            "description": "A set of key-value pairs of yours that helps you link this record in your system."
          },
          "methodology_options": {
            "type": "array",
            "description": "The methodologies this client calculates with, one entry per activity type and methodology.\nAlways present: a client that has never been configured reports the SQUAKE defaults it\ncalculates with (`TIM` and `DEFRA` for flights, `DEFRA` for trains and cars, `GREENVIEW` for\nhotels — all `AT_TIME_OF_TRAVEL`).\n\nSet it with the `methodology_configuration` object on `POST /v2/clients` and\n`PATCH /v2/clients/{id}`.\n",
            "items": {
              "$ref": "#/components/schemas/Client-Methodology-Option"
            }
          }
        },
        "required": [
          "id",
          "parent_id",
          "status",
          "metadata",
          "methodology_options"
        ],
        "examples": [
          {
            "id": "4fb3ec7a-92cb-471f-b75f-c3fe7c2a34d5",
            "name": "BMW Germany",
            "external_reference": "bmw-de",
            "parent_id": "0f1f3d3b-2775-4cc0-885e-8d51db6d6de1",
            "status": "active",
            "metadata": {},
            "methodology_options": [
              {
                "activity_type": "flight",
                "methodology": "TIM",
                "version": "AT_TIME_OF_TRAVEL",
                "default": true
              },
              {
                "activity_type": "flight",
                "methodology": "DEFRA",
                "version": "AT_TIME_OF_TRAVEL",
                "default": false
              },
              {
                "activity_type": "train",
                "methodology": "DEFRA",
                "version": "AT_TIME_OF_TRAVEL",
                "default": true
              },
              {
                "activity_type": "car",
                "methodology": "DEFRA",
                "version": "AT_TIME_OF_TRAVEL",
                "default": true
              },
              {
                "activity_type": "hotel",
                "methodology": "GREENVIEW",
                "version": "AT_TIME_OF_TRAVEL",
                "default": true
              }
            ]
          }
        ]
      },
      "Client-Methodology-Option": {
        "type": "object",
        "title": "Client-Methodology-Option",
        "description": "One methodology a client calculates with, for one activity type. A client's\n`methodology_options` is the list of these entries.\n\nRules enforced per activity type:\n\n* At most 3 options for the same `activity_type`.\n* Exactly one option per `activity_type` must have `default: true`.\n* The `methodology` must be available for that `activity_type` (see the list below).\n\nAvailable methodologies per activity type:\n\n| `activity_type` | `methodology` |\n| --- | --- |\n| `flight` | `ADEME`, `BASE-EMPREINTE`, `CO2-EMISSIEFACTOREN-NL`, `DEFRA`, `GATE4`, `ICAO`, `TIM`, `TU-CHALMERS`, `US-EPA` |\n| `train` | `ADEME`, `BASE-EMPREINTE`, `CO2-EMISSIEFACTOREN-NL`, `DEFRA`, `GREEN-TRAVEL-PLEDGE`, `REM`, `US-EPA` |\n| `car` | `ACRISS`, `DEFRA`, `EU-EEA`, `US-EPA` |\n| `hotel` | `DEFRA`, `GREENVIEW`, `HCMI`, `NOS-GESTES-CLIMAT` |\n",
        "properties": {
          "activity_type": {
            "type": "string",
            "description": "The activity type this option applies to.",
            "enum": [
              "flight",
              "train",
              "car",
              "hotel"
            ],
            "examples": [
              "flight"
            ]
          },
          "methodology": {
            "type": "string",
            "description": "The methodology used to calculate this activity type. Must be one of the methodologies available for the `activity_type`; anything else is rejected with `invalid_methodology_options` (`422`).",
            "examples": [
              "TIM"
            ]
          },
          "version": {
            "type": [
              "string",
              "null"
            ],
            "description": "The methodology version to calculate with. Use `AT_TIME_OF_TRAVEL` to always pick the\nfactor set that was valid on the travel date. Send `null` (or omit the field) to use the\nmethodology's current version.\n\nOnly `CO2-EMISSIEFACTOREN-NL`, `DEFRA`, `GREENVIEW`, `HCMI`, and `US-EPA` publish selectable\nversions; for the others the value is informational.\n",
            "examples": [
              "AT_TIME_OF_TRAVEL"
            ]
          },
          "default": {
            "type": "boolean",
            "description": "Whether this is the methodology reported for the activity type. Exactly one option per `activity_type` must be `true`. Required on every entry — an entry without a boolean `default` is rejected with `invalid_methodology_options` (`400`).",
            "examples": [
              true
            ]
          }
        },
        "required": [
          "activity_type",
          "methodology",
          "default"
        ],
        "examples": [
          {
            "activity_type": "flight",
            "methodology": "TIM",
            "version": "AT_TIME_OF_TRAVEL",
            "default": true
          }
        ]
      },
      "Invitation": {
        "type": "object",
        "title": "Invitation",
        "description": "An invitation to a user of a sub-client of the authenticated client, as returned by the\n`/v2/invitations` endpoints. Each invitation is tied to exactly one user in exactly one client;\nre-inviting the same address to the same sub-client returns the invitation that already exists\nwith an updated `sent_at`, not a new one.\n\nThe `invitation_url` is the acceptance link the invited user receives by email. Persist the\n`id` if you want to look the invitation up again later; both the `id` and `invitation_url` are\nstable across resends.\n",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "The invitation's unique identifier (UUID).",
            "examples": [
              "8f6a1c9c-3f28-4b3e-9a1b-24a0f0c7f5b1"
            ]
          },
          "client_id": {
            "type": "string",
            "format": "uuid",
            "description": "The UUID of the sub-client the user is being invited into. Always a descendant of the authenticated client — never the authenticated client itself.",
            "examples": [
              "4fb3ec7a-92cb-471f-b75f-c3fe7c2a34d5"
            ]
          },
          "user_email": {
            "type": "string",
            "format": "email",
            "description": "The email address the invitation was issued to. Normalized (trimmed and lower-cased) on creation.",
            "examples": [
              "ada.lovelace@example.com"
            ]
          },
          "first_name": {
            "type": [
              "string",
              "null"
            ],
            "description": "The invited user's first name, if provided.",
            "examples": [
              "Ada"
            ]
          },
          "last_name": {
            "type": [
              "string",
              "null"
            ],
            "description": "The invited user's last name, if provided.",
            "examples": [
              "Lovelace"
            ]
          },
          "role": {
            "type": "string",
            "description": "The role the invited user will hold in the sub-client. One of the client-level roles\n(for example `admin` or `user`). SQUAKE-internal roles cannot be assigned via the API.\n",
            "examples": [
              "admin"
            ]
          },
          "locale": {
            "type": "string",
            "enum": [
              "en",
              "de",
              "fr"
            ],
            "description": "The language used for the invitation email and acceptance page.",
            "examples": [
              "de"
            ]
          },
          "sent_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When the invitation email was last sent. Updated on every resend.",
            "examples": [
              "2026-08-31T10:23:14Z"
            ]
          },
          "accepted_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When the invited user accepted the invitation, or `null` if it is still outstanding.",
            "examples": [
              "2026-09-02T14:07:52Z"
            ]
          },
          "invitation_url": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri",
            "description": "The acceptance URL the invited user follows to set a password and finish signing up. Stable across resends.",
            "examples": [
              "https://app.squake.earth/accept-invite/6b3a2e1c-9e5d-4b7a-b0f8-2c8f6a4d1e11?token=eyJhbGciOi..."
            ]
          }
        },
        "required": [
          "id",
          "client_id",
          "user_email",
          "role",
          "locale",
          "accepted_at",
          "invitation_url"
        ],
        "examples": [
          {
            "id": "8f6a1c9c-3f28-4b3e-9a1b-24a0f0c7f5b1",
            "client_id": "4fb3ec7a-92cb-471f-b75f-c3fe7c2a34d5",
            "user_email": "ada.lovelace@example.com",
            "first_name": "Ada",
            "last_name": "Lovelace",
            "role": "admin",
            "locale": "de",
            "sent_at": "2026-08-31T10:23:14Z",
            "accepted_at": null,
            "invitation_url": "https://app.squake.earth/accept-invite/6b3a2e1c-9e5d-4b7a-b0f8-2c8f6a4d1e11?token=eyJhbGciOi..."
          }
        ]
      },
      "Calculation-Flight-Leg": {
        "type": "object",
        "title": "Flight leg (expanded)",
        "description": "Per-leg emissions row when a flight item uses `routing` and the request `expand` array includes `legs`.\nParent item `carbon_quantity` and `distance` aggregate these legs.\n",
        "properties": {
          "carbon_quantity": {
            "type": "number"
          },
          "carbon_unit": {
            "$ref": "#/components/schemas/carbon_unit"
          },
          "distance": {
            "type": "number",
            "description": "Leg distance in the response `distance_unit` of the calculation."
          },
          "distance_unit": {
            "$ref": "#/components/schemas/distance_unit"
          },
          "type": {
            "type": "string",
            "const": "flight"
          },
          "methodology": {
            "type": "string",
            "description": "Methodology used for this leg (matches parent flight item)."
          },
          "external_reference": {
            "type": "string"
          },
          "audit": {
            "type": "object",
            "description": "Present on legs when audit mode is enabled for the item."
          },
          "emission_factors": {
            "type": "object",
            "description": "Present on legs when audit mode is enabled for the item."
          }
        }
      },
      "Calculation-Items": {
        "title": "Carbon Emission Calculation Types",
        "anyOf": [
          {
            "$ref": "#/components/schemas/Accommodation"
          },
          {
            "$ref": "#/components/schemas/Air-Freight"
          },
          {
            "$ref": "#/components/schemas/Bus"
          },
          {
            "$ref": "#/components/schemas/Car"
          },
          {
            "$ref": "#/components/schemas/Coffee-Production"
          },
          {
            "$ref": "#/components/schemas/Event"
          },
          {
            "$ref": "#/components/schemas/Expenditure"
          },
          {
            "$ref": "#/components/schemas/Ferry"
          },
          {
            "$ref": "#/components/schemas/Flight"
          },
          {
            "$ref": "#/components/schemas/Hotel"
          },
          {
            "$ref": "#/components/schemas/Inland-Waterways"
          },
          {
            "$ref": "#/components/schemas/Logistics-Hub"
          },
          {
            "$ref": "#/components/schemas/Logistics"
          },
          {
            "$ref": "#/components/schemas/Private-Jet"
          },
          {
            "$ref": "#/components/schemas/Rail-Freight"
          },
          {
            "$ref": "#/components/schemas/Restaurant"
          },
          {
            "$ref": "#/components/schemas/Road-Freight"
          },
          {
            "$ref": "#/components/schemas/Sea-Freight"
          },
          {
            "$ref": "#/components/schemas/Train"
          },
          {
            "$ref": "#/components/schemas/Van"
          }
        ]
      },
      "Carbon-Activity-Type": {
        "type": "string",
        "enum": [
          "accommodation",
          "air_freight",
          "bus",
          "camping_site",
          "car",
          "co2_amount",
          "coffee_production",
          "cruise",
          "expenditure",
          "ferry",
          "flight",
          "general",
          "hotel",
          "logistics",
          "logistics_hub",
          "logistics_site",
          "money_amount",
          "private_jet",
          "sea_freight",
          "inland_waterways",
          "train",
          "rail_freight",
          "road_freight",
          "van"
        ],
        "title": "Carbon-Activity-Type",
        "examples": [
          "air_freight"
        ]
      },
      "Emissions-Calculation-Methodology": {
        "type": "string",
        "enum": [
          "ACRISS",
          "ADEME",
          "BASIC",
          "CLEAN-CARGO",
          "CO2-EMISSIEFACTOREN-NL",
          "DIN-EN-16258",
          "DEFRA",
          "EU-EEA",
          "EU-EMSA",
          "US-EPA",
          "HCMI",
          "OFNK",
          "ECTA",
          "GLEC",
          "ICAO",
          "TIM",
          "SQUAKE"
        ],
        "title": "Emissions-Calculation-Methodology",
        "examples": [
          "GLEC"
        ]
      },
      "Pricing-Response-Params": {
        "type": "object",
        "title": "Pricing",
        "properties": {
          "id": {
            "type": "string",
            "description": "A token encoding the pricing; used to make a purchase. Requests for the same product and carbon quantity (or fixed total) may result in the same id. A pricing is valid for multiple purchases (the purchase endpoint is idempotent if you add an `external_reference` to the purchase call)."
          },
          "payment_link": {
            "type": "string"
          },
          "price": {
            "oneOf": [
              {
                "type": "string",
                "description": "ID of a price.",
                "pattern": "price_[A-Za-z0-9]*",
                "examples": [
                  "price_1MMroL2eZvKYlo2CxbxAACvb"
                ]
              },
              {
                "$ref": "#/components/schemas/Price"
              }
            ]
          },
          "product": {
            "anyOf": [
              {
                "type": "string",
                "description": "ID of a product.",
                "pattern": "product_[A-Za-z0-9]*",
                "examples": [
                  "product_01fa2d8f04e424"
                ]
              },
              {
                "$ref": "#/components/schemas/Product"
              }
            ]
          },
          "valid_until": {
            "$ref": "#/components/schemas/iso_8601_date",
            "description": "By default, a price quote is valid from the moment you request it for two weeks. Expired price quotes are accepted if the underlying price hasn't changed."
          },
          "carbon_quantity": {
            "type": "number",
            "description": "Volume of carbon emissions",
            "readOnly": true
          },
          "carbon_unit": {
            "$ref": "#/components/schemas/carbon_unit"
          },
          "currency": {
            "$ref": "#/components/schemas/currency"
          },
          "total": {
            "type": "integer",
            "description": "The total amount in the lower denomination of the currency; e.g. 12.34 USD would be 1234."
          }
        },
        "required": [
          "id",
          "price",
          "product",
          "valid_until",
          "carbon_quantity",
          "carbon_unit",
          "currency",
          "total"
        ]
      },
      "Price": {
        "type": "object",
        "title": "Price",
        "description": "For carbon compensation products, prices define the unit cost (per unit, e.g., \"tonne\"). Prices are valid for a given period as the market fluctuates.\n\n\nTypically there is one currently valid price for a product. As the market fluctuates, prices can change; usually, SQUAKE is informed by their project partners of future price changes; hence multiple prices can be returned for the same product.\n\n\nThis endpoint returns only valid prices. These are purley informational; for interacting with the API, `products` must be passed.",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "price_[A-Za-z0-9]*",
            "readOnly": true,
            "examples": [
              "price_1MMroL2eZvKYlo2CxbxAACvb"
            ]
          },
          "product": {
            "type": "string",
            "examples": [
              "prod_N760vOJBvdEDY8"
            ]
          },
          "unit_amount": {
            "type": "integer",
            "description": "The total amount in the lower denomination of the currency; e.g. 12.34 USD would be 1234.",
            "format": "int64",
            "examples": [
              2500
            ]
          },
          "carbon_unit": {
            "$ref": "#/components/schemas/carbon_unit"
          },
          "currency": {
            "$ref": "#/components/schemas/currency"
          }
        },
        "required": [
          "id",
          "product",
          "unit_amount",
          "carbon_unit",
          "currency"
        ],
        "examples": []
      },
      "Product": {
        "type": "object",
        "title": "Product",
        "description": "A product is any purchasable compensation option SQUAKE offers. In the simplest case, a product maps to a single project such as \"GoodShipping Sustainable Biofuel for Shipping\". Depending on client need, SQUAKE also offers bundles of multiple projects; these can be centered around specific goals, e.g., \"carbon avoidance\", or mixed to achieve a particular price point. Feel free to contact us for more information or custom products.",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "product_[A-Za-z0-9]*",
            "examples": [
              "product_2rsg35sfsdf"
            ]
          },
          "locations": {
            "type": "array",
            "description": "List of all locations impacted by the projects used in this product.",
            "items": {
              "$ref": "#/components/schemas/Location"
            }
          },
          "certifications": {
            "type": "array",
            "description": "List of all certifications the projects for this product hold.",
            "items": {
              "$ref": "#/components/schemas/Certification"
            }
          },
          "title": {
            "type": "string",
            "description": "A short human readable summary of the description. "
          },
          "description": {
            "type": "string",
            "description": "A human readable description."
          },
          "sdgs": {
            "type": "array",
            "description": "The Sustainable Development Goals (SDGs) aim to transform our world. They are a call to action to end poverty and inequality, protect the planet, and ensure that all people enjoy health, justice and prosperity.",
            "items": {
              "type": "integer",
              "minimum": 1,
              "maximum": 17,
              "multipleOf": 1,
              "examples": [
                7
              ]
            }
          },
          "files": {
            "type": "array",
            "description": "Images attached to the product.",
            "items": {
              "$ref": "#/components/schemas/File"
            }
          },
          "prices": {
            "type": "array",
            "description": "Multiple prices may exist, for example, when future price changes are already known.",
            "items": {
              "$ref": "#/components/schemas/Price"
            }
          },
          "categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCategory"
            }
          },
          "impact_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImpactType"
            }
          },
          "classes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectClass"
            }
          }
        },
        "required": [
          "id"
        ]
      },
      "Location": {
        "type": "object",
        "title": "Location",
        "description": "Information on a location according to ISO 3166 or UN M49. This can be, for example, a country code such as `DE` for Germany (using alpha2), or a sub region code such as `155` for Western Europe, or region code such as `150` for Europe.",
        "properties": {
          "country": {
            "$ref": "#/components/schemas/country"
          },
          "sub_region": {
            "type": "string",
            "description": "One to Three-digit UN M49 sub region code.",
            "examples": [
              "150"
            ]
          },
          "region": {
            "type": "string",
            "description": "One to Three-digit UN M49 region code.",
            "examples": [
              "155"
            ]
          }
        },
        "required": [
          "country"
        ]
      },
      "Certification": {
        "type": "string",
        "enum": [
          "American Carbon Registry",
          "Australian Biodiversity Unit",
          "BAFU VER",
          "Clean Development Mechanism",
          "DNV",
          "Ernst & Young",
          "European Biochar Certification",
          "Gold Standard CER",
          "Gold Standard VER",
          "I-REC",
          "International Sustainability & Carbon Certification (ISCC)",
          "ISO 14064",
          "Moor Futures",
          "Müller BBM",
          "Plan Vivo",
          "TÜV",
          "Verified Carbon Standard"
        ],
        "title": "Certification",
        "description": "Certification organizations rate and evaluate the quality of emitted carbon credits; such organizations assess, for example, the inclusion of safeguarding principles, the impact of climate and sustainable development goals, or the presence of a monitoring plan.",
        "examples": [
          "European Biochar Certification"
        ]
      },
      "File": {
        "type": "object",
        "title": "File",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "file_[A-Za-z0-9]*",
            "examples": [
              "file_asfg454s25"
            ]
          },
          "filename": {
            "type": "string"
          },
          "purpose": {
            "type": "string",
            "enum": [
              "confirmation_document",
              "certificate_document",
              "project_image"
            ],
            "examples": [
              "confirmation_document"
            ]
          },
          "size": {
            "type": "integer",
            "description": "Byte size of the object"
          },
          "type": {
            "type": "string",
            "enum": [
              "csv",
              "jpg",
              "pdf",
              "png",
              "webp"
            ],
            "examples": [
              "pdf"
            ]
          },
          "download_url": {
            "type": "string",
            "description": "The link will expire after 1 year. If blank, the document has not been created yet. Please poll until a link is included.",
            "format": "uri"
          },
          "notification": {
            "type": "string",
            "description": "Information pertaining to the file, e.g., when the file will be available"
          }
        },
        "required": [
          "id",
          "filename",
          "purpose",
          "size",
          "type"
        ]
      },
      "ProductCategory": {
        "type": "object",
        "title": "ProductCategory",
        "properties": {
          "code": {
            "type": "string",
            "description": "Unique identifier for a category",
            "pattern": "^[a-z_]+$",
            "examples": [
              "forestry_and_land_use"
            ]
          },
          "title": {
            "type": "string",
            "description": "English human-readable name of the category.",
            "examples": [
              "Forestry and Land Use"
            ]
          }
        },
        "required": [
          "code"
        ]
      },
      "ImpactType": {
        "type": "object",
        "title": "ImpactType",
        "properties": {
          "code": {
            "type": "string",
            "description": "Unique identifier for a impact type",
            "pattern": "^[a-z_]+$",
            "examples": [
              "avoidance"
            ]
          },
          "title": {
            "type": "string",
            "description": "English human-readable name of the impact type",
            "examples": [
              "Avoidance"
            ]
          }
        },
        "required": [
          "code"
        ]
      },
      "ProjectClass": {
        "type": "object",
        "title": "ProjectClass",
        "properties": {
          "code": {
            "type": "string",
            "description": "Unique identifier for a project class",
            "pattern": "^[a-z_]+$",
            "examples": [
              "technology_based"
            ]
          },
          "title": {
            "type": "string",
            "description": "English human-readable name of the project class",
            "examples": [
              "Technology based"
            ]
          }
        },
        "required": [
          "code"
        ]
      },
      "Confirmation-Document": {
        "type": "object",
        "title": "Confirmation-Document",
        "properties": {
          "full_name": {
            "type": "string",
            "description": "Legal name of an entity or natural person to which the document shall be issued. If you cannot disclose this, you can send any de-personalized identifier (such as a UUID)."
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "email": {
            "type": "string",
            "description": "SQUAKE can send an email with the compensation confirmation. If omitted, no email is sent. In either case, a download link will be made available.",
            "format": "email"
          },
          "on_behalf_of": {
            "type": "object",
            "description": "If you make a compensation on behalf on another entity or person. This will be printed on the issued document.",
            "properties": {
              "full_name": {
                "type": "string"
              },
              "address": {
                "$ref": "#/components/schemas/Address"
              }
            },
            "required": [
              "full_name"
            ]
          },
          "locale": {
            "$ref": "#/components/schemas/Locale"
          }
        },
        "required": [
          "full_name",
          "address"
        ]
      },
      "Address": {
        "type": "object",
        "title": "Address",
        "description": "Address of a legal entity. Some (legal) documets require a full address to be given, e.g. an invoice.",
        "properties": {
          "city": {
            "type": "string",
            "description": "City, town, village,..."
          },
          "country": {
            "$ref": "#/components/schemas/country"
          },
          "line1": {
            "type": "string",
            "description": "street, post box, company name, ..."
          },
          "line2": {
            "type": "string",
            "description": "suite, apartment number, ..."
          },
          "postal_code": {
            "type": "string",
            "description": "ZIP or postal code"
          },
          "state": {
            "type": "string",
            "description": "County, Province, Region, State,..."
          }
        },
        "required": [
          "city",
          "country",
          "line1",
          "postal_code"
        ]
      },
      "Locale": {
        "type": "string",
        "enum": [
          "de",
          "en",
          "es",
          "fr",
          "hi",
          "it",
          "ja",
          "pt",
          "pt-BR",
          "zh-CN"
        ],
        "title": "Locale",
        "description": "Two-letter ISO 639-1 or BCP 47 code describing a language. Descriptions and emails meant for end users can be localized. System messages meant for developers are always in english.",
        "pattern": "^(?:[a-z]{2}|[a-z]{2}-[A-Z]{2})$",
        "minLength": 2,
        "maxLength": 5,
        "default": "en",
        "examples": [
          "en"
        ]
      },
      "Certificate-Document": {
        "type": "object",
        "title": "Certificate-Document",
        "properties": {
          "full_name": {
            "type": "string",
            "description": "Legal name of an entity or natural person to which the document shall be issued. If you cannot disclose this, you can send any de-personalized identifier (such as a UUID)."
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "email": {
            "type": "string",
            "description": "SQUAKE can send an email with the compensation certificate. If omitted, no email is sent. In either case, a download link will be made available.",
            "format": "email"
          },
          "flags": {
            "type": "array",
            "description": "If \"with_attribution\" is sent, your name will be mentioned on the certificate; e.g. \"(..) enabled by ${your_name} (..)\".",
            "items": {
              "const": "with_attribution",
              "examples": [
                "with_attribution"
              ]
            }
          },
          "locale": {
            "$ref": "#/components/schemas/Locale"
          }
        },
        "required": [
          "full_name",
          "address"
        ]
      },
      "Metadata": {
        "type": "object",
        "title": "Metadata",
        "description": "A set of key-value pairs of yours that helps you link this record in your system. Never displayed to users."
      },
      "Purchase": {
        "type": "object",
        "title": "Purchase",
        "examples": [],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "purchase_[a-zA-Z0-9]*",
            "examples": [
              "purchase_sd234asdfl23"
            ]
          },
          "files": {
            "type": "array",
            "description": "Contains for example the certificate document if it was requested during the purchase.",
            "uniqueItems": true,
            "items": {
              "oneOf": [
                {
                  "type": "string",
                  "pattern": "file_[A-Za-z0-9]*",
                  "examples": [
                    "file_34sdfgJH9df4g35"
                  ]
                },
                {
                  "$ref": "#/components/schemas/File"
                }
              ]
            }
          },
          "payment_method": {
            "$ref": "#/components/schemas/Payment-Method"
          },
          "state": {
            "$ref": "#/components/schemas/Purchase-State"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "checkout_page": {
            "type": "object",
            "description": "Present if the payment method is `stripe`, meaning self-fulfillment by the customer on SQUAKEs payment page.",
            "properties": {
              "url": {
                "type": "string",
                "description": "Send your customer to this URL to finalise the purchase. This link is not the stateless payment link, but bound to this purchase.",
                "format": "uri",
                "examples": [
                  "https://checkout.squake.earth"
                ]
              },
              "return_url": {
                "type": "string",
                "description": "If the customer does not exit the browser after the purchase, on success, SQUAKE will redirect the customer to this link.",
                "format": "uri",
                "examples": [
                  "https://example.com"
                ]
              }
            }
          },
          "carbon_quantity": {
            "type": "number"
          },
          "carbon_unit": {
            "$ref": "#/components/schemas/carbon_unit"
          },
          "total": {
            "type": "integer"
          },
          "currency": {
            "$ref": "#/components/schemas/currency"
          },
          "external_reference": {
            "type": "string",
            "description": "Unique identifier from your system; used as idempotency when creating this resource."
          },
          "cancellable_until": {
            "description": "The date until which purchase can be cancelled",
            "type": "string",
            "format": "date-time",
            "example": "2025-01-01T15:00:00+00:00"
          }
        },
        "required": [
          "id",
          "payment_method",
          "state",
          "carbon_quantity",
          "carbon_unit",
          "total",
          "currency"
        ],
        "description": ""
      },
      "Payment-Method": {
        "type": "string",
        "enum": [
          "batch_settlement",
          "stripe"
        ],
        "title": "Payment-Method",
        "description": "Mode of payment. The batch settlement means SQUAKE will invoice you regularly for a batch of purchases. The checkout page is SQUAKEs self-fulfillment solution where end-customers can purchase a product directly from SQUAKE as the merchant of record.",
        "default": "batch_settlement",
        "examples": [
          "batch_settlement"
        ]
      },
      "Purchase-State": {
        "type": "string",
        "enum": [
          "reserved",
          "confirmed",
          "invoiced",
          "settled",
          "certificates_confirmed",
          "certificates_retired",
          "payment_initiated",
          "canceled",
          "voided",
          "refunded",
          "payment_aborted"
        ],
        "title": "Purchase State"
      },
      "Webhook": {
        "type": "object",
        "description": "Squake application generates events on certain actions. To be notified about these actions client can create a webhook. For now you can create one webhook per one kind of events.\n\nOn the first creation of webhook, you would receive `signing_key`. \nYou should save these signing key securely as we're using it to sign our webhooks, so later you can check the authentity of the received event.\n\nTo sign the webhook payload, we're creating HMAC signature of the payload using SHA256.",
        "properties": {
          "id": {
            "type": "string",
            "description": "A unique identifier for the webhook, represented as a universally unique identifier (UUID)",
            "format": "uuid"
          },
          "last_failed_at": {
            "type": [
              "string",
              "null"
            ],
            "description": "The timestamp of the most recent failed delivery attempt. If no failures have occurred, this field is null",
            "format": "date-time"
          },
          "last_sent_at": {
            "type": [
              "string",
              "null"
            ],
            "description": "The timestamp of the most recent successful delivery attempt. If no attempts have been made, this field is null",
            "format": "date-time"
          },
          "failed_attempts": {
            "type": "integer",
            "description": "The total number of consecutive failed delivery attempts"
          },
          "kind": {
            "type": "string",
            "enum": [
              "order",
              "carbon_activity_expired",
              "confirmation_document_available",
              "certificate_document_available"
            ],
            "description": "The type of event that triggers the webhook"
          },
          "endpoint_url": {
            "type": "string",
            "description": "The URL where the webhook payloads are sent. Must be a valid URI that accepts POST requests",
            "format": "uri"
          }
        },
        "examples": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            "last_failed_at": "2024-08-22T14:10:78Z",
            "last_sent_at": "2024-08-24T14:15:22Z",
            "failed_attempts": 0,
            "kind": "order",
            "endpoint_url": "http://example.com",
            "signing_key": "TAWHPBAVckH8KmxRtlRX/rQ/mona5vUem7QFtozGHxM="
          }
        ],
        "x-examples": {
          "Example 1": {
            "id": "38b2be09-e80b-4684-96d6-0b5b6bdf7738",
            "last_failed_at": null,
            "last_sent_at": null,
            "client_id": "46ad191f-1f15-4328-8be0-7a5ce78f5a78",
            "failed_attempts": 0,
            "kind": "order",
            "endpoint_url": "testik.com",
            "created_at": "2024-11-29T13:07:55.753Z",
            "updated_at": "2024-11-29T13:07:55.753Z",
            "deleted_at": null
          }
        }
      },
      "WebhookWithSigningKey": {
        "type": "object",
        "description": "Squake application generates events on certain actions. To be notified about these actions client can create a webhook. For now you can create one webhook per one kind of events.\n\nOn the first creation of webhook, you would receive `signing_key`. \nYou should save these signing key securely as we're using it to sign our webhooks, so later you can check the authentity of the received event.\n\nTo sign the webhook payload, we're creating HMAC signature of the payload using SHA256.",
        "properties": {
          "id": {
            "type": "string",
            "description": "A unique identifier for the webhook, represented as a universally unique identifier (UUID)",
            "format": "uuid"
          },
          "last_failed_at": {
            "type": [
              "string",
              "null"
            ],
            "description": "The timestamp of the most recent failed delivery attempt. If no failures have occurred, this field is null",
            "format": "date-time"
          },
          "last_sent_at": {
            "type": [
              "string",
              "null"
            ],
            "description": "he timestamp of the most recent successful delivery attempt. If no attempts have been made, this field is null",
            "format": "date-time"
          },
          "failed_attempts": {
            "type": "integer",
            "description": "The total number of consecutive failed delivery attempts"
          },
          "kind": {
            "type": "string",
            "enum": [
              "order",
              "carbon_activity_expired",
              "confirmation_document_available",
              "certificate_document_available"
            ],
            "description": "The type of event that triggers the webhook"
          },
          "endpoint_url": {
            "type": "string",
            "description": "The URL where the webhook payloads are sent. Must be a valid URI that accepts POST requests",
            "format": "uri"
          },
          "signing_key": {
            "type": "string",
            "description": "32 bit signing key that we're using to generate webhook signature.  \n`signing_key` is being generated on webhook creation and being exposed only once, so make sure you've saved it"
          }
        },
        "examples": [
          {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            "last_failed_at": "2024-08-22T14:10:78Z",
            "last_sent_at": "2024-08-24T14:15:22Z",
            "failed_attempts": 0,
            "kind": "order",
            "endpoint_url": "http://example.com",
            "signing_key": "TAWHPBAVckH8KmxRtlRX/rQ/mona5vUem7QFtozGHxM="
          }
        ],
        "x-examples": {
          "Example 1": {
            "id": "38b2be09-e80b-4684-96d6-0b5b6bdf7738",
            "last_failed_at": null,
            "last_sent_at": null,
            "client_id": "46ad191f-1f15-4328-8be0-7a5ce78f5a78",
            "failed_attempts": 0,
            "kind": "order",
            "endpoint_url": "testik.com",
            "created_at": "2024-11-29T13:07:55.753Z",
            "updated_at": "2024-11-29T13:07:55.753Z",
            "deleted_at": null
          }
        }
      },
      "API-Error": {
        "type": "array",
        "title": "API Error",
        "items": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string",
              "enum": [
                "field_validation_error",
                "invalid_params",
                "server_error",
                "not_authorized",
                "not_found",
                "invalid_methodology",
                "invalid_type",
                "client_not_found",
                "invalid_parent_client",
                "client_has_children",
                "parent_id_immutable",
                "travel_data_not_found"
              ],
              "description": "An application-specific error code, expressed as a string value.",
              "examples": [
                "field_validation_error"
              ]
            },
            "detail": {
              "type": "string",
              "description": "A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized."
            },
            "source": {
              "$ref": "#/components/schemas/API-ErrorSource",
              "description": "An object containing references to the primary source of the error"
            }
          },
          "required": [
            "code"
          ]
        }
      },
      "API-ErrorSource": {
        "type": "object",
        "title": "API-ErrorSource",
        "properties": {
          "id": {
            "type": "string"
          },
          "attribute": {
            "type": "string"
          },
          "model": {
            "type": "string"
          }
        },
        "required": [
          "attribute"
        ]
      },
      "Travel-Data-Items-Response": {
        "type": "object",
        "title": "Travel-Data-Items-Response",
        "properties": {
          "carbon_quantity": {
            "type": "number",
            "description": "Total carbon quantity aggregated across all items"
          },
          "carbon_unit": {
            "$ref": "#/components/schemas/carbon_unit"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Travel-Data-Items-Response-Item"
            }
          },
          "trips": {
            "type": "array",
            "description": "The trips this request persisted, with the IDs of the activities it wrote under each one.\nUse these IDs to read the stored data back from the trip endpoints — including the\ncalculations of any additional methodologies, which `items` does not report.\n\nOne entry per trip: two payload entries sharing a `trip_reference` resolve to a single\ntrip and are reported once. `activity_ids` lists only the activities *this* request\npersisted, so a re-used trip holds more than the response shows.\n\nEach entry carries the trip's identity, not the descriptive fields the request sent —\nreading the trip back returns those on top of these (`Travel-Data-Stored-Trip`).\n",
            "items": {
              "$ref": "#/components/schemas/Travel-Data-Submitted-Trip"
            }
          }
        },
        "required": [
          "carbon_quantity",
          "carbon_unit",
          "trips"
        ]
      },
      "Travel-Data-Submitted-Trip": {
        "title": "Travel-Data-Submitted-Trip",
        "type": "object",
        "description": "A trip as the `trips` array of `POST /v2/travel-data` reports it: the identity of what the request\nwrote — SQUAKE's `id`, your own `trip_reference`, the client that owns the trip, the client that\nsubmitted it, and the IDs of the activities persisted under it. A submission echoes what it wrote,\nnot the descriptive fields it was given.\n\nA trip **read** returns a superset of these fields — see `Travel-Data-Stored-Trip` — so a\nsubmission response and a later read of the same trip never disagree on a field they share.\n\nActivities are never nested in a trip: it carries only their `activity_ids`. Read the activities\nthemselves — with their calculations and audits — from\n`GET /v2/travel-data/trips/{trip_id}/activities`.\n",
        "examples": [
          {
            "id": "0194d6b4-8711-7873-899d-c8133cd742f8",
            "trip_reference": "BT-2023-001",
            "client_id": "4fb3ec7a-92cb-471f-b75f-c3fe7c2a34d5",
            "submitted_by_client_id": "4fb3ec7a-92cb-471f-b75f-c3fe7c2a34d5",
            "activity_ids": [
              "6c1f6a5e-1d0e-4b8a-9f2c-2b1e6d4a7c31",
              "b9a2c47d-3f61-4d0e-8f52-7c9a1e2b4d68"
            ]
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "SQUAKE's identifier for the trip. Addresses the trip on every read and delete."
          },
          "trip_reference": {
            "type": [
              "string",
              "null"
            ],
            "description": "Your own reference for the trip, echoed from the request that created it. Also usable in place\nof `id` in the trip paths.\n"
          },
          "client_id": {
            "type": "string",
            "format": "uuid",
            "description": "The client that owns the trip — the target client when the trip was submitted with a\nroot-level `client_id`, otherwise the submitting client itself.\n"
          },
          "submitted_by_client_id": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid",
            "description": "The client whose credentials submitted the trip. `null` for trips that did not arrive through\n`POST /v2/travel-data` (for example CSV imports or TMC integrations). A trip re-used by a later\nsubmission keeps the submitter that first created it.\n"
          },
          "activity_ids": {
            "type": "array",
            "description": "The IDs of the trip's activities, in ingestion order, across all activity types. Individual\nlegs of a `routing` flight are not listed — the routed activity carries the itinerary.\n\nIn a `POST /v2/travel-data` response this lists the activities *that request* persisted; a\nre-used `trip_reference` means the trip holds more than the response shows. Read the trip to\nget the full list.\n",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        },
        "required": [
          "id",
          "trip_reference",
          "client_id",
          "submitted_by_client_id",
          "activity_ids"
        ]
      },
      "Travel-Data-Stored-Trip": {
        "title": "Travel-Data-Stored-Trip",
        "type": "object",
        "description": "A trip as SQUAKE stored it, returned by the trip list (`GET /v2/travel-data/trips`) and by a single\ntrip read (`GET /v2/travel-data/trips/{id}`): the identity fields a submission echoes back, plus\nthe trip as you described it on ingestion — its name, purpose, status, dates, booking provider,\namount and cost center.\n\nThis is a **superset of `Travel-Data-Submitted-Trip`**, the shape returned in the `trips` array of\n`POST /v2/travel-data`. A submission reports what the request wrote; a read reports what is stored.\nFields they share mean the same thing in both, so a submission response and a later read of the\nsame trip never disagree.\n\nActivities are never nested here: a trip carries only their `activity_ids`. Read the activities\nthemselves — with their calculations and audits — from\n`GET /v2/travel-data/trips/{trip_id}/activities`.\n",
        "examples": [
          {
            "id": "0194d6b4-8711-7873-899d-c8133cd742f8",
            "trip_reference": "BT-2023-001",
            "client_id": "4fb3ec7a-92cb-471f-b75f-c3fe7c2a34d5",
            "submitted_by_client_id": "4fb3ec7a-92cb-471f-b75f-c3fe7c2a34d5",
            "activity_ids": [
              "6c1f6a5e-1d0e-4b8a-9f2c-2b1e6d4a7c31",
              "b9a2c47d-3f61-4d0e-8f52-7c9a1e2b4d68"
            ],
            "trip_name": "Business Trip to NYC",
            "trip_purpose": "Client Meeting",
            "trip_status": "completed",
            "booking_provider": "Example TMC",
            "start_date_utc": "2023-10-01T00:00:00Z",
            "end_date_utc": "2023-10-05T00:00:00Z",
            "amount_in_cents": 10000,
            "currency": "USD",
            "cost_center": {
              "name": "Marketing",
              "purpose": "Marketing Campaign",
              "email": "cc@company.io"
            }
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "SQUAKE's identifier for the trip. Addresses the trip on every read and delete."
          },
          "trip_reference": {
            "type": [
              "string",
              "null"
            ],
            "description": "Your own reference for the trip, echoed from the request that created it. Also usable in place\nof `id` in the trip paths.\n"
          },
          "client_id": {
            "type": "string",
            "format": "uuid",
            "description": "The client that owns the trip — the target client when the trip was submitted with a\nroot-level `client_id`, otherwise the submitting client itself.\n"
          },
          "submitted_by_client_id": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid",
            "description": "The client whose credentials submitted the trip. `null` for trips that did not arrive through\n`POST /v2/travel-data` (for example CSV imports or TMC integrations). A trip re-used by a later\nsubmission keeps the submitter that first created it.\n"
          },
          "activity_ids": {
            "type": "array",
            "description": "The IDs of the trip's activities, in ingestion order, across all activity types. Individual\nlegs of a `routing` flight are not listed — the routed activity carries the itinerary.\n\nA read always lists every activity of the trip, including activities added by earlier or later\nsubmissions — unlike the `activity_ids` of a submission response, which covers only what that\nrequest wrote.\n",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "trip_name": {
            "type": [
              "string",
              "null"
            ],
            "description": "The trip's name, echoed from ingestion. `null` if the source did not provide one.",
            "examples": [
              "Business Trip to NYC"
            ]
          },
          "trip_purpose": {
            "type": [
              "string",
              "null"
            ],
            "description": "The trip's purpose, echoed from ingestion. `null` if the source did not provide one.",
            "examples": [
              "Client Meeting"
            ]
          },
          "trip_status": {
            "type": [
              "string",
              "null"
            ],
            "description": "The trip's status as the source reported it, echoed from ingestion. Free-form — SQUAKE neither\nconstrains nor normalizes the value.\n",
            "examples": [
              "completed"
            ]
          },
          "booking_provider": {
            "type": [
              "string",
              "null"
            ],
            "description": "The provider the trip was booked through (a TMC, an online booking tool), echoed from\ningestion. `null` if the source did not provide one.\n",
            "examples": [
              "Example TMC"
            ]
          },
          "start_date_utc": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Start of the trip, in UTC. Ingestion accepts an ISO 8601 date (`2023-10-01`); it is stored and\nreturned as an ISO 8601 date-time (`2023-10-01T00:00:00Z`). Required on `POST /v2/travel-data`,\nso only trips from other sources can report `null`.\n",
            "examples": [
              "2023-10-01T00:00:00Z"
            ]
          },
          "end_date_utc": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "End of the trip, in UTC, in the same date-time format as `start_date_utc`. `null` if the source\ndid not provide one.\n",
            "examples": [
              "2023-10-05T00:00:00Z"
            ]
          },
          "amount_in_cents": {
            "type": [
              "integer",
              "null"
            ],
            "description": "The booking's own amount, in the minor unit of `currency` (so `10000` is `100.00 USD`), echoed\nfrom ingestion. SQUAKE also derives an amount in your base currency for reporting; that one is\ninternal and never returned here.\n",
            "examples": [
              10000
            ]
          },
          "currency": {
            "type": [
              "string",
              "null"
            ],
            "description": "3-letter ISO 4217 alpha code of `amount_in_cents`.",
            "pattern": "^[A-Z]{3}$",
            "examples": [
              "USD",
              "EUR"
            ]
          },
          "cost_center": {
            "type": [
              "object",
              "null"
            ],
            "description": "The cost center the trip is booked against, or `null` for a trip that has none. The key is\nalways present.\n\nOnly the fields that identify the cost center to you are returned — the department and the\ninternal id it carries in the dashboard are not part of this response.\n",
            "properties": {
              "name": {
                "type": "string",
                "description": "Name of the cost center, echoed from ingestion.",
                "examples": [
                  "Marketing"
                ]
              },
              "purpose": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Purpose of the cost center, echoed from ingestion.",
                "examples": [
                  "Marketing Campaign"
                ]
              },
              "email": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "email",
                "description": "Contact email of the cost center, echoed from ingestion.",
                "examples": [
                  "cc@company.io"
                ]
              }
            },
            "required": [
              "name",
              "purpose",
              "email"
            ]
          }
        },
        "required": [
          "id",
          "trip_reference",
          "client_id",
          "submitted_by_client_id",
          "activity_ids",
          "trip_name",
          "trip_purpose",
          "trip_status",
          "booking_provider",
          "start_date_utc",
          "end_date_utc",
          "amount_in_cents",
          "currency",
          "cost_center"
        ]
      },
      "Travel-Data-Stored-Activity": {
        "title": "Travel-Data-Stored-Activity",
        "type": "object",
        "description": "One activity of a stored trip — a flight, hotel stay, car ride or train journey — together with the\ntraveler it was booked for and every calculation persisted for it.\n\n**The key set varies by `type`.** Route and fuel are only stored for the activity types that have\nthem: a hotel stay has no `origin`/`destination`, and only `car` and `train` carry a `fuel_type`.\nA key a type cannot have is omitted rather than returned as `null`, so read `type` first.\n\nIndividual legs of a `routing` flight are not returned: a leg is an internal segment of its\nitinerary, and the routed activity carries the itinerary total.\n",
        "examples": [
          {
            "id": "6c1f6a5e-1d0e-4b8a-9f2c-2b1e6d4a7c31",
            "type": "flight",
            "trip_id": "0194d6b4-8711-7873-899d-c8133cd742f8",
            "client_id": "4fb3ec7a-92cb-471f-b75f-c3fe7c2a34d5",
            "external_reference": "ACTIVITY-FLIGHT-OUTBOUND",
            "origin": "BER",
            "destination": "LHR",
            "traveler": {
              "name": "Jane Doe",
              "email": "jane.doe@example.com",
              "traveler_type": "employee"
            },
            "calculations": [
              {
                "id": "3f2a1c8e-5d47-4b91-a0c3-1e8b7d6f4a20",
                "methodology": "DEFRA",
                "methodology_version": "2026",
                "co2_in_grams": 142600,
                "audit": null
              }
            ]
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Identifier of the activity, as listed in the trip's `activity_ids`."
          },
          "type": {
            "$ref": "#/components/schemas/Travel-Data-Activity-Type"
          },
          "trip_id": {
            "type": "string",
            "format": "uuid",
            "description": "The trip this activity belongs to."
          },
          "client_id": {
            "type": "string",
            "format": "uuid",
            "description": "The client that owns the activity — always the owner of its trip."
          },
          "external_reference": {
            "type": [
              "string",
              "null"
            ],
            "description": "Your own reference for the activity, echoed from the request that created it."
          },
          "origin": {
            "type": [
              "string",
              "null"
            ],
            "description": "Where the activity started, echoed from ingestion in the format it was submitted in — typically\nan airport code for a `flight`, an address, UN/LOCODE or lat/long pair for a `car` or `train`.\nThe city and country SQUAKE resolved it to are used for the calculation and kept internally.\n\n**Only returned for `flight`, `car` and `train`.** A `hotel` activity has no route, and the key\nis omitted rather than `null`.\n",
            "examples": [
              "BER"
            ]
          },
          "destination": {
            "type": [
              "string",
              "null"
            ],
            "description": "Where the activity ended, in the same format as `origin`.\n\n**Only returned for `flight`, `car` and `train`.** A `hotel` activity has no route, and the key\nis omitted rather than `null`.\n",
            "examples": [
              "LHR"
            ]
          },
          "fuel_type": {
            "type": [
              "string",
              "null"
            ],
            "description": "The fuel the activity was calculated with, echoed from ingestion. The accepted values depend on\nthe methodology — see the `car` and `train` request schemas.\n\n**Only returned for `car` and `train`.** For a `flight` or `hotel` activity the key is omitted\nrather than `null`.\n",
            "examples": [
              "diesel",
              "electricity"
            ]
          },
          "traveler": {
            "type": [
              "object",
              "null"
            ],
            "description": "Who travelled, as you described them on submission, or `null` for an activity submitted without\na traveler (common for CSV and TMC rows). The key is always present, for every activity type.\n\nOnly the fields that identify the traveler to you are returned — the department, the external\nemployee id and the internal id the record carries in the dashboard are not part of this\nresponse.\n",
            "properties": {
              "name": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Name of the traveler, echoed from ingestion.",
                "examples": [
                  "Jane Doe"
                ]
              },
              "email": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "email",
                "description": "Email of the traveler, echoed from ingestion and lower-cased. This is the value travelers\nare deduplicated on within a client.\n",
                "examples": [
                  "jane.doe@example.com"
                ]
              },
              "traveler_type": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Type of traveler, echoed from ingestion.",
                "enum": [
                  "employee",
                  "contractor",
                  "guest",
                  null
                ],
                "examples": [
                  "employee"
                ]
              }
            },
            "required": [
              "name",
              "email",
              "traveler_type"
            ]
          },
          "calculations": {
            "type": "array",
            "description": "The calculations persisted for this activity, oldest first — one per methodology configured for\nthe activity type. Empty if no calculation was persisted.\n",
            "items": {
              "$ref": "#/components/schemas/Travel-Data-Stored-Calculation"
            }
          }
        },
        "required": [
          "id",
          "type",
          "trip_id",
          "client_id",
          "external_reference",
          "traveler",
          "calculations"
        ]
      },
      "Travel-Data-Stored-Calculation": {
        "title": "Travel-Data-Stored-Calculation",
        "type": "object",
        "description": "One persisted calculation of an activity: its emissions, the methodology that produced them, and\nthe audit log it created, if any.\n\nAn activity has one calculation per methodology configured for its activity type, so an activity\ncan carry more than one — the primary methodology plus any additional ones enabled for your\naccount. The flat `items` array of `POST /v2/travel-data` only ever reports the primary\nmethodology; the additional ones are readable here.\n",
        "examples": [
          {
            "id": "3f2a1c8e-5d47-4b91-a0c3-1e8b7d6f4a20",
            "methodology": "DEFRA",
            "methodology_version": "2026",
            "co2_in_grams": 16983,
            "audit": {
              "id": "0194d6b4-8711-7873-899d-c8133cd742f8"
            }
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Identifier of the calculation."
          },
          "methodology": {
            "type": "string",
            "description": "The methodology this calculation ran under.",
            "examples": [
              "DEFRA",
              "TIM",
              "GREENVIEW"
            ]
          },
          "methodology_version": {
            "type": [
              "string",
              "null"
            ],
            "description": "The published version of that methodology for this activity type. `null` for methodologies\nthat are not versioned.\n",
            "examples": [
              "2026",
              "2025"
            ]
          },
          "co2_in_grams": {
            "type": "number",
            "description": "Emissions of this calculation, in grams of CO₂ equivalent. Note the unit: the calculation\nendpoints and the `items` array of `POST /v2/travel-data` report kilograms by default.\n"
          },
          "audit": {
            "type": [
              "object",
              "null"
            ],
            "description": "The audit log created for this calculation, or `null` when the activity was submitted without\naudit mode. Only the `id` is returned — read the full log from\n[`/v2/audits/{id}`](https://docs-v2.squake.earth/docs/openapi/audits/get-v2-audits-id).\n",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              }
            },
            "required": [
              "id"
            ]
          }
        },
        "required": [
          "id",
          "methodology",
          "co2_in_grams",
          "audit"
        ]
      },
      "Travel-Data-Activity-Type": {
        "title": "Travel-Data-Activity-Type",
        "type": "string",
        "description": "The activity type of a travel data activity.",
        "enum": [
          "car",
          "flight",
          "hotel",
          "train"
        ],
        "examples": [
          "flight"
        ]
      },
      "Travel-Data-Items-Response-Item": {
        "type": "object",
        "title": "Travel-Data-Items-Response-Item",
        "properties": {
          "carbon_quantity": {
            "type": "number"
          },
          "carbon_unit": {
            "$ref": "#/components/schemas/carbon_unit"
          },
          "external_reference": {
            "type": [
              "string",
              "null"
            ]
          },
          "trip_reference": {
            "type": [
              "string",
              "null"
            ],
            "description": "Reference of the trip this item belongs to, echoed from your request. Use it to reconcile flattened response items back to your source trips."
          },
          "type": {
            "$ref": "#/components/schemas/Carbon-Activity-Type"
          },
          "methodology": {
            "$ref": "#/components/schemas/Travel-Data-Methodology-Details"
          },
          "distance": {
            "type": "number"
          },
          "distance_unit": {
            "$ref": "#/components/schemas/distance_unit"
          }
        },
        "required": [
          "carbon_quantity",
          "carbon_unit",
          "type"
        ]
      },
      "Travel-Data-Methodology-Details": {
        "type": "object",
        "title": "Travel-Data-Methodology-Details",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/API-Error"
            }
          },
          "carbon": {
            "type": "object",
            "properties": {
              "quantity": {
                "oneOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "unit": {
                "$ref": "#/components/schemas/carbon_unit"
              }
            },
            "required": [
              "quantity",
              "unit"
            ]
          },
          "distance": {
            "type": "object",
            "properties": {
              "distance": {
                "oneOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "unit": {
                "$ref": "#/components/schemas/distance_unit"
              }
            },
            "required": [
              "distance",
              "unit"
            ]
          },
          "original_distance": {
            "type": "object",
            "properties": {
              "distance": {
                "oneOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "unit": {
                "$ref": "#/components/schemas/distance_unit"
              }
            },
            "required": [
              "distance",
              "unit"
            ]
          },
          "emission_factors": {
            "type": "object",
            "properties": {
              "co2_per_km_grams": {
                "oneOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope"
              }
            }
          },
          "meta": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "carbon_unit": {
        "type": "string",
        "enum": [
          "tonne",
          "kilogram",
          "gram"
        ],
        "title": "Carbon Unit",
        "description": "SQUAKE uses The International System of Units (SI), commonly referred to as \"metric system\".",
        "examples": [
          "tonne"
        ]
      },
      "distance_unit": {
        "type": "string",
        "enum": [
          "meter",
          "kilometer",
          "feet",
          "mile",
          "nautical_mile"
        ],
        "title": "Distance-Unit",
        "description": "SQUAKE uses common distance units",
        "default": "kilometer",
        "examples": [
          "kilometer"
        ]
      },
      "Calculation-Base-Item": {
        "type": "object",
        "properties": {
          "audit": {
            "type": "boolean",
            "title": "Audit mode",
            "description": "SQUAKE provides you the option to create audit records for your calculations requests. These records are immutable, once they are created they cannot be altered, please use this feature only for final calculations.\n\n**Note:** to use this feature you need to have it enabled for your account, please contact us for more information.\n",
            "default": false
          }
        }
      },
      "external_reference": {
        "type": "string",
        "title": "external_reference",
        "description": "A unique identifier that helps you link the resulting emissions to the requested item. Especially useful if multiple items are requested since SQUAKE cannot guarantee to keep the same order. The maximum length is 128 characters.",
        "maxLength": 128
      },
      "country": {
        "type": "string",
        "title": "Country",
        "description": "Two-letter or three-letter code as defined in ISO 3166-1 alpha-2 and alpha-3 respectively.",
        "pattern": "^[A-Z]{2,3}$",
        "minLength": 2,
        "maxLength": 3,
        "examples": [
          "DE"
        ]
      },
      "Accommodation": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Accommodation",
            "description": "Accommodation considers only activities related to short-term\nrentals, lodging, sublets, etc.\n\nSQUAKE has country-specific values for most parameters. If the country is\nomitted, default values will apply.\n",
            "properties": {
              "type": {
                "const": "accommodation",
                "examples": [
                  "accommodation"
                ]
              },
              "methodology": {
                "const": "SQUAKE",
                "description": "Detailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/accommodation/accommodation-squake).\n",
                "default": "SQUAKE",
                "examples": [
                  "SQUAKE"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "number_of_nights": {
                "type": "integer",
                "description": "Required if start and end dates are omitted; else this is ignored.",
                "format": "int32",
                "minimum": 1,
                "examples": [
                  2
                ]
              },
              "starts_on": {
                "type": "string",
                "description": "The format is ISO 8601 Date, `YYYY-MM-DD`. Required if season-specific methodology shall be used, or number of nights is omitted.",
                "format": "date",
                "examples": [
                  "2020-01-01"
                ]
              },
              "ends_on": {
                "type": "string",
                "description": "The format is ISO 8601 Date, `YYYY-MM-DD`. Required if season-specific methodology shall be used, or number of nights is omitted.",
                "format": "date",
                "examples": [
                  "2020-01-01"
                ]
              },
              "country": {
                "$ref": "#/components/schemas/country"
              },
              "number_of_travelers": {
                "type": "integer",
                "description": "The default value depends on the country.",
                "minimum": 1,
                "examples": [
                  1
                ]
              },
              "square_meters": {
                "type": "number",
                "description": "The default value depends on the country.",
                "format": "double",
                "minimum": 1,
                "examples": [
                  50
                ]
              },
              "sauna": {
                "type": "boolean",
                "default": false
              },
              "parking": {
                "type": "boolean",
                "default": true
              },
              "swimming_pool": {
                "type": "boolean",
                "default": false
              },
              "air_conditioner": {
                "type": "boolean",
                "default": false
              },
              "garage": {
                "type": "boolean",
                "default": false
              }
            },
            "anyOf": [
              {
                "title": "Specified interval",
                "required": [
                  "type",
                  "methodology",
                  "starts_on",
                  "ends_on",
                  "number_of_travelers",
                  "square_meters"
                ]
              },
              {
                "title": "Specified number of nights",
                "required": [
                  "type",
                  "methodology",
                  "number_of_nights",
                  "number_of_travelers",
                  "square_meters"
                ]
              }
            ]
          }
        ]
      },
      "origin_destination": {
        "type": "string",
        "title": "origin_destination",
        "description": "SQUAKE will try to resolve the origin/destination regardless of its format. Ideally, for addresses use the Post standard, for airports use IATA/ICAO code (format: `^[A-Z]{3,4}$`, e.g. `\"MUC\"`), for other locations used in trade and transportation use UN/LOCODE codes (format: `^[A-Z]{2}\\W?[A-Z2-9]{3}$`, e.g. `\"DEHAM\"`). You can also pass lat/long (format: `^[-+]?\\d{1,3}\\.\\d{1,10}\\s?,\\s?[-+]?\\d{1,3}\\.\\d{1,10}$`, e.g. `\"+40.712,-74.006\"`)."
      },
      "distance_in_km": {
        "type": "number",
        "title": "distance_in_km",
        "description": "If you don't have a `distance_in_km`, you can use `origin` and `destination` and the distance will be automatically resolved. If you pass both `distance_in_km` and `origin`/`destination`, then `distance_in_km` will be used.",
        "format": "double",
        "examples": [
          137.11
        ]
      },
      "weight_in_tonnes": {
        "type": "number",
        "format": "float",
        "default": 1,
        "exclusiveMinimum": 0,
        "examples": [
          2.1
        ]
      },
      "energy_scope": {
        "type": "string",
        "enum": [
          "ttw",
          "wtw"
        ],
        "title": "EnergyScope",
        "description": "`ttw` - Tank-to-Wheel\n\n`wtw` - Well-to-Wheel\n",
        "default": "wtw",
        "examples": [
          "ttw"
        ]
      },
      "Air-Freight-DIN-EN-16258": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Air Freight DIN-EN-16258",
            "properties": {
              "type": {
                "const": "air_freight",
                "examples": [
                  "air_freight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "DIN-EN-16258",
                "description": "Default: `\"GLEC\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/air-freight/air-freight-din-en-16258).\n"
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "weight_in_tonnes": {
                "$ref": "#/components/schemas/weight_in_tonnes"
              },
              "plane_type": {
                "type": "string",
                "enum": [
                  "belly_freighter",
                  "freighter"
                ],
                "default": "belly_freighter",
                "examples": [
                  "belly_freighter"
                ]
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope",
                "default": "wtw"
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination",
              "weight_in_tonnes"
            ]
          }
        ]
      },
      "Air-Freight-GLEC": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Air Freight GLEC",
            "properties": {
              "type": {
                "const": "air_freight",
                "examples": [
                  "air_freight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "GLEC",
                "description": "Default: `\"GLEC\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/air-freight/air-freight-glec).\n"
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "weight_in_tonnes": {
                "$ref": "#/components/schemas/weight_in_tonnes"
              },
              "plane_type": {
                "type": "string",
                "enum": [
                  "belly_freighter",
                  "freighter",
                  "average"
                ],
                "default": "average",
                "examples": [
                  "average"
                ]
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope",
                "default": "wtw"
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination",
              "weight_in_tonnes"
            ]
          }
        ]
      },
      "Air-Freight": {
        "type": "object",
        "title": "Air Freight",
        "description": "If you have freight and don't know the type, you can use `Logistics`.\n\nAdditional information may be returned in the response for `GLEC`.\n\nThe format is:\n\n```json\n  \"data\": [\n    {\n      \"co2e_in_g\": int,  \n      \"co2e_emissions_wtw_in_g\": int,\n      \"co2e_per_tonne_km_in_g\": int,\n      \"tonne_km\": int,\n      \"reporting_year\": int,\n      \"transportation_mode\": \"string\"\n    }\n  ]\n```\n\nAdditional information may be returned in the response for `DIN-EN-16258`.\n\nThe format is:\n```json\n  \"data\": [\n    {\n      \"energy_factor_ttw_in_MJ\": int,\n      \"energy_factor_wtw_in_MJ\": int,\n      \"ghg_emissions_ttw_in_g\": int,\n      \"ghg_emissions_wtw_in_g\": int\n    }\n  ]\n```\n",
        "properties": {
          "type": {
            "const": "air_freight",
            "examples": [
              "air_freight"
            ]
          },
          "methodology": {
            "type": "string"
          }
        },
        "discriminator": {
          "propertyName": "methodology",
          "mapping": {
            "DIN-EN-16258": "#/components/schemas/Air-Freight-DIN-EN-16258",
            "GLEC": "#/components/schemas/Air-Freight-GLEC"
          }
        },
        "anyOf": [
          {
            "$ref": "#/components/schemas/Air-Freight-DIN-EN-16258"
          },
          {
            "$ref": "#/components/schemas/Air-Freight-GLEC"
          }
        ],
        "Air-Freight-DIN-EN-16258": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Air Freight DIN-EN-16258",
              "properties": {
                "type": {
                  "const": "air_freight",
                  "examples": [
                    "air_freight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "DIN-EN-16258",
                  "description": "Default: `\"GLEC\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/air-freight/air-freight-din-en-16258).\n"
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "weight_in_tonnes": {
                  "$ref": "#/components/schemas/weight_in_tonnes"
                },
                "plane_type": {
                  "type": "string",
                  "enum": [
                    "belly_freighter",
                    "freighter"
                  ],
                  "default": "belly_freighter",
                  "examples": [
                    "belly_freighter"
                  ]
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope",
                  "default": "wtw"
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination",
                "weight_in_tonnes"
              ]
            }
          ]
        },
        "Air-Freight-GLEC": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Air Freight GLEC",
              "properties": {
                "type": {
                  "const": "air_freight",
                  "examples": [
                    "air_freight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "GLEC",
                  "description": "Default: `\"GLEC\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/air-freight/air-freight-glec).\n"
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "weight_in_tonnes": {
                  "$ref": "#/components/schemas/weight_in_tonnes"
                },
                "plane_type": {
                  "type": "string",
                  "enum": [
                    "belly_freighter",
                    "freighter",
                    "average"
                  ],
                  "default": "average",
                  "examples": [
                    "average"
                  ]
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope",
                  "default": "wtw"
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination",
                "weight_in_tonnes"
              ]
            }
          ]
        }
      },
      "bus_origin_destination": {
        "type": "string",
        "title": "bus_origin_destination",
        "description": "SQUAKE will try to resolve the origin/destination regardless of\nits format. Ideally, for addresses use the Post standard, for airports use\nIATA/ICAO code (format: `^[A-Z]{3,4}$`, e.g. `\"MUC\"`), for other locations\nused in trade and transportation use UN/LOCODE codes (format: `^[A-Z]{2}\\W?[A-Z2-9]{3}$`,\ne.g. `\"DEHAM\"`). You can also pass lat/long (format: `^[-+]?\\d{1,3}\\.\\d{1,10}\\s?,\\s?[-+]?\\d{1,3}\\.\\d{1,10}$`,\ne.g. `\"+40.712,-74.006\"`).\n\nUIC code is also a valid format for buses. If the value is not valid, we'll fallback to general, non-journey specific emission data.\nWhen you want to use UIC, you should use the following format: _`provider:uic_code`_, e.g. `sncf:FRAAA`.\nPossible provider prefixes are:\n- `uic`\n- `uic8_sncf`\n- `sncf`\n- `sncf_tvs`\n- `entur`\n- `db`\n- `busbud`\n- `distribusion`\n- `flixbus`\n- `cff`\n- `leoexpress`\n- `obb`\n- `trenitalia`\n- `trenitalia_rtvt`\n- `trenord`\n- `ntv_rtiv`\n- `ntv`\n- `hkx`\n- `renfe`\n- `atoc`\n- `benerail`\n- `westbahn`\n"
      },
      "Bus-DEFRA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Bus DEFRA",
            "properties": {
              "type": {
                "const": "bus",
                "examples": [
                  "bus"
                ]
              },
              "methodology": {
                "const": "DEFRA",
                "examples": [
                  "DEFRA"
                ],
                "description": "Default: `\"SQUAKE\"`.\n\nDetailed description of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/bus/bus-defra).\n"
              },
              "methodology_version": {
                "type": "string",
                "description": "The version of the DEFRA methodology used.",
                "default": "latest",
                "enum": [
                  "2024",
                  "2025",
                  "2026",
                  "latest"
                ],
                "examples": [
                  "2024"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/bus_origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/bus_origin_destination"
              },
              "number_of_travelers": {
                "type": "integer",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope",
                "default": "wtw"
              },
              "bus_type": {
                "type": "string",
                "default": "average_local_bus",
                "example": "average_local_bus",
                "enum": [
                  "local_bus_not_london",
                  "local_bus_london",
                  "average_local_bus",
                  "coach"
                ]
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination"
            ]
          }
        ]
      },
      "Bus-SQUAKE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Bus SQUAKE",
            "properties": {
              "type": {
                "const": "bus",
                "examples": [
                  "bus"
                ]
              },
              "methodology": {
                "const": "SQUAKE",
                "examples": [
                  "SQUAKE"
                ],
                "description": "Default: `\"SQUAKE\"`.\n\nDetailed description of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/bus/bus-squake).\n"
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/bus_origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/bus_origin_destination"
              },
              "number_of_travelers": {
                "type": "integer",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "fuel_type": {
                "type": "string",
                "enum": [
                  "lng",
                  "diesel",
                  "lpg",
                  "phev",
                  "hydrogen",
                  "electricity",
                  "average"
                ],
                "default": "average",
                "example": "diesel"
              },
              "operator_name": {
                "type": "string",
                "example": "flixbus",
                "description": "`SQUAKE`'s methodology allows passing the operator's name to get a more accurate result. Here is [the database](https://squake.notion.site/31f83752e3bd4cf2ba314ceb8fa2acc6?v=5190873dd753431187b735a8fe40038f) with the supported operators. If your operator is not supported, feel free to contact us."
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination"
            ]
          }
        ]
      },
      "Bus": {
        "type": "object",
        "title": "Bus",
        "properties": {
          "type": {
            "const": "bus",
            "examples": [
              "bus"
            ]
          },
          "methodology": {
            "type": "string"
          }
        },
        "discriminator": {
          "propertyName": "methodology",
          "mapping": {
            "DEFRA": "#/components/schemas/Bus-DEFRA",
            "SQUAKE": "#/components/schemas/Bus-SQUAKE"
          }
        },
        "anyOf": [
          {
            "$ref": "#/components/schemas/Bus-DEFRA"
          },
          {
            "$ref": "#/components/schemas/Bus-SQUAKE"
          }
        ],
        "Bus-DEFRA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Bus DEFRA",
              "properties": {
                "type": {
                  "const": "bus",
                  "examples": [
                    "bus"
                  ]
                },
                "methodology": {
                  "const": "DEFRA",
                  "examples": [
                    "DEFRA"
                  ],
                  "description": "Default: `\"SQUAKE\"`.\n\nDetailed description of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/bus/bus-defra).\n"
                },
                "methodology_version": {
                  "type": "string",
                  "description": "The version of the DEFRA methodology used.",
                  "default": "latest",
                  "enum": [
                    "2024",
                    "2025",
                    "2026",
                    "latest"
                  ],
                  "examples": [
                    "2024"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/bus_origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/bus_origin_destination"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope",
                  "default": "wtw"
                },
                "bus_type": {
                  "type": "string",
                  "default": "average_local_bus",
                  "example": "average_local_bus",
                  "enum": [
                    "local_bus_not_london",
                    "local_bus_london",
                    "average_local_bus",
                    "coach"
                  ]
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination"
              ]
            }
          ]
        },
        "Bus-SQUAKE": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Bus SQUAKE",
              "properties": {
                "type": {
                  "const": "bus",
                  "examples": [
                    "bus"
                  ]
                },
                "methodology": {
                  "const": "SQUAKE",
                  "examples": [
                    "SQUAKE"
                  ],
                  "description": "Default: `\"SQUAKE\"`.\n\nDetailed description of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/bus/bus-squake).\n"
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/bus_origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/bus_origin_destination"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "fuel_type": {
                  "type": "string",
                  "enum": [
                    "lng",
                    "diesel",
                    "lpg",
                    "phev",
                    "hydrogen",
                    "electricity",
                    "average"
                  ],
                  "default": "average",
                  "example": "diesel"
                },
                "operator_name": {
                  "type": "string",
                  "example": "flixbus",
                  "description": "`SQUAKE`'s methodology allows passing the operator's name to get a more accurate result. Here is [the database](https://squake.notion.site/31f83752e3bd4cf2ba314ceb8fa2acc6?v=5190873dd753431187b735a8fe40038f) with the supported operators. If your operator is not supported, feel free to contact us."
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination"
              ]
            }
          ]
        }
      },
      "Acriss-Car-Type": {
        "type": "string",
        "enum": [
          "M",
          "N",
          "E",
          "H",
          "C",
          "D",
          "I",
          "J",
          "S",
          "R",
          "F",
          "G",
          "P",
          "U",
          "L",
          "W",
          "X"
        ],
        "description": "Available car types:\n|Code|Description|\n|--|--------|\n|C|Compact|\n|D|Compact Elite|\n|E|Economy|\n|F|Fullsize|\n|G|Fullsize Elite|\n|H|Economy Elite|\n|I|Intermediate|\n|J|Intermediate Elite|\n|L|Luxury|\n|M|Mini|\n|N|Mini Elite|\n|P|Premium|\n|R|Standard Elite|\n|S|Standard|\n|U|Premium Elite|\n|W|Luxury Elite|\n|X|Special|\n",
        "pattern": "^[A-Z]{1}$",
        "default": "E",
        "examples": [
          "E"
        ]
      },
      "SIPP-Car-Code": {
        "type": "string",
        "enum": [
          "CBAN",
          "CBAR",
          "CBMN",
          "CBMR",
          "CCAN",
          "CCAR",
          "CCMD",
          "CCMN",
          "CCMR",
          "CDAN",
          "CDAR",
          "CDMD",
          "CDMN",
          "CDMR",
          "CFAR",
          "CFMN",
          "CFMR",
          "CIMR",
          "CLMR",
          "CPAR",
          "CPMN",
          "CPMR",
          "CTAR",
          "CTMN",
          "CTMR",
          "CVAR",
          "CVMD",
          "CVMR",
          "CWAR",
          "CWMD",
          "CWMN",
          "CWMR",
          "CXAN",
          "CXAR",
          "CXMN",
          "CXMR",
          "EBAN",
          "EBAR",
          "EBMN",
          "EBMR",
          "ECAN",
          "ECAR",
          "ECMD",
          "ECMN",
          "ECMR",
          "EDAN",
          "EDAR",
          "EDMD",
          "EDMN",
          "EDMR",
          "EFAD",
          "EFAR",
          "EFMR",
          "EKMN",
          "ESAR",
          "ESMR",
          "ETAR",
          "ETMN",
          "ETMR",
          "EVMN",
          "EVMR",
          "EWMN",
          "EWMR",
          "EXAR",
          "EXMN",
          "EXMR",
          "FBAR",
          "FCAR",
          "FCMR",
          "FDAD",
          "FDAR",
          "FDMD",
          "FDMN",
          "FDMR",
          "FFAN",
          "FFAR",
          "FFMN",
          "FFMR",
          "FIAR",
          "FIMR",
          "FPAR",
          "FPMR",
          "FTAR",
          "FTMR",
          "FVAN",
          "FVAR",
          "FVMD",
          "FVMN",
          "FVMR",
          "FWAD",
          "FWAR",
          "FWMR",
          "FXAR",
          "FXMR",
          "GVAR",
          "GVMR",
          "IBAR",
          "IBMD",
          "IBMR",
          "ICAN",
          "ICAR",
          "ICMN",
          "ICMR",
          "IDAD",
          "IDAN",
          "IDAR",
          "IDMD",
          "IDMN",
          "IDMR",
          "IFAN",
          "IFAR",
          "IFMN",
          "IFMR",
          "IGMR",
          "IIMR",
          "IJAR",
          "IJMR",
          "ILMR",
          "IPMR",
          "ITAR",
          "ITMN",
          "ITMR",
          "IVAN",
          "IVAR",
          "IVMN",
          "IVMR",
          "IWAN",
          "IWAR",
          "IWMD",
          "IWMN",
          "IWMR",
          "IXAR",
          "IXMN",
          "IXMR",
          "JFAR",
          "LCAN",
          "LCAR",
          "LCMR",
          "LDAD",
          "LDAR",
          "LDMR",
          "LFAR",
          "LFMR",
          "LSAR",
          "LSMR",
          "LTAR",
          "LTMR",
          "LVAN",
          "LVAR",
          "LVMN",
          "LVMR",
          "LWAR",
          "LXAR",
          "MBAR",
          "MBMN",
          "MBMR",
          "MCAR",
          "MCMN",
          "MCMR",
          "MDAR",
          "MDMN",
          "MDMR",
          "MFMR",
          "MTAN",
          "MTMN",
          "MTMR",
          "MVAR",
          "MVMN",
          "MVMR",
          "MXAR",
          "MXMN",
          "MXMR",
          "NTAN",
          "NTMN",
          "PCAR",
          "PCMR",
          "PDAD",
          "PDAR",
          "PDMD",
          "PDMN",
          "PDMR",
          "PFAR",
          "PFMN",
          "PFMR",
          "PIAR",
          "PSAR",
          "PTAR",
          "PTMR",
          "PVAR",
          "PVMN",
          "PVMR",
          "PWAR",
          "PWMN",
          "PWMR",
          "PXAR",
          "PXMR",
          "RVMR",
          "SBAR",
          "SCAN",
          "SCAR",
          "SCMD",
          "SCMN",
          "SCMR",
          "SDAD",
          "SDAN",
          "SDAR",
          "SDMD",
          "SDMN",
          "SDMR",
          "SFAN",
          "SFAR",
          "SFMN",
          "SFMR",
          "STAR",
          "STMR",
          "SVAN",
          "SVAR",
          "SVMD",
          "SVMN",
          "SVMR",
          "SWAN",
          "SWAR",
          "SWMD",
          "SWMN",
          "SWMR",
          "SXMR",
          "XBAR",
          "XCAR",
          "XCMN",
          "XCMR",
          "XDAR",
          "XDMN",
          "XDMR",
          "XFAR",
          "XFMN",
          "XFMR",
          "XJAR",
          "XPMN",
          "XRAR",
          "XSAR",
          "XTAR",
          "XWAR",
          "XXAR"
        ],
        "title": "SIPP Car Code",
        "description": "If `acriss_car_type` is not passed then SQUAKE will automatically resolve it using the SIPP code.\n\n**Mutually exclusive** with `pseudo_car_type`, only one can be given at the same time.\n",
        "examples": [
          "SDAN"
        ]
      },
      "Pseudo-Car-Code": {
        "type": "string",
        "enum": [
          "ACAR",
          "ACGO",
          "ACNV",
          "ACPG",
          "ACPR",
          "ACRS",
          "ADSL",
          "AEIG",
          "AELC",
          "AELT",
          "AETH",
          "AFWD",
          "AGRN",
          "AHYB",
          "AHYD",
          "ALLB",
          "ALLC",
          "ALLD",
          "ALMO",
          "AMAN",
          "AMCY",
          "AMFP",
          "AMNO",
          "AMTO",
          "ANIN",
          "AOFR",
          "APET",
          "APUP",
          "AREC",
          "ASEV",
          "ASIX",
          "ASPC",
          "ASPT",
          "ASUV",
          "ATRV",
          "AUTO",
          "AVAN",
          "AWGN"
        ],
        "title": "Pseudo-Car-Code",
        "description": "If neither `acriss_car_type` nor `sipp_car_type` are not\npassed, then SQUAKE will automatically resolve it using the Pseudo code.\n\n**Mutually exclusive** with `sipp_car_type`, only one can be given at the same time.\n",
        "examples": [
          "ACAR"
        ]
      },
      "Number-Of-Days": {
        "type": "integer",
        "minimum": 1,
        "examples": [
          3
        ],
        "description": "When the trip distance is unknown, you may pass `number_of_days`. The API will estimate `distance_in_km` as:\n`estimated_distance_in_km = number_of_days * 60`\n"
      },
      "Car-ACRISS": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Car ACRISS",
            "examples": [],
            "required": [
              "type",
              "methodology",
              "origin",
              "destination"
            ],
            "properties": {
              "type": {
                "const": "car",
                "examples": [
                  "car"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "ACRISS",
                "description": "ACRISS methodology uses tank-to-wheel factors, therefore it might return 0 emissions for electric cars.\n\nDefault: `\"DEFRA\"`. Detailed methodology description can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/car/car-acriss).\n",
                "examples": [
                  "ACRISS"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "fuel_type": {
                "type": "string",
                "enum": [
                  "diesel",
                  "petrol",
                  "electricity",
                  "hev",
                  "phev"
                ],
                "default": "petrol",
                "examples": [
                  "petrol"
                ]
              },
              "acriss_car_type": {
                "$ref": "#/components/schemas/Acriss-Car-Type",
                "default": "E"
              },
              "sipp_car_type": {
                "$ref": "#/components/schemas/SIPP-Car-Code"
              },
              "pseudo_car_type": {
                "$ref": "#/components/schemas/Pseudo-Car-Code"
              },
              "number_of_days": {
                "$ref": "#/components/schemas/Number-Of-Days"
              }
            }
          }
        ]
      },
      "Car-DEFRA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Car DEFRA",
            "examples": [],
            "required": [
              "type",
              "methodology",
              "origin",
              "destination"
            ],
            "properties": {
              "type": {
                "const": "car",
                "examples": [
                  "car"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "DEFRA",
                "description": "Default: `\"DEFRA\"`.\n\nDetailed methodology description can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/car/car-defra).\n",
                "examples": [
                  "DEFRA"
                ]
              },
              "methodology_version": {
                "type": "string",
                "description": "The version of the DEFRA methodology used.",
                "default": "latest",
                "enum": [
                  "2018",
                  "2019",
                  "2020",
                  "2021",
                  "2022",
                  "2023",
                  "2024",
                  "2025",
                  "2026",
                  "latest"
                ],
                "examples": [
                  "2024"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "fuel_type": {
                "type": "string",
                "default": "average",
                "enum": [
                  "diesel",
                  "petrol",
                  "average",
                  "electricity",
                  "hev",
                  "cng",
                  "lpg",
                  "phev"
                ],
                "examples": [
                  "petrol"
                ]
              },
              "car_type": {
                "type": "string",
                "default": "average",
                "enum": [
                  "mini",
                  "supermini",
                  "lower_medium",
                  "upper_medium",
                  "executive",
                  "luxury",
                  "sports",
                  "dual_purpose_4x4",
                  "mpv",
                  "average"
                ],
                "examples": [
                  "sports"
                ]
              },
              "acriss_car_type": {
                "$ref": "#/components/schemas/Acriss-Car-Type"
              },
              "sipp_car_type": {
                "$ref": "#/components/schemas/SIPP-Car-Code"
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope"
              },
              "number_of_days": {
                "$ref": "#/components/schemas/Number-Of-Days"
              }
            }
          }
        ]
      },
      "Car-BASIC": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Car BASIC",
            "examples": [],
            "required": [
              "type",
              "methodology",
              "origin",
              "destination"
            ],
            "properties": {
              "type": {
                "const": "car",
                "examples": [
                  "car"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "BASIC",
                "description": "Default: `\"DEFRA\"`.\n",
                "examples": [
                  "BASIC"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "fuel_type": {
                "type": "string",
                "enum": [
                  "diesel",
                  "electricity",
                  "petrol",
                  "ethanol",
                  "bio_diesel",
                  "lpg",
                  "hydrogen",
                  "hvo"
                ],
                "examples": [
                  "petrol"
                ]
              },
              "co2_grams_per_km": {
                "type": "number",
                "description": "CO2 amount in grams per kilometer.",
                "minimum": 0,
                "examples": [
                  110.4
                ]
              },
              "consumption_per_100_km": {
                "type": "number",
                "description": "Consumption per 100 kilometer.",
                "minimum": 0,
                "maximum": 1000,
                "examples": [
                  8.5
                ]
              },
              "number_of_days": {
                "$ref": "#/components/schemas/Number-Of-Days"
              }
            }
          }
        ]
      },
      "Car-EU-EEA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Car EU-EEA",
            "examples": [],
            "required": [
              "type",
              "methodology",
              "origin",
              "destination"
            ],
            "properties": {
              "type": {
                "const": "car",
                "examples": [
                  "car"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "EU-EEA",
                "description": "Default: `\"DEFRA\"`.\n\nDetailed methodology description can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/car/car-eea).\n",
                "examples": [
                  "EU-EEA"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "fuel_type": {
                "type": "string",
                "default": "petrol",
                "enum": [
                  "diesel",
                  "petrol",
                  "hybrid_petrol",
                  "hybrid_diesel",
                  "ng",
                  "ng-biomethane",
                  "hydrogen",
                  "e85",
                  "average",
                  "biodiesel",
                  "electricity",
                  "lpg"
                ],
                "examples": [
                  "petrol"
                ]
              },
              "manufacturer": {
                "type": "string",
                "examples": [
                  "mercedes_benz"
                ]
              },
              "model": {
                "type": "string",
                "examples": [
                  "500sel"
                ]
              },
              "model_year": {
                "type": "integer",
                "examples": [
                  1985
                ]
              },
              "country": {
                "$ref": "#/components/schemas/country"
              },
              "electric_energy_consumption_in_kw": {
                "type": "number"
              },
              "engine_capacity_in_cubic_cm": {
                "type": "number"
              },
              "number_of_days": {
                "$ref": "#/components/schemas/Number-Of-Days"
              }
            }
          }
        ]
      },
      "Car-US-EPA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Car US-EPA",
            "examples": [],
            "required": [
              "type",
              "methodology",
              "origin",
              "destination"
            ],
            "properties": {
              "type": {
                "const": "car",
                "examples": [
                  "car"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "US-EPA",
                "description": "Default: `\"DEFRA\"`.\n\nDetailed methodology description can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/car/car-epa).\n",
                "examples": [
                  "US-EPA"
                ]
              },
              "methodology_version": {
                "type": "string",
                "description": "The version of the US EPA methodology used. Used when passing only 'distance_in_km', if other properties are provided then the version will be ignored.",
                "default": "latest",
                "enum": [
                  "2011",
                  "2012",
                  "2013",
                  "2014",
                  "2015",
                  "2016",
                  "2017",
                  "2018",
                  "2019",
                  "2020",
                  "2021",
                  "2022",
                  "2023",
                  "2024",
                  "2025",
                  "latest"
                ],
                "examples": [
                  "latest",
                  "2025",
                  "2011"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "fuel_type": {
                "type": "string",
                "default": "regular_gasoline",
                "enum": [
                  "diesel",
                  "electricity",
                  "midgrade_gasoline",
                  "natural_gas",
                  "premium_gasoline",
                  "regular_gasoline",
                  "propane"
                ],
                "examples": [
                  "diesel"
                ]
              },
              "manufacturer": {
                "type": "string",
                "examples": [
                  "mercedes_benz"
                ]
              },
              "model": {
                "type": "string",
                "examples": [
                  "500sel"
                ]
              },
              "model_year": {
                "type": "integer",
                "examples": [
                  1985
                ]
              },
              "epa_vehicle_size_class": {
                "type": "string",
                "description": "EPA size class has a specific division of car sizes according to `US-EPA`.",
                "examples": [
                  "midsize_cars"
                ]
              },
              "specific_transmission": {
                "type": "string",
                "description": "Specific transmission type of the car.",
                "examples": [
                  "automatic_4_spd"
                ]
              },
              "engine_displacement_in_liters": {
                "type": "number",
                "description": "Engine displacement in liters.",
                "examples": [
                  5
                ]
              },
              "epa_model_type_index": {
                "type": "integer",
                "description": "A specific index of a car model according to `US-EPA`.",
                "examples": [
                  27914
                ]
              },
              "engine_cylinders": {
                "type": "integer",
                "description": "Number of engine cylinders.",
                "examples": [
                  8
                ]
              },
              "number_of_days": {
                "$ref": "#/components/schemas/Number-Of-Days"
              }
            }
          }
        ]
      },
      "Car": {
        "type": "object",
        "title": "Car",
        "description": "`US-EPA` is the methodology from the \"United States Environmental Protection Agency\".\n\n`EU-EEA` is the methodology from the \"European Energy Agency\". `ACRISS` methodology uses tank-to-wheel factors, therefore\n        it might return 0 emissions for electric cars.\nIf you have more details available, use `EU-EEA` and `US-EPA` methodologies\n    for a more precise result. In case of using `BASIC`, you must provide either\n    `co2_grams_per_km` or consumption_per_100_km` and `fuel_type.\n",
        "examples": [],
        "required": [
          "type",
          "methodology",
          "origin",
          "destination"
        ],
        "properties": {
          "type": {
            "const": "car",
            "examples": [
              "car"
            ]
          },
          "methodology": {
            "type": "string"
          }
        },
        "discriminator": {
          "propertyName": "methodology",
          "mapping": {
            "ACRISS": "#/components/schemas/Car-ACRISS",
            "DEFRA": "#/components/schemas/Car-DEFRA",
            "BASIC": "#/components/schemas/Car-BASIC",
            "EU-EEA": "#/components/schemas/Car-EU-EEA",
            "US-EPA": "#/components/schemas/Car-US-EPA"
          }
        },
        "anyOf": [
          {
            "$ref": "#/components/schemas/Car-ACRISS"
          },
          {
            "$ref": "#/components/schemas/Car-DEFRA"
          },
          {
            "$ref": "#/components/schemas/Car-BASIC"
          },
          {
            "$ref": "#/components/schemas/Car-EU-EEA"
          },
          {
            "$ref": "#/components/schemas/Car-US-EPA"
          }
        ],
        "Car-ACRISS": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Car ACRISS",
              "examples": [],
              "required": [
                "type",
                "methodology",
                "origin",
                "destination"
              ],
              "properties": {
                "type": {
                  "const": "car",
                  "examples": [
                    "car"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "ACRISS",
                  "description": "ACRISS methodology uses tank-to-wheel factors, therefore it might return 0 emissions for electric cars.\n\nDefault: `\"DEFRA\"`. Detailed methodology description can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/car/car-acriss).\n",
                  "examples": [
                    "ACRISS"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "fuel_type": {
                  "type": "string",
                  "enum": [
                    "diesel",
                    "petrol",
                    "electricity",
                    "hev",
                    "phev"
                  ],
                  "default": "petrol",
                  "examples": [
                    "petrol"
                  ]
                },
                "acriss_car_type": {
                  "$ref": "#/components/schemas/Acriss-Car-Type",
                  "default": "E"
                },
                "sipp_car_type": {
                  "$ref": "#/components/schemas/SIPP-Car-Code"
                },
                "pseudo_car_type": {
                  "$ref": "#/components/schemas/Pseudo-Car-Code"
                },
                "number_of_days": {
                  "$ref": "#/components/schemas/Number-Of-Days"
                }
              }
            }
          ]
        },
        "Car-DEFRA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Car DEFRA",
              "examples": [],
              "required": [
                "type",
                "methodology",
                "origin",
                "destination"
              ],
              "properties": {
                "type": {
                  "const": "car",
                  "examples": [
                    "car"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "DEFRA",
                  "description": "Default: `\"DEFRA\"`.\n\nDetailed methodology description can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/car/car-defra).\n",
                  "examples": [
                    "DEFRA"
                  ]
                },
                "methodology_version": {
                  "type": "string",
                  "description": "The version of the DEFRA methodology used.",
                  "default": "latest",
                  "enum": [
                    "2018",
                    "2019",
                    "2020",
                    "2021",
                    "2022",
                    "2023",
                    "2024",
                    "2025",
                    "2026",
                    "latest"
                  ],
                  "examples": [
                    "2024"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "fuel_type": {
                  "type": "string",
                  "default": "average",
                  "enum": [
                    "diesel",
                    "petrol",
                    "average",
                    "electricity",
                    "hev",
                    "cng",
                    "lpg",
                    "phev"
                  ],
                  "examples": [
                    "petrol"
                  ]
                },
                "car_type": {
                  "type": "string",
                  "default": "average",
                  "enum": [
                    "mini",
                    "supermini",
                    "lower_medium",
                    "upper_medium",
                    "executive",
                    "luxury",
                    "sports",
                    "dual_purpose_4x4",
                    "mpv",
                    "average"
                  ],
                  "examples": [
                    "sports"
                  ]
                },
                "acriss_car_type": {
                  "$ref": "#/components/schemas/Acriss-Car-Type"
                },
                "sipp_car_type": {
                  "$ref": "#/components/schemas/SIPP-Car-Code"
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope"
                },
                "number_of_days": {
                  "$ref": "#/components/schemas/Number-Of-Days"
                }
              }
            }
          ]
        },
        "Car-BASIC": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Car BASIC",
              "examples": [],
              "required": [
                "type",
                "methodology",
                "origin",
                "destination"
              ],
              "properties": {
                "type": {
                  "const": "car",
                  "examples": [
                    "car"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "BASIC",
                  "description": "Default: `\"DEFRA\"`.\n",
                  "examples": [
                    "BASIC"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "fuel_type": {
                  "type": "string",
                  "enum": [
                    "diesel",
                    "electricity",
                    "petrol",
                    "ethanol",
                    "bio_diesel",
                    "lpg",
                    "hydrogen",
                    "hvo"
                  ],
                  "examples": [
                    "petrol"
                  ]
                },
                "co2_grams_per_km": {
                  "type": "number",
                  "description": "CO2 amount in grams per kilometer.",
                  "minimum": 0,
                  "examples": [
                    110.4
                  ]
                },
                "consumption_per_100_km": {
                  "type": "number",
                  "description": "Consumption per 100 kilometer.",
                  "minimum": 0,
                  "maximum": 1000,
                  "examples": [
                    8.5
                  ]
                },
                "number_of_days": {
                  "$ref": "#/components/schemas/Number-Of-Days"
                }
              }
            }
          ]
        },
        "Car-EU-EEA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Car EU-EEA",
              "examples": [],
              "required": [
                "type",
                "methodology",
                "origin",
                "destination"
              ],
              "properties": {
                "type": {
                  "const": "car",
                  "examples": [
                    "car"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "EU-EEA",
                  "description": "Default: `\"DEFRA\"`.\n\nDetailed methodology description can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/car/car-eea).\n",
                  "examples": [
                    "EU-EEA"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "fuel_type": {
                  "type": "string",
                  "default": "petrol",
                  "enum": [
                    "diesel",
                    "petrol",
                    "hybrid_petrol",
                    "hybrid_diesel",
                    "ng",
                    "ng-biomethane",
                    "hydrogen",
                    "e85",
                    "average",
                    "biodiesel",
                    "electricity",
                    "lpg"
                  ],
                  "examples": [
                    "petrol"
                  ]
                },
                "manufacturer": {
                  "type": "string",
                  "examples": [
                    "mercedes_benz"
                  ]
                },
                "model": {
                  "type": "string",
                  "examples": [
                    "500sel"
                  ]
                },
                "model_year": {
                  "type": "integer",
                  "examples": [
                    1985
                  ]
                },
                "country": {
                  "$ref": "#/components/schemas/country"
                },
                "electric_energy_consumption_in_kw": {
                  "type": "number"
                },
                "engine_capacity_in_cubic_cm": {
                  "type": "number"
                },
                "number_of_days": {
                  "$ref": "#/components/schemas/Number-Of-Days"
                }
              }
            }
          ]
        },
        "Car-US-EPA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Car US-EPA",
              "examples": [],
              "required": [
                "type",
                "methodology",
                "origin",
                "destination"
              ],
              "properties": {
                "type": {
                  "const": "car",
                  "examples": [
                    "car"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "US-EPA",
                  "description": "Default: `\"DEFRA\"`.\n\nDetailed methodology description can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/car/car-epa).\n",
                  "examples": [
                    "US-EPA"
                  ]
                },
                "methodology_version": {
                  "type": "string",
                  "description": "The version of the US EPA methodology used. Used when passing only 'distance_in_km', if other properties are provided then the version will be ignored.",
                  "default": "latest",
                  "enum": [
                    "2011",
                    "2012",
                    "2013",
                    "2014",
                    "2015",
                    "2016",
                    "2017",
                    "2018",
                    "2019",
                    "2020",
                    "2021",
                    "2022",
                    "2023",
                    "2024",
                    "2025",
                    "latest"
                  ],
                  "examples": [
                    "latest",
                    "2025",
                    "2011"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "fuel_type": {
                  "type": "string",
                  "default": "regular_gasoline",
                  "enum": [
                    "diesel",
                    "electricity",
                    "midgrade_gasoline",
                    "natural_gas",
                    "premium_gasoline",
                    "regular_gasoline",
                    "propane"
                  ],
                  "examples": [
                    "diesel"
                  ]
                },
                "manufacturer": {
                  "type": "string",
                  "examples": [
                    "mercedes_benz"
                  ]
                },
                "model": {
                  "type": "string",
                  "examples": [
                    "500sel"
                  ]
                },
                "model_year": {
                  "type": "integer",
                  "examples": [
                    1985
                  ]
                },
                "epa_vehicle_size_class": {
                  "type": "string",
                  "description": "EPA size class has a specific division of car sizes according to `US-EPA`.",
                  "examples": [
                    "midsize_cars"
                  ]
                },
                "specific_transmission": {
                  "type": "string",
                  "description": "Specific transmission type of the car.",
                  "examples": [
                    "automatic_4_spd"
                  ]
                },
                "engine_displacement_in_liters": {
                  "type": "number",
                  "description": "Engine displacement in liters.",
                  "examples": [
                    5
                  ]
                },
                "epa_model_type_index": {
                  "type": "integer",
                  "description": "A specific index of a car model according to `US-EPA`.",
                  "examples": [
                    27914
                  ]
                },
                "engine_cylinders": {
                  "type": "integer",
                  "description": "Number of engine cylinders.",
                  "examples": [
                    8
                  ]
                },
                "number_of_days": {
                  "$ref": "#/components/schemas/Number-Of-Days"
                }
              }
            }
          ]
        },
        "Acriss-Car-Type": {
          "type": "string",
          "enum": [
            "M",
            "N",
            "E",
            "H",
            "C",
            "D",
            "I",
            "J",
            "S",
            "R",
            "F",
            "G",
            "P",
            "U",
            "L",
            "W",
            "X"
          ],
          "description": "Available car types:\n|Code|Description|\n|--|--------|\n|C|Compact|\n|D|Compact Elite|\n|E|Economy|\n|F|Fullsize|\n|G|Fullsize Elite|\n|H|Economy Elite|\n|I|Intermediate|\n|J|Intermediate Elite|\n|L|Luxury|\n|M|Mini|\n|N|Mini Elite|\n|P|Premium|\n|R|Standard Elite|\n|S|Standard|\n|U|Premium Elite|\n|W|Luxury Elite|\n|X|Special|\n",
          "pattern": "^[A-Z]{1}$",
          "default": "E",
          "examples": [
            "E"
          ]
        },
        "SIPP-Car-Code": {
          "type": "string",
          "enum": [
            "CBAN",
            "CBAR",
            "CBMN",
            "CBMR",
            "CCAN",
            "CCAR",
            "CCMD",
            "CCMN",
            "CCMR",
            "CDAN",
            "CDAR",
            "CDMD",
            "CDMN",
            "CDMR",
            "CFAR",
            "CFMN",
            "CFMR",
            "CIMR",
            "CLMR",
            "CPAR",
            "CPMN",
            "CPMR",
            "CTAR",
            "CTMN",
            "CTMR",
            "CVAR",
            "CVMD",
            "CVMR",
            "CWAR",
            "CWMD",
            "CWMN",
            "CWMR",
            "CXAN",
            "CXAR",
            "CXMN",
            "CXMR",
            "EBAN",
            "EBAR",
            "EBMN",
            "EBMR",
            "ECAN",
            "ECAR",
            "ECMD",
            "ECMN",
            "ECMR",
            "EDAN",
            "EDAR",
            "EDMD",
            "EDMN",
            "EDMR",
            "EFAD",
            "EFAR",
            "EFMR",
            "EKMN",
            "ESAR",
            "ESMR",
            "ETAR",
            "ETMN",
            "ETMR",
            "EVMN",
            "EVMR",
            "EWMN",
            "EWMR",
            "EXAR",
            "EXMN",
            "EXMR",
            "FBAR",
            "FCAR",
            "FCMR",
            "FDAD",
            "FDAR",
            "FDMD",
            "FDMN",
            "FDMR",
            "FFAN",
            "FFAR",
            "FFMN",
            "FFMR",
            "FIAR",
            "FIMR",
            "FPAR",
            "FPMR",
            "FTAR",
            "FTMR",
            "FVAN",
            "FVAR",
            "FVMD",
            "FVMN",
            "FVMR",
            "FWAD",
            "FWAR",
            "FWMR",
            "FXAR",
            "FXMR",
            "GVAR",
            "GVMR",
            "IBAR",
            "IBMD",
            "IBMR",
            "ICAN",
            "ICAR",
            "ICMN",
            "ICMR",
            "IDAD",
            "IDAN",
            "IDAR",
            "IDMD",
            "IDMN",
            "IDMR",
            "IFAN",
            "IFAR",
            "IFMN",
            "IFMR",
            "IGMR",
            "IIMR",
            "IJAR",
            "IJMR",
            "ILMR",
            "IPMR",
            "ITAR",
            "ITMN",
            "ITMR",
            "IVAN",
            "IVAR",
            "IVMN",
            "IVMR",
            "IWAN",
            "IWAR",
            "IWMD",
            "IWMN",
            "IWMR",
            "IXAR",
            "IXMN",
            "IXMR",
            "JFAR",
            "LCAN",
            "LCAR",
            "LCMR",
            "LDAD",
            "LDAR",
            "LDMR",
            "LFAR",
            "LFMR",
            "LSAR",
            "LSMR",
            "LTAR",
            "LTMR",
            "LVAN",
            "LVAR",
            "LVMN",
            "LVMR",
            "LWAR",
            "LXAR",
            "MBAR",
            "MBMN",
            "MBMR",
            "MCAR",
            "MCMN",
            "MCMR",
            "MDAR",
            "MDMN",
            "MDMR",
            "MFMR",
            "MTAN",
            "MTMN",
            "MTMR",
            "MVAR",
            "MVMN",
            "MVMR",
            "MXAR",
            "MXMN",
            "MXMR",
            "NTAN",
            "NTMN",
            "PCAR",
            "PCMR",
            "PDAD",
            "PDAR",
            "PDMD",
            "PDMN",
            "PDMR",
            "PFAR",
            "PFMN",
            "PFMR",
            "PIAR",
            "PSAR",
            "PTAR",
            "PTMR",
            "PVAR",
            "PVMN",
            "PVMR",
            "PWAR",
            "PWMN",
            "PWMR",
            "PXAR",
            "PXMR",
            "RVMR",
            "SBAR",
            "SCAN",
            "SCAR",
            "SCMD",
            "SCMN",
            "SCMR",
            "SDAD",
            "SDAN",
            "SDAR",
            "SDMD",
            "SDMN",
            "SDMR",
            "SFAN",
            "SFAR",
            "SFMN",
            "SFMR",
            "STAR",
            "STMR",
            "SVAN",
            "SVAR",
            "SVMD",
            "SVMN",
            "SVMR",
            "SWAN",
            "SWAR",
            "SWMD",
            "SWMN",
            "SWMR",
            "SXMR",
            "XBAR",
            "XCAR",
            "XCMN",
            "XCMR",
            "XDAR",
            "XDMN",
            "XDMR",
            "XFAR",
            "XFMN",
            "XFMR",
            "XJAR",
            "XPMN",
            "XRAR",
            "XSAR",
            "XTAR",
            "XWAR",
            "XXAR"
          ],
          "title": "SIPP Car Code",
          "description": "If `acriss_car_type` is not passed then SQUAKE will automatically resolve it using the SIPP code.\n\n**Mutually exclusive** with `pseudo_car_type`, only one can be given at the same time.\n",
          "examples": [
            "SDAN"
          ]
        },
        "Pseudo-Car-Code": {
          "type": "string",
          "enum": [
            "ACAR",
            "ACGO",
            "ACNV",
            "ACPG",
            "ACPR",
            "ACRS",
            "ADSL",
            "AEIG",
            "AELC",
            "AELT",
            "AETH",
            "AFWD",
            "AGRN",
            "AHYB",
            "AHYD",
            "ALLB",
            "ALLC",
            "ALLD",
            "ALMO",
            "AMAN",
            "AMCY",
            "AMFP",
            "AMNO",
            "AMTO",
            "ANIN",
            "AOFR",
            "APET",
            "APUP",
            "AREC",
            "ASEV",
            "ASIX",
            "ASPC",
            "ASPT",
            "ASUV",
            "ATRV",
            "AUTO",
            "AVAN",
            "AWGN"
          ],
          "title": "Pseudo-Car-Code",
          "description": "If neither `acriss_car_type` nor `sipp_car_type` are not\npassed, then SQUAKE will automatically resolve it using the Pseudo code.\n\n**Mutually exclusive** with `sipp_car_type`, only one can be given at the same time.\n",
          "examples": [
            "ACAR"
          ]
        },
        "Number-Of-Days": {
          "type": "integer",
          "minimum": 1,
          "examples": [
            3
          ],
          "description": "When the trip distance is unknown, you may pass `number_of_days`. The API will estimate `distance_in_km` as:\n`estimated_distance_in_km = number_of_days * 60`\n"
        }
      },
      "Coffee-Production": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Coffee Production",
            "properties": {
              "type": {
                "const": "coffee_production"
              },
              "methodology": {
                "const": "SQUAKE",
                "default": "SQUAKE",
                "examples": [
                  "SQUAKE"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "country": {
                "type": "string",
                "enum": [
                  "BR",
                  "CI",
                  "CO",
                  "CR",
                  "ET",
                  "GN",
                  "HN",
                  "IN",
                  "PE",
                  "UG",
                  "VN",
                  "average"
                ],
                "description": "Alpha2 country code of the coffee-producing country",
                "default": "average",
                "examples": [
                  "BR"
                ]
              },
              "organic": {
                "type": "boolean",
                "description": "Whether the coffee is organic or not.",
                "default": false
              },
              "quantity": {
                "type": "number",
                "description": "The quantity of coffee in `unit`.",
                "format": "float",
                "minimum": 1,
                "examples": [
                  3.2
                ]
              },
              "unit": {
                "$ref": "#/components/schemas/carbon_unit"
              }
            },
            "required": [
              "type",
              "methodology",
              "quantity"
            ]
          }
        ]
      },
      "Event": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Event",
            "description": "Use one of the available options for calculation depending on the available parameters.",
            "properties": {
              "type": {
                "const": "event",
                "examples": [
                  "event"
                ]
              },
              "methodology": {
                "const": "HCMI",
                "description": "Detailed methodology description can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/event/event-hcmi).",
                "examples": [
                  "HCMI"
                ],
                "default": "HCMI"
              },
              "methodology_version": {
                "type": "string",
                "description": "The HCMI/CHSB dataset year. Omit or use `latest` for the latest stable year (`2026`).",
                "default": "latest",
                "enum": [
                  "2015",
                  "2016",
                  "2017",
                  "2018",
                  "2019",
                  "2020",
                  "2021",
                  "2023",
                  "2024",
                  "2026",
                  "latest"
                ],
                "examples": [
                  "2024"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "stars": {
                "type": "integer",
                "description": "`stars` is mutually exclusive with `hotel_type`, `stars` is prioritized over `hotel_type`.",
                "format": "int32",
                "minimum": 1,
                "maximum": 5,
                "examples": [
                  5
                ]
              },
              "country": {
                "$ref": "#/components/schemas/country"
              },
              "city": {
                "type": "string",
                "description": "You can find the list of supported cities [here](https://squake.notion.site/51e2eb5f9e484c4dad4ceb100d2b90bb?v=013db568cf4c4dbd8403ab5f329458bf)."
              },
              "state": {
                "type": "string",
                "description": "You can find the list of supported states [here](https://squake.notion.site/66a1450838b84494b0a17684b578ffa0?v=d1ee83f184cc4856bfa2a3f23a15c9ff)."
              },
              "square_meters": {
                "type": "number",
                "format": "double",
                "minimum": 1,
                "examples": [
                  120
                ]
              },
              "number_of_days": {
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "examples": [
                  5
                ]
              },
              "hotel_type": {
                "type": "string",
                "enum": [
                  "airport_location",
                  "convention_hotel",
                  "extended_stay",
                  "full_service_nonresort",
                  "full_service_resort",
                  "hotel_average",
                  "integrated_resort",
                  "limited_service",
                  "luxury_segment_nonresort",
                  "luxury_segment_resort",
                  "nonresort",
                  "resort",
                  "rural_highway_location",
                  "small_metro_town_location",
                  "suburban_location",
                  "upper_midscale_segment_nonresort",
                  "upper_midscale_segmentnonresort",
                  "upper_upscale_segment_nonresort",
                  "upper_upscale_segment_resort",
                  "upscale_segment_nonresort",
                  "upscale_segment_resort",
                  "urban_location"
                ],
                "description": "`hotel_type` is mutually exclusive with `stars`. `stars` is prioritized over `hotel_type`.",
                "default": "hotel_average",
                "examples": [
                  "hotel_average"
                ]
              }
            },
            "required": [
              "type",
              "methodology",
              "country",
              "square_meters",
              "number_of_days"
            ]
          }
        ]
      },
      "MerchantName": {
        "type": "string",
        "enum": [
          "buckaroo*swapfiets",
          "donkey.bike",
          "easyparkb.v.",
          "eshop.sz.si",
          "freshmile*plbii8ysho",
          "hopp.bike",
          "https://www.ns.nl/",
          "ignitride.com",
          "ing*prod.europodroze.p",
          "lim*temphold",
          "mol*includingbikes",
          "mps*vwwechargeeur",
          "nearme.",
          "parkster.com/de",
          "paypal*dbvertriebg",
          "poferries(web)",
          "pyu*uber",
          "suntransfers.com",
          "teslainc.",
          "uber*rides*dl",
          "ubr*pending.uber.com",
          "www.mopla.solutions",
          "www.veoride.com",
          "yego*ride11min",
          "a1",
          "abc",
          "abodeinauto",
          "aboeinauto",
          "accel",
          "agip",
          "airportbusmunich",
          "akpet",
          "amoco",
          "ampol",
          "aobairportbus",
          "aobairportbusbusweb",
          "aobairportbusweb",
          "apco",
          "aral",
          "arco",
          "asda",
          "avanti",
          "avocargo",
          "bapco",
          "bayerischeregiobahn",
          "berlinerverkehrsbetri",
          "berlinerverkehrsbetriebe",
          "bharatpetroleum",
          "bicimad",
          "bird",
          "bkk",
          "bkkbudapestgo",
          "bkkbudapestgokartyar",
          "bkkkartyar",
          "blablacar",
          "blunavy",
          "blunavyferries",
          "blunavytraghetti",
          "bndinavigazione",
          "bndinavigazionespa",
          "bolt",
          "bonnet",
          "bonnetev",
          "bonnetevcharging",
          "bp",
          "brb",
          "buckarooswapfiets",
          "budapestgo",
          "budapestgokartyar",
          "burmah",
          "bvg",
          "cabify",
          "callabike",
          "caltex",
          "cepsa",
          "cfl",
          "cflgroupe",
          "cflmobility",
          "chargeassist",
          "chargemap",
          "chevron",
          "circ",
          "citylink",
          "clark",
          "cluno",
          "compagniedestransportsstrasbourgeois",
          "cooltra",
          "cosan",
          "cts",
          "dance",
          "db",
          "dbvertrieb",
          "dbvertriebg",
          "dcs",
          "delek",
          "deutschebahn",
          "digitalchargingsoluti",
          "digitalchargingsolutions",
          "digitalchargingsolutionsdcs",
          "digitalchargingsolutionsgmbh",
          "digitalchargingsolutionsgmbhdcs",
          "donkeybike",
          "donkeyrepublic",
          "dot",
          "dresdnerverkehrsbetriebe",
          "dvb",
          "easypark",
          "easyparkbv",
          "easyparkgmbh",
          "ecobici",
          "eddy",
          "elf",
          "emmy",
          "emtbicimad",
          "enbw",
          "enbwenergie",
          "enbwenergiebadenwuer",
          "enbwenergiebadenwuertt",
          "enbwenergiebadenwuettenberg",
          "enbwenergiebadenwuttenberg",
          "eneos",
          "engen",
          "eni",
          "eshopszsi",
          "esso",
          "essoimperialoil",
          "europodroze",
          "exxon",
          "exxonmobil",
          "fairtiq",
          "fairtiqaustriaapp",
          "faritiqapp",
          "faritiqaustria",
          "faritiqaustriaapp",
          "fastned",
          "fastnedbv",
          "fastneddeutschland",
          "fastneddeutschlandgm",
          "fastneddeutschlandgmbh",
          "fastnedgmbh",
          "federatedcooperatives",
          "felyx",
          "ferryhopper",
          "ferryhoppersa",
          "finn",
          "finnassets",
          "finnassetsgmbh",
          "finnassetsigmbh",
          "finngmbh",
          "flixbus",
          "freenow",
          "freshmile",
          "freshmileplbii8ysho",
          "galp",
          "galpenergy",
          "gemeentevervoerbedrijf",
          "gemeentevervoerbedrijfamsterdam",
          "gett",
          "golfoil",
          "gosharing",
          "groppoapi",
          "grossraumverkehrhannover",
          "gvb",
          "gvh",
          "hamburgerverkehrsverbund",
          "helenoftroy",
          "hindustanpetroleum",
          "hopp",
          "hoppbike",
          "hsl",
          "hsllogistik",
          "httpsnsnl",
          "httpswwwnsnl",
          "husky",
          "huskyenergy",
          "hvv",
          "hyundaioilbank",
          "iberdolla",
          "idemitsu",
          "ignit",
          "imperialoil",
          "indianoilcorporation",
          "ingitride",
          "ingitridecom",
          "ingprodeuropodrozep",
          "iocl",
          "ipiranga",
          "irvingoil",
          "jadrolinija",
          "jadrolinijaweb",
          "jxtd",
          "karlsruherverkehrsverbund",
          "kolnerverkehrsbetriebe",
          "kolnerverkehrsbetriebeaktiengesellschaft",
          "kroger",
          "kvb",
          "kvv",
          "leipzigerverkehrsbetriebe",
          "libertyglobal",
          "lime",
          "limtemphold",
          "lotos",
          "lufthansaexpressbus",
          "lukoil",
          "lvb",
          "lwsncfconnect",
          "lyft",
          "magdeburgerverkehrsbetriebe",
          "manulife",
          "marathon",
          "marathonoil",
          "marathonpetrolium",
          "martinbauer",
          "martinbauergroup",
          "metropolenantesmetro",
          "metropolenantesmetrop",
          "miele",
          "mietwagenmarkt",
          "mietwagenmarktde",
          "miles",
          "mitsubishi",
          "mitsubishienergy",
          "mitsubishienergybusinessgroup",
          "mitsubishimotors",
          "mobil",
          "mohawk",
          "moia",
          "molbubi",
          "molbubibike",
          "molincludingbikes",
          "mopla",
          "moplasolutions",
          "moplasolutionsgmbh",
          "motivaenterprises",
          "movacar",
          "mpsvwwechargeeur",
          "multix",
          "mumtaz",
          "munchnerverkehrsundtarifverbund",
          "munichairportparking",
          "murphyoil",
          "mvb",
          "mvv",
          "mvvenergiechargingstation",
          "nantesmetro",
          "nationalexpress",
          "nearme",
          "nearmeinc",
          "nederlandsespoorwegen",
          "neste",
          "nextbike",
          "nippon",
          "nippongas",
          "nipponoil",
          "nipponoilandgas",
          "nipponoilgas",
          "ns",
          "nsnl",
          "obb",
          "oebb",
          "omv",
          "opet",
          "oronegro",
          "osterreichischebundesbahnen",
          "pace",
          "parkabilastaedi",
          "parkopedia",
          "parkopedialimited",
          "parkopedialtd",
          "parkster",
          "parkstercom",
          "parkstercomde",
          "paypaldbvertriebg",
          "petrobras",
          "petrom",
          "petron",
          "petronas",
          "phillips66",
          "phoenix",
          "plugsurfing",
          "poferries",
          "poferriesweb",
          "preem",
          "pumaenergy",
          "pyuuber",
          "q8",
          "regioverkehrsverbundfreiburg",
          "reitangruppen",
          "repsol",
          "rheinmainverkehrsverbund",
          "rheinneckarverkehr",
          "richoil",
          "rigassatiksme",
          "rmv",
          "rnv",
          "rnvvrn",
          "rvf",
          "ryd",
          "sainsburys",
          "sasol",
          "saudiamarco",
          "scotrail",
          "servicenavigo",
          "servicenavigo4042878",
          "servicenavigo4889279",
          "sgroup",
          "sharenow",
          "shell",
          "shellaustralia",
          "shellcanada",
          "shellvpower",
          "simpsonoil",
          "sinclair",
          "sitycleta",
          "skenergy",
          "skgas",
          "skinnovation",
          "skoil",
          "slovenskezeleznice",
          "sncf",
          "sncfconnect",
          "socar",
          "societedestransportsintercommunauxdebruxellesmaatschappijvoorhetintercommunaalvervoertebrussel",
          "societenationaledescheminsdeferfrancais",
          "sohio",
          "soil",
          "solgroup",
          "solpetroleum",
          "speedway",
          "spiritpetroleum",
          "stib",
          "stibmivb",
          "stork",
          "sunnycars",
          "sunnycarsautovermietung",
          "sunnycarsgmbh",
          "suntransfers",
          "suntransferscom",
          "superpedestrian",
          "superpedestrianlink",
          "swapfiets",
          "szsi",
          "teboil",
          "terpel",
          "tesla",
          "teslainc",
          "texaco",
          "thalys",
          "thorntons",
          "tidewater",
          "tidewateroil",
          "tier",
          "total",
          "totalenergies",
          "transilien",
          "transliniensncf",
          "trenitalia",
          "uber",
          "uberrides",
          "uberridesdl",
          "ubrpendingubercom",
          "ubrpengingubercom",
          "unox",
          "velib",
          "velibmetropo",
          "velibmetropole",
          "velibmetropole2532669",
          "veomicromobility",
          "veomobility",
          "veoride",
          "verkehrsundtarifverbundstuttgart",
          "verkehrsverbundgrossraumnurnberg",
          "verkehrsverbundmittelthuringen",
          "verkehrsverbundtirol",
          "verkehrsverbundwarnow",
          "vgn",
          "vickers",
          "vivelacar",
          "vmt",
          "voi",
          "vvs",
          "vvt",
          "vvw",
          "vwwecharge",
          "wecharge",
          "wechargeeur",
          "weshare",
          "westbahn",
          "westbahnmanagement",
          "wirelane",
          "wirelanegmbh",
          "wwwmoplasolutions",
          "wwwveoridecom",
          "xyenergy",
          "yandextaxi",
          "yego",
          "yegoride",
          "yegoride11min",
          "yoio",
          "zenergy",
          "zeusscooters",
          "zeusscooterslimited",
          "zeusscooterslmt",
          "zigzag",
          "zigzagsharing"
        ]
      },
      "Expenditure": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Expenditure",
            "properties": {
              "type": {
                "const": "expenditure",
                "examples": [
                  "expenditure"
                ]
              },
              "methodology": {
                "const": "OFNK",
                "examples": [
                  "OFNK"
                ],
                "default": "OFNK"
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "merchant_category_code": {
                "type": "integer",
                "description": "4-digit number. **Mutually exclusive** with \"merchant_category\". One of both must be given."
              },
              "merchant_name": {
                "$ref": "#/components/schemas/MerchantName"
              },
              "total": {
                "type": "integer",
                "description": "Amount of money per transaction."
              },
              "currency": {
                "type": "string",
                "default": "EUR"
              },
              "country": {
                "type": "string",
                "enum": [
                  "AE",
                  "CA",
                  "DE",
                  "DK",
                  "FI",
                  "GB",
                  "GR",
                  "HK",
                  "IT",
                  "JP",
                  "LU",
                  "MX",
                  "NL",
                  "NO",
                  "QA",
                  "SE",
                  "SK"
                ],
                "description": "Alpha2 country code",
                "examples": [
                  "DE",
                  "US",
                  "JP"
                ]
              }
            },
            "anyOf": [
              {
                "title": "With merchant_category",
                "required": [
                  "type",
                  "methodology",
                  "merchant_category",
                  "total"
                ],
                "anyOf": [
                  {
                    "title": "With country code",
                    "properties": {
                      "merchant_category": {
                        "enum": [
                          "groceries",
                          "food",
                          "retail",
                          "air_travel",
                          "clothing",
                          "shopping",
                          "service_stations",
                          "catering",
                          "lodging",
                          "accommodation",
                          "streaming_services",
                          "video_streaming_services",
                          "train_travel",
                          "taxi_cabs",
                          "limousines",
                          "bakeries",
                          "cafes",
                          "drug_stores",
                          "local_public_transport",
                          "travel_agencies",
                          "travel_package_holidays",
                          "online_shopping",
                          "car_rental",
                          "furniture",
                          "energy",
                          "convenience_store",
                          "alcoholic_beverages",
                          "non-alcoholic_beverages",
                          "general",
                          "household_appliances",
                          "communication",
                          "glassware",
                          "tableware",
                          "household_utensils",
                          "rent",
                          "home",
                          "maintenance",
                          "repair",
                          "security",
                          "household_textiles",
                          "tools_for_garden",
                          "tools_for_house",
                          "equipment_for_garden",
                          "equipment_for_house",
                          "water_supply",
                          "miscellaneous_services",
                          "education",
                          "financial_services",
                          "health_services",
                          "insurance",
                          "recreational_equipment",
                          "recreational_items",
                          "gardens",
                          "pets",
                          "outpatient_care_services",
                          "recreational_services",
                          "cultural_services",
                          "services",
                          "social_protection",
                          "audio_streaming_services",
                          "tobacco",
                          "footwear_shopping",
                          "personal_care",
                          "personal_effects",
                          "durables_for_culture",
                          "durables_for_recreation",
                          "secondhand_clothing",
                          "newspapers",
                          "books",
                          "stationery",
                          "audio_visual_equipment",
                          "photographic_equipment",
                          "information_processing_equipment",
                          "electric_vehicles",
                          "e-mobility",
                          "operation_of_personal_transport_equipment",
                          "purchase_of_vehicles"
                        ]
                      }
                    }
                  },
                  {
                    "title": "Without country code",
                    "properties": {
                      "merchant_category": {
                        "enum": [
                          "air_travel",
                          "automobile_parking_lots_and_garages",
                          "automotive_service_shops",
                          "bakeries_cafes",
                          "bicycle_shops",
                          "business_services",
                          "car_and_truck_dealers",
                          "car_rental",
                          "catering",
                          "clothes_shopping",
                          "commercial_sports_athletic_fields_professional_sport_clubs_and_sport_promoters",
                          "computer_programming_integrated_systems_design_and_data_processing_services",
                          "computers_peripherals_and_software",
                          "convenience_stores",
                          "direct_marketing",
                          "drug_stores",
                          "electric_gas_sanitary_and_water_utilities",
                          "electric_vehicle_charging_services",
                          "furniture",
                          "government_services",
                          "groceries",
                          "intra_government_purchases",
                          "local_public_transport",
                          "lodging_accommodation",
                          "management_consulting_and_public_relations_services",
                          "marinas_service_and_supplies",
                          "membership_clubs_country_clubs_and_private_golf_courses",
                          "miscellaneous_general_merchandise",
                          "miscellaneous_personal_services",
                          "miscellaneous_specialty_retail",
                          "motor_home_and_recreational_vehicle_rentals",
                          "not_elsewhere_classified",
                          "online_shopping",
                          "real_estate_agents_and_managers",
                          "retail",
                          "service_stations",
                          "steamship_cruise_line",
                          "streaming_services",
                          "streaming_services_video",
                          "streaming_services_audio",
                          "taxi_cabs",
                          "theatrical_producers_and_ticket_agencies",
                          "toll_and_bridge_fees",
                          "train_travel",
                          "travel_agencies",
                          "variety_stores"
                        ]
                      }
                    }
                  }
                ]
              },
              {
                "title": "With merchant_category_code",
                "required": [
                  "type",
                  "methodology",
                  "merchant_category_code",
                  "total"
                ]
              }
            ]
          }
        ],
        "MerchantName": {
          "type": "string",
          "enum": [
            "buckaroo*swapfiets",
            "donkey.bike",
            "easyparkb.v.",
            "eshop.sz.si",
            "freshmile*plbii8ysho",
            "hopp.bike",
            "https://www.ns.nl/",
            "ignitride.com",
            "ing*prod.europodroze.p",
            "lim*temphold",
            "mol*includingbikes",
            "mps*vwwechargeeur",
            "nearme.",
            "parkster.com/de",
            "paypal*dbvertriebg",
            "poferries(web)",
            "pyu*uber",
            "suntransfers.com",
            "teslainc.",
            "uber*rides*dl",
            "ubr*pending.uber.com",
            "www.mopla.solutions",
            "www.veoride.com",
            "yego*ride11min",
            "a1",
            "abc",
            "abodeinauto",
            "aboeinauto",
            "accel",
            "agip",
            "airportbusmunich",
            "akpet",
            "amoco",
            "ampol",
            "aobairportbus",
            "aobairportbusbusweb",
            "aobairportbusweb",
            "apco",
            "aral",
            "arco",
            "asda",
            "avanti",
            "avocargo",
            "bapco",
            "bayerischeregiobahn",
            "berlinerverkehrsbetri",
            "berlinerverkehrsbetriebe",
            "bharatpetroleum",
            "bicimad",
            "bird",
            "bkk",
            "bkkbudapestgo",
            "bkkbudapestgokartyar",
            "bkkkartyar",
            "blablacar",
            "blunavy",
            "blunavyferries",
            "blunavytraghetti",
            "bndinavigazione",
            "bndinavigazionespa",
            "bolt",
            "bonnet",
            "bonnetev",
            "bonnetevcharging",
            "bp",
            "brb",
            "buckarooswapfiets",
            "budapestgo",
            "budapestgokartyar",
            "burmah",
            "bvg",
            "cabify",
            "callabike",
            "caltex",
            "cepsa",
            "cfl",
            "cflgroupe",
            "cflmobility",
            "chargeassist",
            "chargemap",
            "chevron",
            "circ",
            "citylink",
            "clark",
            "cluno",
            "compagniedestransportsstrasbourgeois",
            "cooltra",
            "cosan",
            "cts",
            "dance",
            "db",
            "dbvertrieb",
            "dbvertriebg",
            "dcs",
            "delek",
            "deutschebahn",
            "digitalchargingsoluti",
            "digitalchargingsolutions",
            "digitalchargingsolutionsdcs",
            "digitalchargingsolutionsgmbh",
            "digitalchargingsolutionsgmbhdcs",
            "donkeybike",
            "donkeyrepublic",
            "dot",
            "dresdnerverkehrsbetriebe",
            "dvb",
            "easypark",
            "easyparkbv",
            "easyparkgmbh",
            "ecobici",
            "eddy",
            "elf",
            "emmy",
            "emtbicimad",
            "enbw",
            "enbwenergie",
            "enbwenergiebadenwuer",
            "enbwenergiebadenwuertt",
            "enbwenergiebadenwuettenberg",
            "enbwenergiebadenwuttenberg",
            "eneos",
            "engen",
            "eni",
            "eshopszsi",
            "esso",
            "essoimperialoil",
            "europodroze",
            "exxon",
            "exxonmobil",
            "fairtiq",
            "fairtiqaustriaapp",
            "faritiqapp",
            "faritiqaustria",
            "faritiqaustriaapp",
            "fastned",
            "fastnedbv",
            "fastneddeutschland",
            "fastneddeutschlandgm",
            "fastneddeutschlandgmbh",
            "fastnedgmbh",
            "federatedcooperatives",
            "felyx",
            "ferryhopper",
            "ferryhoppersa",
            "finn",
            "finnassets",
            "finnassetsgmbh",
            "finnassetsigmbh",
            "finngmbh",
            "flixbus",
            "freenow",
            "freshmile",
            "freshmileplbii8ysho",
            "galp",
            "galpenergy",
            "gemeentevervoerbedrijf",
            "gemeentevervoerbedrijfamsterdam",
            "gett",
            "golfoil",
            "gosharing",
            "groppoapi",
            "grossraumverkehrhannover",
            "gvb",
            "gvh",
            "hamburgerverkehrsverbund",
            "helenoftroy",
            "hindustanpetroleum",
            "hopp",
            "hoppbike",
            "hsl",
            "hsllogistik",
            "httpsnsnl",
            "httpswwwnsnl",
            "husky",
            "huskyenergy",
            "hvv",
            "hyundaioilbank",
            "iberdolla",
            "idemitsu",
            "ignit",
            "imperialoil",
            "indianoilcorporation",
            "ingitride",
            "ingitridecom",
            "ingprodeuropodrozep",
            "iocl",
            "ipiranga",
            "irvingoil",
            "jadrolinija",
            "jadrolinijaweb",
            "jxtd",
            "karlsruherverkehrsverbund",
            "kolnerverkehrsbetriebe",
            "kolnerverkehrsbetriebeaktiengesellschaft",
            "kroger",
            "kvb",
            "kvv",
            "leipzigerverkehrsbetriebe",
            "libertyglobal",
            "lime",
            "limtemphold",
            "lotos",
            "lufthansaexpressbus",
            "lukoil",
            "lvb",
            "lwsncfconnect",
            "lyft",
            "magdeburgerverkehrsbetriebe",
            "manulife",
            "marathon",
            "marathonoil",
            "marathonpetrolium",
            "martinbauer",
            "martinbauergroup",
            "metropolenantesmetro",
            "metropolenantesmetrop",
            "miele",
            "mietwagenmarkt",
            "mietwagenmarktde",
            "miles",
            "mitsubishi",
            "mitsubishienergy",
            "mitsubishienergybusinessgroup",
            "mitsubishimotors",
            "mobil",
            "mohawk",
            "moia",
            "molbubi",
            "molbubibike",
            "molincludingbikes",
            "mopla",
            "moplasolutions",
            "moplasolutionsgmbh",
            "motivaenterprises",
            "movacar",
            "mpsvwwechargeeur",
            "multix",
            "mumtaz",
            "munchnerverkehrsundtarifverbund",
            "munichairportparking",
            "murphyoil",
            "mvb",
            "mvv",
            "mvvenergiechargingstation",
            "nantesmetro",
            "nationalexpress",
            "nearme",
            "nearmeinc",
            "nederlandsespoorwegen",
            "neste",
            "nextbike",
            "nippon",
            "nippongas",
            "nipponoil",
            "nipponoilandgas",
            "nipponoilgas",
            "ns",
            "nsnl",
            "obb",
            "oebb",
            "omv",
            "opet",
            "oronegro",
            "osterreichischebundesbahnen",
            "pace",
            "parkabilastaedi",
            "parkopedia",
            "parkopedialimited",
            "parkopedialtd",
            "parkster",
            "parkstercom",
            "parkstercomde",
            "paypaldbvertriebg",
            "petrobras",
            "petrom",
            "petron",
            "petronas",
            "phillips66",
            "phoenix",
            "plugsurfing",
            "poferries",
            "poferriesweb",
            "preem",
            "pumaenergy",
            "pyuuber",
            "q8",
            "regioverkehrsverbundfreiburg",
            "reitangruppen",
            "repsol",
            "rheinmainverkehrsverbund",
            "rheinneckarverkehr",
            "richoil",
            "rigassatiksme",
            "rmv",
            "rnv",
            "rnvvrn",
            "rvf",
            "ryd",
            "sainsburys",
            "sasol",
            "saudiamarco",
            "scotrail",
            "servicenavigo",
            "servicenavigo4042878",
            "servicenavigo4889279",
            "sgroup",
            "sharenow",
            "shell",
            "shellaustralia",
            "shellcanada",
            "shellvpower",
            "simpsonoil",
            "sinclair",
            "sitycleta",
            "skenergy",
            "skgas",
            "skinnovation",
            "skoil",
            "slovenskezeleznice",
            "sncf",
            "sncfconnect",
            "socar",
            "societedestransportsintercommunauxdebruxellesmaatschappijvoorhetintercommunaalvervoertebrussel",
            "societenationaledescheminsdeferfrancais",
            "sohio",
            "soil",
            "solgroup",
            "solpetroleum",
            "speedway",
            "spiritpetroleum",
            "stib",
            "stibmivb",
            "stork",
            "sunnycars",
            "sunnycarsautovermietung",
            "sunnycarsgmbh",
            "suntransfers",
            "suntransferscom",
            "superpedestrian",
            "superpedestrianlink",
            "swapfiets",
            "szsi",
            "teboil",
            "terpel",
            "tesla",
            "teslainc",
            "texaco",
            "thalys",
            "thorntons",
            "tidewater",
            "tidewateroil",
            "tier",
            "total",
            "totalenergies",
            "transilien",
            "transliniensncf",
            "trenitalia",
            "uber",
            "uberrides",
            "uberridesdl",
            "ubrpendingubercom",
            "ubrpengingubercom",
            "unox",
            "velib",
            "velibmetropo",
            "velibmetropole",
            "velibmetropole2532669",
            "veomicromobility",
            "veomobility",
            "veoride",
            "verkehrsundtarifverbundstuttgart",
            "verkehrsverbundgrossraumnurnberg",
            "verkehrsverbundmittelthuringen",
            "verkehrsverbundtirol",
            "verkehrsverbundwarnow",
            "vgn",
            "vickers",
            "vivelacar",
            "vmt",
            "voi",
            "vvs",
            "vvt",
            "vvw",
            "vwwecharge",
            "wecharge",
            "wechargeeur",
            "weshare",
            "westbahn",
            "westbahnmanagement",
            "wirelane",
            "wirelanegmbh",
            "wwwmoplasolutions",
            "wwwveoridecom",
            "xyenergy",
            "yandextaxi",
            "yego",
            "yegoride",
            "yegoride11min",
            "yoio",
            "zenergy",
            "zeusscooters",
            "zeusscooterslimited",
            "zeusscooterslmt",
            "zigzag",
            "zigzagsharing"
          ]
        }
      },
      "Ferry": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Ferry",
            "properties": {
              "type": {
                "const": "ferry",
                "examples": [
                  "ferry"
                ]
              },
              "methodology": {
                "const": "ADEME",
                "examples": [
                  "ADEME"
                ],
                "default": "ADEME",
                "description": "Detailed methodology description can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/ferry/ferry-ademe)."
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "number_of_travelers": {
                "type": "number",
                "default": 1,
                "examples": [
                  2
                ]
              },
              "number_of_cars": {
                "type": "number",
                "default": 0,
                "examples": [
                  1
                ]
              },
              "vessel_type": {
                "type": "string",
                "enum": [
                  "night_ferry",
                  "day_ferry",
                  "ro_pax",
                  "river_vessel"
                ],
                "default": "day_ferry",
                "examples": [
                  "night_ferry"
                ]
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination"
            ]
          }
        ]
      },
      "flight_routing": {
        "type": "string",
        "title": "Flight routing (multi-leg)",
        "description": "ICAO-style hyphen-separated airport chain for a multi-leg itinerary (e.g. `BER-FRA-JFK`).\nMutually exclusive with `origin` and `destination`.\n\nWhen `routing` is present, emissions and distance are computed per leg and aggregated on the parent item; `distance_in_km` does not define the total distance for the routed item.\n\nFull rules (parsing, per-leg pipe lists, `expand: legs`) are documented in the\n[integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-routing).\n",
        "examples": [
          "BER-FRA-JFK"
        ]
      },
      "booking_class": {
        "type": "string",
        "enum": [
          "first",
          "premium_economy",
          "economy",
          "business"
        ],
        "description": "When `fare_class` and `airline` SQUAKE will then automatically resolve the correct `booking_class`.",
        "examples": [
          "economy"
        ]
      },
      "IATA-Aircraft-Type-Flight": {
        "type": "string",
        "enum": [
          "CS1",
          "CS3",
          "31N",
          "32N",
          "32Q",
          "338",
          "339",
          "359",
          "7M7",
          "7M8",
          "7M9",
          "789",
          "141",
          "142",
          "143",
          "146",
          "310",
          "312",
          "313",
          "318",
          "319",
          "320",
          "321",
          "330",
          "332",
          "333",
          "340",
          "342",
          "343",
          "345",
          "346",
          "380",
          "388",
          "703",
          "707",
          "717",
          "721",
          "722",
          "727",
          "731",
          "732",
          "733",
          "734",
          "735",
          "736",
          "737",
          "738",
          "739",
          "741",
          "742",
          "743",
          "744",
          "747",
          "752",
          "753",
          "757",
          "762",
          "763",
          "764",
          "767",
          "772",
          "773",
          "777",
          "787",
          "788",
          "14F",
          "31F",
          "31Y",
          "32A",
          "32F",
          "32S",
          "33F",
          "33X",
          "70F",
          "70M",
          "72A",
          "72F",
          "72M",
          "72S",
          "73A",
          "73C",
          "73E",
          "73F",
          "73G",
          "73H",
          "73J",
          "73L",
          "73M",
          "73N",
          "73P",
          "73Q",
          "73R",
          "73S",
          "73W",
          "73X",
          "73Y",
          "74C",
          "74D",
          "74E",
          "74F",
          "74H",
          "74J",
          "74L",
          "74M",
          "74N",
          "74R",
          "74T",
          "74X",
          "74Y",
          "75F",
          "75M",
          "75T",
          "75W",
          "76F",
          "76W",
          "76X",
          "76Y",
          "77F",
          "77L",
          "77W",
          "77X",
          "A28",
          "A40",
          "A4F",
          "A81",
          "AB3",
          "AB4",
          "AB6",
          "ABF",
          "ABX",
          "ABY",
          "ACD",
          "AGH",
          "AN4",
          "AN6",
          "AN7",
          "ANF",
          "AR1",
          "AR7",
          "AR8",
          "ARJ",
          "AT3",
          "AT4",
          "AT5",
          "AT7",
          "ATF",
          "ATP",
          "ATR",
          "B11",
          "B12",
          "B13",
          "B14",
          "B15",
          "BE1",
          "BE2",
          "BE9",
          "BEC",
          "BEH",
          "BES",
          "BET",
          "BH2",
          "BNI",
          "BNT",
          "CCJ",
          "CD2",
          "CL4",
          "CN1",
          "CNA",
          "CNC",
          "CNF",
          "CNJ",
          "CNT",
          "CR1",
          "CR2",
          "CR7",
          "CR9",
          "CRA",
          "CRF",
          "CRJ",
          "CRK",
          "CS2",
          "CS5",
          "CV5",
          "CVF",
          "CVR",
          "CWC",
          "D10",
          "D11",
          "D1C",
          "D1F",
          "D1Y",
          "D28",
          "D38",
          "D3F",
          "D6F",
          "D8F",
          "D8X",
          "D8Y",
          "D91",
          "D92",
          "D93",
          "D94",
          "D95",
          "D9F",
          "D9S",
          "DC3",
          "DC6",
          "DC8",
          "DC9",
          "DF2",
          "DFL",
          "DH1",
          "DH2",
          "DH3",
          "DH4",
          "DH7",
          "DH8",
          "DHB",
          "DHC",
          "DHL",
          "DHO",
          "DHP",
          "DHS",
          "DHT",
          "E70",
          "E75",
          "E90",
          "E95",
          "EM2",
          "EMB",
          "EMJ",
          "ER3",
          "ER4",
          "ERD",
          "ERJ",
          "F21",
          "F22",
          "F23",
          "F24",
          "F27",
          "F28",
          "F50",
          "F70",
          "FK7",
          "FRJ",
          "GRG",
          "GRM",
          "GRS",
          "HEC",
          "HS7",
          "I14",
          "IL6",
          "IL7",
          "IL8",
          "IL9",
          "ILW",
          "J31",
          "J32",
          "J41",
          "JST",
          "L10",
          "L11",
          "L12",
          "L15",
          "L1F",
          "L49",
          "L4T",
          "LOE",
          "LOF",
          "LOH",
          "LOM",
          "LRJ",
          "M11",
          "M1F",
          "M1M",
          "M80",
          "M81",
          "M82",
          "M83",
          "M87",
          "M88",
          "M90",
          "MA6",
          "MBH",
          "MD9",
          "MIH",
          "MU2",
          "ND2",
          "NDC",
          "NDE",
          "NDH",
          "PA1",
          "PA2",
          "PAG",
          "PAT",
          "PL2",
          "PL6",
          "PN6",
          "S20",
          "S58",
          "S61",
          "S76",
          "SF3",
          "SFB",
          "SFF",
          "SH3",
          "SH6",
          "SHB",
          "SHS",
          "SSC",
          "SU9",
          "SWM",
          "T20",
          "T2F",
          "TU3",
          "TU5",
          "VCV",
          "WWP",
          "YK2",
          "YK4",
          "YN2",
          "YN7",
          "YS1",
          "221",
          "223",
          "290",
          "295",
          "351",
          "781"
        ],
        "title": "IATA Aircraft Type Flight",
        "description": "For example, the Airbus A321 has the IATA short code `321`. ICAO publishes a similar list, their designator for the Airbus A321 is `A321`. Please don't hesitate to contact us if you can only work with ICAO codes.",
        "examples": [
          "321"
        ]
      },
      "fare_class": {
        "type": "string",
        "description": "The combination of `fare_class` and `airline` is mutually exclusive with `booking_class`. This is a single letter e.g. `Y`, `J`, etc.",
        "examples": [
          "B"
        ]
      },
      "airline": {
        "type": "string",
        "description": "The IATA Designator of an airline, e.g., 2-digit format like `LH` or 3-digit format like `220`. Airline names and ICAO codes are also supported, SQUAKE will then automatically resolve it. The combination of `fare_class` and `airline` is mutually exclusive with `booking_class`.",
        "examples": [
          "`LH` / `220` or `Lufthansa` or `DLH`, `DL` / `006` or `Delta Airlines` or `DAL`"
        ]
      },
      "radiative_forcing_index": {
        "type": "boolean",
        "description": "Controls if a multiplier that factors in gases emitted to the atmosphere when flying at altitude should be applied.",
        "default": true
      },
      "sustainable_fuels": {
        "type": "object",
        "title": "sustainable_fuels",
        "description": "Indicates the usage of sustainable fuels. This lowers the computed emissions in SQUAKE but is not part of the current official emissions frameworks.",
        "properties": {
          "carbon_reduction_percentage_of_total": {
            "type": "number",
            "description": "The percentage of emissions reduction through the usage of  sustainable fuel.",
            "minimum": 0,
            "maximum": 1,
            "default": 0,
            "examples": [
              0.25
            ]
          }
        },
        "examples": [
          {
            "carbon_reduction_percentage_of_total": 0.25
          }
        ]
      },
      "Flight-DEFRA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "flight",
                "examples": [
                  "flight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "DEFRA",
                "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-defra).\n",
                "examples": [
                  "DEFRA"
                ]
              },
              "methodology_version": {
                "type": "string",
                "description": "The version of the DEFRA methodology used.",
                "default": "latest",
                "enum": [
                  "2018",
                  "2019",
                  "2020",
                  "2021",
                  "2022",
                  "2023",
                  "2024",
                  "2025",
                  "2026",
                  "latest"
                ],
                "examples": [
                  "2024"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "routing": {
                "$ref": "#/components/schemas/flight_routing"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "booking_class": {
                "$ref": "#/components/schemas/booking_class",
                "default": "average"
              },
              "number_of_travelers": {
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "aircraft_type": {
                "$ref": "#/components/schemas/IATA-Aircraft-Type-Flight"
              },
              "fare_class": {
                "$ref": "#/components/schemas/fare_class"
              },
              "airline": {
                "$ref": "#/components/schemas/airline"
              },
              "radiative_forcing_index": {
                "$ref": "#/components/schemas/radiative_forcing_index",
                "default": true
              },
              "sustainable_fuels": {
                "$ref": "#/components/schemas/sustainable_fuels"
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope",
                "default": "wtw"
              }
            },
            "required": [
              "type",
              "methodology"
            ],
            "oneOf": [
              {
                "type": "object",
                "title": "Origin/Destination",
                "required": [
                  "origin",
                  "destination"
                ]
              },
              {
                "type": "object",
                "title": "Routing",
                "required": [
                  "routing"
                ]
              }
            ]
          }
        ]
      },
      "Flight-ADEME": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "flight",
                "examples": [
                  "flight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "ADEME",
                "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-ademe).\n",
                "examples": [
                  "ADEME"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "routing": {
                "$ref": "#/components/schemas/flight_routing"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "number_of_travelers": {
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "aircraft_size": {
                "type": "string",
                "enum": [
                  "under_50_seats",
                  "under_100_seats",
                  "under_180_seats",
                  "under_250_seats",
                  "over_250_seats"
                ],
                "description": "An estimation of the aircraft's size based on the number of seats. When `aircraft_size`, there is a possibility to pass over `aircraft_type`, which we use to approximate the amount of seats.",
                "examples": [
                  "under_100_seats"
                ]
              },
              "aircraft_type": {
                "$ref": "#/components/schemas/IATA-Aircraft-Type-Flight"
              },
              "airline": {
                "$ref": "#/components/schemas/airline"
              }
            },
            "required": [
              "type",
              "methodology"
            ],
            "oneOf": [
              {
                "type": "object",
                "title": "Origin/Destination",
                "required": [
                  "origin",
                  "destination"
                ]
              },
              {
                "type": "object",
                "title": "Routing",
                "required": [
                  "routing"
                ]
              }
            ]
          }
        ]
      },
      "Flight-BASE-EMPREINTE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "flight",
                "examples": [
                  "flight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "BASE-EMPREINTE",
                "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-base-empreinte).\n",
                "examples": [
                  "BASE-EMPREINTE"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "routing": {
                "$ref": "#/components/schemas/flight_routing"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "number_of_travelers": {
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "aircraft_size": {
                "type": "string",
                "enum": [
                  "under_50_seats",
                  "under_50_seats_jet",
                  "under_50_seats_turboprop",
                  "under_100_seats",
                  "under_100_seats_jet",
                  "under_100_seats_turboprop",
                  "under_220_seats",
                  "above_220_seats"
                ],
                "description": "An estimation of the aircraft's size based on the number of seats. An estimation of the aircraft's size based on the number of seats. When `aircraft_size`, there is a possibility to pass over `aircraft_type`, which we use to approximate the amount of seats.",
                "examples": [
                  "under_100_seats"
                ]
              },
              "aircraft_type": {
                "$ref": "#/components/schemas/IATA-Aircraft-Type-Flight"
              },
              "radiative_forcing_index": {
                "$ref": "#/components/schemas/radiative_forcing_index",
                "default": true
              },
              "sustainable_fuels": {
                "$ref": "#/components/schemas/sustainable_fuels"
              }
            },
            "required": [
              "type",
              "methodology"
            ],
            "oneOf": [
              {
                "type": "object",
                "title": "Origin/Destination",
                "required": [
                  "origin",
                  "destination"
                ]
              },
              {
                "type": "object",
                "title": "Routing",
                "required": [
                  "routing"
                ]
              }
            ]
          }
        ]
      },
      "iso_8601_date": {
        "type": "string",
        "title": "ISO-8601-Date",
        "description": "Date in ISO 8601 notation.",
        "format": "date",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        "examples": [
          "2023-01-28"
        ]
      },
      "Flight-CO2-EMISSIEFACTOREN-NL": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "flight",
                "examples": [
                  "flight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "CO2-EMISSIEFACTOREN-NL",
                "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-co2-emissiefactoren).\n",
                "examples": [
                  "CO2-EMISSIEFACTOREN-NL"
                ]
              },
              "methodology_version": {
                "type": "string",
                "description": "The published factor year to use. `2020` covers flights in 2020 and 2021; `2022` covers\nflights from 2022 onward.\n\nIf omitted, the version is resolved from `departure_date`, falling back to the latest\nversion when no date is given. A year without its own published factors resolves to the\nmost recent earlier year, so `2021` resolves to `2020` and `2023` onward resolve to\n`2022`. Years before `2020` are rejected.\n\nThe version actually used is returned as `methodology_version` on the item.\n\nThe `2020` factors are published per haul band only, so `booking_class` (and\n`fare_class` + `airline`) do not affect the result for that year.\n",
                "default": "latest",
                "enum": [
                  "2020",
                  "2022",
                  "latest"
                ],
                "examples": [
                  "2020"
                ]
              },
              "departure_date": {
                "$ref": "#/components/schemas/iso_8601_date",
                "description": "The date of departure. When `methodology_version` is omitted, the factor year is picked\nfrom this date, so a 2020 or 2021 flight uses the `2020` factors and a flight from 2022\nonward uses the `2022` factors. An explicit `methodology_version` takes precedence.\n"
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "routing": {
                "$ref": "#/components/schemas/flight_routing"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "booking_class": {
                "$ref": "#/components/schemas/booking_class",
                "enum": [
                  "first",
                  "premium_economy",
                  "economy",
                  "business",
                  "average"
                ],
                "default": "average"
              },
              "number_of_travelers": {
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "fare_class": {
                "$ref": "#/components/schemas/fare_class"
              },
              "airline": {
                "$ref": "#/components/schemas/airline"
              },
              "radiative_forcing_index": {
                "$ref": "#/components/schemas/radiative_forcing_index",
                "default": true
              },
              "sustainable_fuels": {
                "$ref": "#/components/schemas/sustainable_fuels"
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope",
                "default": "wtw"
              }
            },
            "required": [
              "type",
              "methodology"
            ],
            "oneOf": [
              {
                "type": "object",
                "title": "Origin/Destination",
                "required": [
                  "origin",
                  "destination"
                ]
              },
              {
                "type": "object",
                "title": "Routing",
                "required": [
                  "routing"
                ]
              }
            ]
          }
        ]
      },
      "flight_number": {
        "type": "string",
        "description": "Flight numbers should include the airline designator, for example `BA115` is accepted but `115` also works with passed separately `airline`.",
        "examples": [
          "BA115"
        ]
      },
      "Flight-GATE4": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "flight",
                "examples": [
                  "flight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "GATE4",
                "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-gate4).\n",
                "examples": [
                  "GATE4"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "routing": {
                "$ref": "#/components/schemas/flight_routing"
              },
              "booking_class": {
                "$ref": "#/components/schemas/booking_class"
              },
              "number_of_travelers": {
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "fare_class": {
                "$ref": "#/components/schemas/fare_class"
              },
              "airline": {
                "$ref": "#/components/schemas/airline"
              },
              "flight_number": {
                "$ref": "#/components/schemas/flight_number"
              },
              "departure_date": {
                "$ref": "#/components/schemas/iso_8601_date"
              },
              "sustainable_fuels": {
                "$ref": "#/components/schemas/sustainable_fuels"
              }
            },
            "required": [
              "type",
              "methodology"
            ],
            "oneOf": [
              {
                "type": "object",
                "title": "Origin/Destination",
                "required": [
                  "origin",
                  "destination"
                ]
              },
              {
                "type": "object",
                "title": "Routing",
                "required": [
                  "routing"
                ]
              }
            ]
          }
        ]
      },
      "Flight-ICAO": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "flight",
                "examples": [
                  "flight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "ICAO",
                "description": "Default: `\"DEFRA\"`.\n\nAcceptable for internal use or general estimation, but it does not retrieve data from ICEC. To get access to the ICEC dataset, talk with your account manager.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-icao).\n",
                "examples": [
                  "ICAO"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "booking_class": {
                "$ref": "#/components/schemas/booking_class",
                "default": "economy"
              },
              "number_of_travelers": {
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "aircraft_type": {
                "$ref": "#/components/schemas/IATA-Aircraft-Type-Flight",
                "description": "`\"aircraft_type\": \"737\"` for flights under 550 km; `\"aircraft_type\": \"321\"` for flights under 5500 and above 550 km; `\"aircraft_type\": \"320\"` for flights above 5500 km"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "routing": {
                "$ref": "#/components/schemas/flight_routing"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "fare_class": {
                "$ref": "#/components/schemas/fare_class"
              },
              "airline": {
                "$ref": "#/components/schemas/airline"
              },
              "sustainable_fuels": {
                "$ref": "#/components/schemas/sustainable_fuels"
              }
            },
            "required": [
              "type",
              "methodology"
            ],
            "oneOf": [
              {
                "type": "object",
                "title": "Origin/Destination",
                "required": [
                  "origin",
                  "destination"
                ]
              },
              {
                "type": "object",
                "title": "Routing",
                "required": [
                  "routing"
                ]
              }
            ]
          }
        ]
      },
      "origin_destination_TIM": {
        "type": "string",
        "title": "origin_destination",
        "description": "TIM supports use of IATA code (format: `^[A-Z]{3}$`, e.g. `\"MUC\"` or `\"BER\"`)"
      },
      "Flight-TIM": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "flight",
                "examples": [
                  "flight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "TIM",
                "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-tim).\n",
                "examples": [
                  "TIM"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination_TIM"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination_TIM"
              },
              "routing": {
                "$ref": "#/components/schemas/flight_routing"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope"
              },
              "booking_class": {
                "$ref": "#/components/schemas/booking_class",
                "default": "economy"
              },
              "number_of_travelers": {
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "fare_class": {
                "$ref": "#/components/schemas/fare_class"
              },
              "airline": {
                "$ref": "#/components/schemas/airline"
              },
              "flight_number": {
                "$ref": "#/components/schemas/flight_number"
              },
              "departure_date": {
                "$ref": "#/components/schemas/iso_8601_date"
              },
              "sustainable_fuels": {
                "$ref": "#/components/schemas/sustainable_fuels"
              },
              "logistics_hub": {
                "type": "boolean",
                "default": false,
                "description": "If the flight is a logistics hub flight"
              }
            },
            "required": [
              "type",
              "methodology"
            ],
            "oneOf": [
              {
                "type": "object",
                "title": "Origin/Destination",
                "required": [
                  "origin",
                  "destination"
                ]
              },
              {
                "type": "object",
                "title": "Routing",
                "required": [
                  "routing"
                ]
              }
            ]
          }
        ]
      },
      "Flight-TU-CHALMERS": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "flight",
                "examples": [
                  "flight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "TU-CHALMERS",
                "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-tu-chalmers).\n",
                "examples": [
                  "TU-CHALMERS"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "routing": {
                "$ref": "#/components/schemas/flight_routing"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "booking_class": {
                "$ref": "#/components/schemas/booking_class",
                "default": "economy"
              },
              "number_of_travelers": {
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "fare_class": {
                "$ref": "#/components/schemas/fare_class"
              },
              "airline": {
                "$ref": "#/components/schemas/airline"
              },
              "sustainable_fuels": {
                "$ref": "#/components/schemas/sustainable_fuels"
              },
              "plane_type": {
                "type": "string",
                "enum": [
                  "scheduled",
                  "charter"
                ],
                "default": "scheduled",
                "example": "scheduled"
              },
              "biofuel": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "type",
              "methodology"
            ],
            "oneOf": [
              {
                "type": "object",
                "title": "Origin/Destination",
                "required": [
                  "origin",
                  "destination"
                ]
              },
              {
                "type": "object",
                "title": "Routing",
                "required": [
                  "routing"
                ]
              }
            ]
          }
        ]
      },
      "Flight-US-EPA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "flight",
                "examples": [
                  "flight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "US-EPA",
                "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-epa).\n",
                "examples": [
                  "US-EPA"
                ]
              },
              "methodology_version": {
                "type": "string",
                "description": "The version of the US EPA methodology used.",
                "default": "latest",
                "enum": [
                  "2011",
                  "2012",
                  "2013",
                  "2014",
                  "2015",
                  "2016",
                  "2017",
                  "2018",
                  "2019",
                  "2020",
                  "2021",
                  "2022",
                  "2023",
                  "2024",
                  "2025",
                  "latest"
                ],
                "examples": [
                  "2024"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "number_of_travelers": {
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "routing": {
                "$ref": "#/components/schemas/flight_routing"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "sustainable_fuels": {
                "$ref": "#/components/schemas/sustainable_fuels"
              }
            },
            "required": [
              "type",
              "methodology"
            ],
            "oneOf": [
              {
                "type": "object",
                "title": "Origin/Destination",
                "required": [
                  "origin",
                  "destination"
                ]
              },
              {
                "type": "object",
                "title": "Routing",
                "required": [
                  "routing"
                ]
              }
            ]
          }
        ]
      },
      "Flight": {
        "type": "object",
        "title": "Flight",
        "properties": {
          "type": {
            "const": "flight",
            "examples": [
              "flight"
            ]
          },
          "methodology": {
            "type": "string"
          }
        },
        "oneOf": [
          {
            "title": "DEFRA",
            "allOf": [
              {
                "$ref": "#/components/schemas/Flight-DEFRA"
              }
            ]
          },
          {
            "title": "ADEME",
            "allOf": [
              {
                "$ref": "#/components/schemas/Flight-ADEME"
              }
            ]
          },
          {
            "title": "BASE-EMPREINTE",
            "allOf": [
              {
                "$ref": "#/components/schemas/Flight-BASE-EMPREINTE"
              }
            ]
          },
          {
            "title": "CO2-EMISSIEFACTOREN-NL",
            "allOf": [
              {
                "$ref": "#/components/schemas/Flight-CO2-EMISSIEFACTOREN-NL"
              }
            ]
          },
          {
            "title": "GATE4",
            "allOf": [
              {
                "$ref": "#/components/schemas/Flight-GATE4"
              }
            ]
          },
          {
            "title": "ICAO",
            "allOf": [
              {
                "$ref": "#/components/schemas/Flight-ICAO"
              }
            ]
          },
          {
            "title": "TIM",
            "allOf": [
              {
                "$ref": "#/components/schemas/Flight-TIM"
              }
            ]
          },
          {
            "title": "TU-CHALMERS",
            "allOf": [
              {
                "$ref": "#/components/schemas/Flight-TU-CHALMERS"
              }
            ]
          },
          {
            "title": "US-EPA",
            "allOf": [
              {
                "$ref": "#/components/schemas/Flight-US-EPA"
              }
            ]
          }
        ],
        "Flight-ADEME": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "const": "flight",
                  "examples": [
                    "flight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "ADEME",
                  "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-ademe).\n",
                  "examples": [
                    "ADEME"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "routing": {
                  "$ref": "#/components/schemas/flight_routing"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "aircraft_size": {
                  "type": "string",
                  "enum": [
                    "under_50_seats",
                    "under_100_seats",
                    "under_180_seats",
                    "under_250_seats",
                    "over_250_seats"
                  ],
                  "description": "An estimation of the aircraft's size based on the number of seats. When `aircraft_size`, there is a possibility to pass over `aircraft_type`, which we use to approximate the amount of seats.",
                  "examples": [
                    "under_100_seats"
                  ]
                },
                "aircraft_type": {
                  "$ref": "#/components/schemas/IATA-Aircraft-Type-Flight"
                },
                "airline": {
                  "$ref": "#/components/schemas/airline"
                }
              },
              "required": [
                "type",
                "methodology"
              ],
              "oneOf": [
                {
                  "type": "object",
                  "title": "Origin/Destination",
                  "required": [
                    "origin",
                    "destination"
                  ]
                },
                {
                  "type": "object",
                  "title": "Routing",
                  "required": [
                    "routing"
                  ]
                }
              ]
            }
          ]
        },
        "Flight-BASE-EMPREINTE": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "const": "flight",
                  "examples": [
                    "flight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "BASE-EMPREINTE",
                  "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-base-empreinte).\n",
                  "examples": [
                    "BASE-EMPREINTE"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "routing": {
                  "$ref": "#/components/schemas/flight_routing"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "aircraft_size": {
                  "type": "string",
                  "enum": [
                    "under_50_seats",
                    "under_50_seats_jet",
                    "under_50_seats_turboprop",
                    "under_100_seats",
                    "under_100_seats_jet",
                    "under_100_seats_turboprop",
                    "under_220_seats",
                    "above_220_seats"
                  ],
                  "description": "An estimation of the aircraft's size based on the number of seats. An estimation of the aircraft's size based on the number of seats. When `aircraft_size`, there is a possibility to pass over `aircraft_type`, which we use to approximate the amount of seats.",
                  "examples": [
                    "under_100_seats"
                  ]
                },
                "aircraft_type": {
                  "$ref": "#/components/schemas/IATA-Aircraft-Type-Flight"
                },
                "radiative_forcing_index": {
                  "$ref": "#/components/schemas/radiative_forcing_index",
                  "default": true
                },
                "sustainable_fuels": {
                  "$ref": "#/components/schemas/sustainable_fuels"
                }
              },
              "required": [
                "type",
                "methodology"
              ],
              "oneOf": [
                {
                  "type": "object",
                  "title": "Origin/Destination",
                  "required": [
                    "origin",
                    "destination"
                  ]
                },
                {
                  "type": "object",
                  "title": "Routing",
                  "required": [
                    "routing"
                  ]
                }
              ]
            }
          ]
        },
        "Flight-CO2-EMISSIEFACTOREN-NL": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "const": "flight",
                  "examples": [
                    "flight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "CO2-EMISSIEFACTOREN-NL",
                  "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-co2-emissiefactoren).\n",
                  "examples": [
                    "CO2-EMISSIEFACTOREN-NL"
                  ]
                },
                "methodology_version": {
                  "type": "string",
                  "description": "The published factor year to use. `2020` covers flights in 2020 and 2021; `2022` covers\nflights from 2022 onward.\n\nIf omitted, the version is resolved from `departure_date`, falling back to the latest\nversion when no date is given. A year without its own published factors resolves to the\nmost recent earlier year, so `2021` resolves to `2020` and `2023` onward resolve to\n`2022`. Years before `2020` are rejected.\n\nThe version actually used is returned as `methodology_version` on the item.\n\nThe `2020` factors are published per haul band only, so `booking_class` (and\n`fare_class` + `airline`) do not affect the result for that year.\n",
                  "default": "latest",
                  "enum": [
                    "2020",
                    "2022",
                    "latest"
                  ],
                  "examples": [
                    "2020"
                  ]
                },
                "departure_date": {
                  "$ref": "#/components/schemas/iso_8601_date",
                  "description": "The date of departure. When `methodology_version` is omitted, the factor year is picked\nfrom this date, so a 2020 or 2021 flight uses the `2020` factors and a flight from 2022\nonward uses the `2022` factors. An explicit `methodology_version` takes precedence.\n"
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "routing": {
                  "$ref": "#/components/schemas/flight_routing"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "booking_class": {
                  "$ref": "#/components/schemas/booking_class",
                  "enum": [
                    "first",
                    "premium_economy",
                    "economy",
                    "business",
                    "average"
                  ],
                  "default": "average"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "fare_class": {
                  "$ref": "#/components/schemas/fare_class"
                },
                "airline": {
                  "$ref": "#/components/schemas/airline"
                },
                "radiative_forcing_index": {
                  "$ref": "#/components/schemas/radiative_forcing_index",
                  "default": true
                },
                "sustainable_fuels": {
                  "$ref": "#/components/schemas/sustainable_fuels"
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope",
                  "default": "wtw"
                }
              },
              "required": [
                "type",
                "methodology"
              ],
              "oneOf": [
                {
                  "type": "object",
                  "title": "Origin/Destination",
                  "required": [
                    "origin",
                    "destination"
                  ]
                },
                {
                  "type": "object",
                  "title": "Routing",
                  "required": [
                    "routing"
                  ]
                }
              ]
            }
          ]
        },
        "Flight-DEFRA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "const": "flight",
                  "examples": [
                    "flight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "DEFRA",
                  "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-defra).\n",
                  "examples": [
                    "DEFRA"
                  ]
                },
                "methodology_version": {
                  "type": "string",
                  "description": "The version of the DEFRA methodology used.",
                  "default": "latest",
                  "enum": [
                    "2018",
                    "2019",
                    "2020",
                    "2021",
                    "2022",
                    "2023",
                    "2024",
                    "2025",
                    "2026",
                    "latest"
                  ],
                  "examples": [
                    "2024"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "routing": {
                  "$ref": "#/components/schemas/flight_routing"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "booking_class": {
                  "$ref": "#/components/schemas/booking_class",
                  "default": "average"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "aircraft_type": {
                  "$ref": "#/components/schemas/IATA-Aircraft-Type-Flight"
                },
                "fare_class": {
                  "$ref": "#/components/schemas/fare_class"
                },
                "airline": {
                  "$ref": "#/components/schemas/airline"
                },
                "radiative_forcing_index": {
                  "$ref": "#/components/schemas/radiative_forcing_index",
                  "default": true
                },
                "sustainable_fuels": {
                  "$ref": "#/components/schemas/sustainable_fuels"
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope",
                  "default": "wtw"
                }
              },
              "required": [
                "type",
                "methodology"
              ],
              "oneOf": [
                {
                  "type": "object",
                  "title": "Origin/Destination",
                  "required": [
                    "origin",
                    "destination"
                  ]
                },
                {
                  "type": "object",
                  "title": "Routing",
                  "required": [
                    "routing"
                  ]
                }
              ]
            }
          ]
        },
        "Flight-GATE4": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "const": "flight",
                  "examples": [
                    "flight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "GATE4",
                  "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-gate4).\n",
                  "examples": [
                    "GATE4"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "routing": {
                  "$ref": "#/components/schemas/flight_routing"
                },
                "booking_class": {
                  "$ref": "#/components/schemas/booking_class"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "fare_class": {
                  "$ref": "#/components/schemas/fare_class"
                },
                "airline": {
                  "$ref": "#/components/schemas/airline"
                },
                "flight_number": {
                  "$ref": "#/components/schemas/flight_number"
                },
                "departure_date": {
                  "$ref": "#/components/schemas/iso_8601_date"
                },
                "sustainable_fuels": {
                  "$ref": "#/components/schemas/sustainable_fuels"
                }
              },
              "required": [
                "type",
                "methodology"
              ],
              "oneOf": [
                {
                  "type": "object",
                  "title": "Origin/Destination",
                  "required": [
                    "origin",
                    "destination"
                  ]
                },
                {
                  "type": "object",
                  "title": "Routing",
                  "required": [
                    "routing"
                  ]
                }
              ]
            }
          ]
        },
        "Flight-ICAO": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "const": "flight",
                  "examples": [
                    "flight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "ICAO",
                  "description": "Default: `\"DEFRA\"`.\n\nAcceptable for internal use or general estimation, but it does not retrieve data from ICEC. To get access to the ICEC dataset, talk with your account manager.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-icao).\n",
                  "examples": [
                    "ICAO"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "booking_class": {
                  "$ref": "#/components/schemas/booking_class",
                  "default": "economy"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "aircraft_type": {
                  "$ref": "#/components/schemas/IATA-Aircraft-Type-Flight",
                  "description": "`\"aircraft_type\": \"737\"` for flights under 550 km; `\"aircraft_type\": \"321\"` for flights under 5500 and above 550 km; `\"aircraft_type\": \"320\"` for flights above 5500 km"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "routing": {
                  "$ref": "#/components/schemas/flight_routing"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "fare_class": {
                  "$ref": "#/components/schemas/fare_class"
                },
                "airline": {
                  "$ref": "#/components/schemas/airline"
                },
                "sustainable_fuels": {
                  "$ref": "#/components/schemas/sustainable_fuels"
                }
              },
              "required": [
                "type",
                "methodology"
              ],
              "oneOf": [
                {
                  "type": "object",
                  "title": "Origin/Destination",
                  "required": [
                    "origin",
                    "destination"
                  ]
                },
                {
                  "type": "object",
                  "title": "Routing",
                  "required": [
                    "routing"
                  ]
                }
              ]
            }
          ]
        },
        "Flight-TIM": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "const": "flight",
                  "examples": [
                    "flight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "TIM",
                  "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-tim).\n",
                  "examples": [
                    "TIM"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination_TIM"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination_TIM"
                },
                "routing": {
                  "$ref": "#/components/schemas/flight_routing"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope"
                },
                "booking_class": {
                  "$ref": "#/components/schemas/booking_class",
                  "default": "economy"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "fare_class": {
                  "$ref": "#/components/schemas/fare_class"
                },
                "airline": {
                  "$ref": "#/components/schemas/airline"
                },
                "flight_number": {
                  "$ref": "#/components/schemas/flight_number"
                },
                "departure_date": {
                  "$ref": "#/components/schemas/iso_8601_date"
                },
                "sustainable_fuels": {
                  "$ref": "#/components/schemas/sustainable_fuels"
                },
                "logistics_hub": {
                  "type": "boolean",
                  "default": false,
                  "description": "If the flight is a logistics hub flight"
                }
              },
              "required": [
                "type",
                "methodology"
              ],
              "oneOf": [
                {
                  "type": "object",
                  "title": "Origin/Destination",
                  "required": [
                    "origin",
                    "destination"
                  ]
                },
                {
                  "type": "object",
                  "title": "Routing",
                  "required": [
                    "routing"
                  ]
                }
              ]
            }
          ]
        },
        "Flight-TU-CHALMERS": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "const": "flight",
                  "examples": [
                    "flight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "TU-CHALMERS",
                  "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-tu-chalmers).\n",
                  "examples": [
                    "TU-CHALMERS"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "routing": {
                  "$ref": "#/components/schemas/flight_routing"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "booking_class": {
                  "$ref": "#/components/schemas/booking_class",
                  "default": "economy"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "fare_class": {
                  "$ref": "#/components/schemas/fare_class"
                },
                "airline": {
                  "$ref": "#/components/schemas/airline"
                },
                "sustainable_fuels": {
                  "$ref": "#/components/schemas/sustainable_fuels"
                },
                "plane_type": {
                  "type": "string",
                  "enum": [
                    "scheduled",
                    "charter"
                  ],
                  "default": "scheduled",
                  "example": "scheduled"
                },
                "biofuel": {
                  "type": "boolean",
                  "default": false
                }
              },
              "required": [
                "type",
                "methodology"
              ],
              "oneOf": [
                {
                  "type": "object",
                  "title": "Origin/Destination",
                  "required": [
                    "origin",
                    "destination"
                  ]
                },
                {
                  "type": "object",
                  "title": "Routing",
                  "required": [
                    "routing"
                  ]
                }
              ]
            }
          ]
        },
        "Flight-US-EPA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "const": "flight",
                  "examples": [
                    "flight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "US-EPA",
                  "description": "Default: `\"DEFRA\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-epa).\n",
                  "examples": [
                    "US-EPA"
                  ]
                },
                "methodology_version": {
                  "type": "string",
                  "description": "The version of the US EPA methodology used.",
                  "default": "latest",
                  "enum": [
                    "2011",
                    "2012",
                    "2013",
                    "2014",
                    "2015",
                    "2016",
                    "2017",
                    "2018",
                    "2019",
                    "2020",
                    "2021",
                    "2022",
                    "2023",
                    "2024",
                    "2025",
                    "latest"
                  ],
                  "examples": [
                    "2024"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "routing": {
                  "$ref": "#/components/schemas/flight_routing"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "sustainable_fuels": {
                  "$ref": "#/components/schemas/sustainable_fuels"
                }
              },
              "required": [
                "type",
                "methodology"
              ],
              "oneOf": [
                {
                  "type": "object",
                  "title": "Origin/Destination",
                  "required": [
                    "origin",
                    "destination"
                  ]
                },
                {
                  "type": "object",
                  "title": "Routing",
                  "required": [
                    "routing"
                  ]
                }
              ]
            }
          ]
        },
        "IATA-Aircraft-Type-Flight": {
          "type": "string",
          "enum": [
            "CS1",
            "CS3",
            "31N",
            "32N",
            "32Q",
            "338",
            "339",
            "359",
            "7M7",
            "7M8",
            "7M9",
            "789",
            "141",
            "142",
            "143",
            "146",
            "310",
            "312",
            "313",
            "318",
            "319",
            "320",
            "321",
            "330",
            "332",
            "333",
            "340",
            "342",
            "343",
            "345",
            "346",
            "380",
            "388",
            "703",
            "707",
            "717",
            "721",
            "722",
            "727",
            "731",
            "732",
            "733",
            "734",
            "735",
            "736",
            "737",
            "738",
            "739",
            "741",
            "742",
            "743",
            "744",
            "747",
            "752",
            "753",
            "757",
            "762",
            "763",
            "764",
            "767",
            "772",
            "773",
            "777",
            "787",
            "788",
            "14F",
            "31F",
            "31Y",
            "32A",
            "32F",
            "32S",
            "33F",
            "33X",
            "70F",
            "70M",
            "72A",
            "72F",
            "72M",
            "72S",
            "73A",
            "73C",
            "73E",
            "73F",
            "73G",
            "73H",
            "73J",
            "73L",
            "73M",
            "73N",
            "73P",
            "73Q",
            "73R",
            "73S",
            "73W",
            "73X",
            "73Y",
            "74C",
            "74D",
            "74E",
            "74F",
            "74H",
            "74J",
            "74L",
            "74M",
            "74N",
            "74R",
            "74T",
            "74X",
            "74Y",
            "75F",
            "75M",
            "75T",
            "75W",
            "76F",
            "76W",
            "76X",
            "76Y",
            "77F",
            "77L",
            "77W",
            "77X",
            "A28",
            "A40",
            "A4F",
            "A81",
            "AB3",
            "AB4",
            "AB6",
            "ABF",
            "ABX",
            "ABY",
            "ACD",
            "AGH",
            "AN4",
            "AN6",
            "AN7",
            "ANF",
            "AR1",
            "AR7",
            "AR8",
            "ARJ",
            "AT3",
            "AT4",
            "AT5",
            "AT7",
            "ATF",
            "ATP",
            "ATR",
            "B11",
            "B12",
            "B13",
            "B14",
            "B15",
            "BE1",
            "BE2",
            "BE9",
            "BEC",
            "BEH",
            "BES",
            "BET",
            "BH2",
            "BNI",
            "BNT",
            "CCJ",
            "CD2",
            "CL4",
            "CN1",
            "CNA",
            "CNC",
            "CNF",
            "CNJ",
            "CNT",
            "CR1",
            "CR2",
            "CR7",
            "CR9",
            "CRA",
            "CRF",
            "CRJ",
            "CRK",
            "CS2",
            "CS5",
            "CV5",
            "CVF",
            "CVR",
            "CWC",
            "D10",
            "D11",
            "D1C",
            "D1F",
            "D1Y",
            "D28",
            "D38",
            "D3F",
            "D6F",
            "D8F",
            "D8X",
            "D8Y",
            "D91",
            "D92",
            "D93",
            "D94",
            "D95",
            "D9F",
            "D9S",
            "DC3",
            "DC6",
            "DC8",
            "DC9",
            "DF2",
            "DFL",
            "DH1",
            "DH2",
            "DH3",
            "DH4",
            "DH7",
            "DH8",
            "DHB",
            "DHC",
            "DHL",
            "DHO",
            "DHP",
            "DHS",
            "DHT",
            "E70",
            "E75",
            "E90",
            "E95",
            "EM2",
            "EMB",
            "EMJ",
            "ER3",
            "ER4",
            "ERD",
            "ERJ",
            "F21",
            "F22",
            "F23",
            "F24",
            "F27",
            "F28",
            "F50",
            "F70",
            "FK7",
            "FRJ",
            "GRG",
            "GRM",
            "GRS",
            "HEC",
            "HS7",
            "I14",
            "IL6",
            "IL7",
            "IL8",
            "IL9",
            "ILW",
            "J31",
            "J32",
            "J41",
            "JST",
            "L10",
            "L11",
            "L12",
            "L15",
            "L1F",
            "L49",
            "L4T",
            "LOE",
            "LOF",
            "LOH",
            "LOM",
            "LRJ",
            "M11",
            "M1F",
            "M1M",
            "M80",
            "M81",
            "M82",
            "M83",
            "M87",
            "M88",
            "M90",
            "MA6",
            "MBH",
            "MD9",
            "MIH",
            "MU2",
            "ND2",
            "NDC",
            "NDE",
            "NDH",
            "PA1",
            "PA2",
            "PAG",
            "PAT",
            "PL2",
            "PL6",
            "PN6",
            "S20",
            "S58",
            "S61",
            "S76",
            "SF3",
            "SFB",
            "SFF",
            "SH3",
            "SH6",
            "SHB",
            "SHS",
            "SSC",
            "SU9",
            "SWM",
            "T20",
            "T2F",
            "TU3",
            "TU5",
            "VCV",
            "WWP",
            "YK2",
            "YK4",
            "YN2",
            "YN7",
            "YS1",
            "221",
            "223",
            "290",
            "295",
            "351",
            "781"
          ],
          "title": "IATA Aircraft Type Flight",
          "description": "For example, the Airbus A321 has the IATA short code `321`. ICAO publishes a similar list, their designator for the Airbus A321 is `A321`. Please don't hesitate to contact us if you can only work with ICAO codes.",
          "examples": [
            "321"
          ]
        },
        "airline": {
          "type": "string",
          "description": "The IATA Designator of an airline, e.g., 2-digit format like `LH` or 3-digit format like `220`. Airline names and ICAO codes are also supported, SQUAKE will then automatically resolve it. The combination of `fare_class` and `airline` is mutually exclusive with `booking_class`.",
          "examples": [
            "`LH` / `220` or `Lufthansa` or `DLH`, `DL` / `006` or `Delta Airlines` or `DAL`"
          ]
        },
        "booking_class": {
          "type": "string",
          "enum": [
            "first",
            "premium_economy",
            "economy",
            "business"
          ],
          "description": "When `fare_class` and `airline` SQUAKE will then automatically resolve the correct `booking_class`.",
          "examples": [
            "economy"
          ]
        },
        "fare_class": {
          "type": "string",
          "description": "The combination of `fare_class` and `airline` is mutually exclusive with `booking_class`. This is a single letter e.g. `Y`, `J`, etc.",
          "examples": [
            "B"
          ]
        },
        "flight_number": {
          "type": "string",
          "description": "Flight numbers should include the airline designator, for example `BA115` is accepted but `115` also works with passed separately `airline`.",
          "examples": [
            "BA115"
          ]
        },
        "radiative_forcing_index": {
          "type": "boolean",
          "description": "Controls if a multiplier that factors in gases emitted to the atmosphere when flying at altitude should be applied.",
          "default": true
        },
        "sustainable_fuels": {
          "type": "object",
          "title": "sustainable_fuels",
          "description": "Indicates the usage of sustainable fuels. This lowers the computed emissions in SQUAKE but is not part of the current official emissions frameworks.",
          "properties": {
            "carbon_reduction_percentage_of_total": {
              "type": "number",
              "description": "The percentage of emissions reduction through the usage of  sustainable fuel.",
              "minimum": 0,
              "maximum": 1,
              "default": 0,
              "examples": [
                0.25
              ]
            }
          },
          "examples": [
            {
              "carbon_reduction_percentage_of_total": 0.25
            }
          ]
        }
      },
      "number_of_nights": {
        "type": "integer",
        "format": "int32",
        "minimum": 1,
        "multipleOf": 1,
        "default": 3,
        "examples": [
          2
        ]
      },
      "Hotel-DEFRA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Hotel DEFRA",
            "properties": {
              "type": {
                "const": "hotel",
                "examples": [
                  "hotel"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "DEFRA",
                "description": "Default: `\"GREENVIEW\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/hotel/hotel-defra).\n",
                "examples": [
                  "DEFRA"
                ]
              },
              "methodology_version": {
                "type": "string",
                "description": "The version of the DEFRA methodology used.",
                "default": "latest",
                "enum": [
                  "2018",
                  "2019",
                  "2020",
                  "2021",
                  "2022",
                  "2023",
                  "2024",
                  "2025",
                  "2026",
                  "latest"
                ],
                "examples": [
                  "2024"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "number_of_nights": {
                "$ref": "#/components/schemas/number_of_nights"
              },
              "country": {
                "$ref": "#/components/schemas/country",
                "default": "GB"
              },
              "city": {
                "type": "string",
                "description": "A city where the hotel is located. You can find the list of supported cities [here](https://squake.notion.site/51e2eb5f9e484c4dad4ceb100d2b90bb?v=013db568cf4c4dbd8403ab5f329458bf).\n\n`DEFRA` currently only supports `London` as a city.\n"
              }
            },
            "required": [
              "type",
              "methodology",
              "number_of_nights"
            ]
          }
        ]
      },
      "stars": {
        "type": "integer",
        "description": "`stars` is mutually exclusive with `hotel_type`, `stars` is prioritized over `hotel_type`.",
        "format": "int32",
        "minimum": 1,
        "maximum": 5,
        "multipleOf": 1,
        "examples": [
          5
        ]
      },
      "hotel_type": {
        "type": "string",
        "enum": [
          "resort",
          "nonresort",
          "full_service_resort",
          "full_service_nonresort",
          "limited_service",
          "economy_segment_nonresort",
          "midscale_segment_nonresort",
          "upper_midscale_segment_resort",
          "upper_midscale_segment_nonresort",
          "upscale_segment_resort",
          "upscale_segment_nonresort",
          "upper_upscale_segment_resort",
          "upper_upscale_segment_nonresort",
          "luxury_segment_resort",
          "luxury_segment_nonresort",
          "urban_location",
          "suburban_location",
          "small_metro_town_location",
          "rural_highway_location",
          "airport_location",
          "all_suites_or_extended_stay_hotel",
          "convention_or_conference_hotel",
          "hotel_average",
          "all_inclusive_resort",
          "beach_resort",
          "all_other_resort"
        ],
        "description": "`hotel_type` is mutually exclusive with `stars`, `stars` is prioritized over `hotel_type`.",
        "default": "hotel_average"
      },
      "Hotel-HCMI": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Hotel HCMI",
            "properties": {
              "type": {
                "const": "hotel",
                "examples": [
                  "hotel"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "HCMI",
                "description": "Default: `\"GREENVIEW\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/hotel/hotel-hcmi).\n",
                "examples": [
                  "HCMI"
                ]
              },
              "methodology_version": {
                "type": "string",
                "description": "The HCMI/CHSB dataset year. Omit or use `latest` for the latest stable year (`2024`). No dataset exists for `2022` or `2025`; those resolve to the nearest earlier year.\n",
                "default": "latest",
                "enum": [
                  "2015",
                  "2016",
                  "2017",
                  "2018",
                  "2019",
                  "2020",
                  "2021",
                  "2023",
                  "2024",
                  "2026",
                  "latest"
                ],
                "examples": [
                  "2024"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "stars": {
                "$ref": "#/components/schemas/stars"
              },
              "number_of_nights": {
                "$ref": "#/components/schemas/number_of_nights"
              },
              "square_meters": {
                "type": "number",
                "format": "double",
                "minimum": 1,
                "description": "When provided, the hotel is calculated by floor area using the per-square-metre dataset. Takes precedence over `number_of_nights`.\n",
                "examples": [
                  120
                ]
              },
              "hcmi_member": {
                "type": "boolean",
                "default": false,
                "examples": [
                  true
                ]
              },
              "account_for_total": {
                "type": "boolean",
                "default": false,
                "description": "`false` (default) uses the HCMI Rooms Footprint per occupied room; `true` uses the whole-property Hotel Carbon Footprint per occupied room. Applies to the per-occupied-room calculation only — ignored when `square_meters` is provided.\n",
                "examples": [
                  false
                ]
              },
              "hotel_type": {
                "$ref": "#/components/schemas/hotel_type"
              },
              "country": {
                "$ref": "#/components/schemas/country",
                "default": "GB"
              },
              "state": {
                "type": "string",
                "description": "A state or province where the hotel is located. You can find the list of supported states [here](https://squake.notion.site/66a1450838b84494b0a17684b578ffa0?v=d1ee83f184cc4856bfa2a3f23a15c9ff)."
              },
              "city": {
                "type": "string",
                "description": "A city where the hotel is located. You can find the list of supported cities [here](https://squake.notion.site/51e2eb5f9e484c4dad4ceb100d2b90bb?v=013db568cf4c4dbd8403ab5f329458bf)."
              }
            },
            "required": [
              "type",
              "methodology",
              "number_of_nights"
            ]
          }
        ]
      },
      "Hotel-GREENVIEW": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Hotel Greenview",
            "properties": {
              "type": {
                "const": "hotel",
                "examples": [
                  "hotel"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "GREENVIEW",
                "description": "Default: `\"GREENVIEW\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/hotel/hotel-greenview).\n",
                "examples": [
                  "GREENVIEW"
                ]
              },
              "methodology_version": {
                "type": "string",
                "description": "The version of the GreenView HFT dataset used.",
                "default": "latest",
                "enum": [
                  "2021",
                  "2022",
                  "2023",
                  "2024",
                  "2025",
                  "2026",
                  "latest"
                ],
                "examples": [
                  "2024"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "number_of_nights": {
                "$ref": "#/components/schemas/number_of_nights"
              },
              "country": {
                "$ref": "#/components/schemas/country"
              },
              "city": {
                "type": "string",
                "description": "The city where the hotel is located. The full list of the supported cities is [here](https://squake.notion.site/237754e0050481838a1deea7dc0a7ba0?v=237754e00504812aba8d000c4b480cf4&source=copy_link).\n"
              },
              "state": {
                "type": "string",
                "description": "The state or province where the hotel is located. The full list of the supported states is [here](https://squake.notion.site/237754e005048191a59ef561244c09b0?v=237754e0050481758081000c23e8e4dd&source=copy_link)."
              }
            },
            "required": [
              "type",
              "methodology",
              "number_of_nights"
            ]
          }
        ]
      },
      "Hotel-NOS-GESTES-CLIMAT": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Hotel NOS-GESTES-CLIMAT",
            "properties": {
              "type": {
                "const": "hotel",
                "examples": [
                  "hotel"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "NOS-GESTES-CLIMAT",
                "description": "Default: `\"GREENVIEW\"`.\n\nUses a fixed factor of `6.94 kgCO2e` per night from Nos Gestes Climat. Details for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/hotel/hotel-nos-gestes-climat).\n",
                "examples": [
                  "NOS-GESTES-CLIMAT"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "number_of_nights": {
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "multipleOf": 1,
                "examples": [
                  2
                ]
              }
            },
            "required": [
              "type",
              "methodology",
              "number_of_nights"
            ]
          }
        ]
      },
      "Hotel": {
        "type": "object",
        "title": "Hotel",
        "description": "Hotel considers only activities related to the rentals of rooms.\n",
        "properties": {
          "type": {
            "const": "hotel",
            "examples": [
              "hotel"
            ]
          },
          "methodology": {
            "type": "string"
          }
        },
        "discriminator": {
          "propertyName": "methodology",
          "mapping": {
            "DEFRA": "#/components/schemas/Hotel-DEFRA",
            "HCMI": "#/components/schemas/Hotel-HCMI",
            "GREENVIEW": "#/components/schemas/Hotel-GREENVIEW",
            "NOS-GESTES-CLIMAT": "#/components/schemas/Hotel-NOS-GESTES-CLIMAT"
          }
        },
        "anyOf": [
          {
            "$ref": "#/components/schemas/Hotel-DEFRA"
          },
          {
            "$ref": "#/components/schemas/Hotel-HCMI"
          },
          {
            "$ref": "#/components/schemas/Hotel-GREENVIEW"
          },
          {
            "$ref": "#/components/schemas/Hotel-NOS-GESTES-CLIMAT"
          }
        ],
        "Hotel-DEFRA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Hotel DEFRA",
              "properties": {
                "type": {
                  "const": "hotel",
                  "examples": [
                    "hotel"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "DEFRA",
                  "description": "Default: `\"GREENVIEW\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/hotel/hotel-defra).\n",
                  "examples": [
                    "DEFRA"
                  ]
                },
                "methodology_version": {
                  "type": "string",
                  "description": "The version of the DEFRA methodology used.",
                  "default": "latest",
                  "enum": [
                    "2018",
                    "2019",
                    "2020",
                    "2021",
                    "2022",
                    "2023",
                    "2024",
                    "2025",
                    "2026",
                    "latest"
                  ],
                  "examples": [
                    "2024"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "number_of_nights": {
                  "$ref": "#/components/schemas/number_of_nights"
                },
                "country": {
                  "$ref": "#/components/schemas/country",
                  "default": "GB"
                },
                "city": {
                  "type": "string",
                  "description": "A city where the hotel is located. You can find the list of supported cities [here](https://squake.notion.site/51e2eb5f9e484c4dad4ceb100d2b90bb?v=013db568cf4c4dbd8403ab5f329458bf).\n\n`DEFRA` currently only supports `London` as a city.\n"
                }
              },
              "required": [
                "type",
                "methodology",
                "number_of_nights"
              ]
            }
          ]
        },
        "Hotel-GREENVIEW": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Hotel Greenview",
              "properties": {
                "type": {
                  "const": "hotel",
                  "examples": [
                    "hotel"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "GREENVIEW",
                  "description": "Default: `\"GREENVIEW\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/hotel/hotel-greenview).\n",
                  "examples": [
                    "GREENVIEW"
                  ]
                },
                "methodology_version": {
                  "type": "string",
                  "description": "The version of the GreenView HFT dataset used.",
                  "default": "latest",
                  "enum": [
                    "2021",
                    "2022",
                    "2023",
                    "2024",
                    "2025",
                    "2026",
                    "latest"
                  ],
                  "examples": [
                    "2024"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "number_of_nights": {
                  "$ref": "#/components/schemas/number_of_nights"
                },
                "country": {
                  "$ref": "#/components/schemas/country"
                },
                "city": {
                  "type": "string",
                  "description": "The city where the hotel is located. The full list of the supported cities is [here](https://squake.notion.site/237754e0050481838a1deea7dc0a7ba0?v=237754e00504812aba8d000c4b480cf4&source=copy_link).\n"
                },
                "state": {
                  "type": "string",
                  "description": "The state or province where the hotel is located. The full list of the supported states is [here](https://squake.notion.site/237754e005048191a59ef561244c09b0?v=237754e0050481758081000c23e8e4dd&source=copy_link)."
                }
              },
              "required": [
                "type",
                "methodology",
                "number_of_nights"
              ]
            }
          ]
        },
        "Hotel-NOS-GESTES-CLIMAT": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Hotel NOS-GESTES-CLIMAT",
              "properties": {
                "type": {
                  "const": "hotel",
                  "examples": [
                    "hotel"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "NOS-GESTES-CLIMAT",
                  "description": "Default: `\"GREENVIEW\"`.\n\nUses a fixed factor of `6.94 kgCO2e` per night from Nos Gestes Climat. Details for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/hotel/hotel-nos-gestes-climat).\n",
                  "examples": [
                    "NOS-GESTES-CLIMAT"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "number_of_nights": {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 1,
                  "multipleOf": 1,
                  "examples": [
                    2
                  ]
                }
              },
              "required": [
                "type",
                "methodology",
                "number_of_nights"
              ]
            }
          ]
        },
        "Hotel-HCMI": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Hotel HCMI",
              "properties": {
                "type": {
                  "const": "hotel",
                  "examples": [
                    "hotel"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "HCMI",
                  "description": "Default: `\"GREENVIEW\"`.\n\nDetails for the methodology can be found in [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/hotel/hotel-hcmi).\n",
                  "examples": [
                    "HCMI"
                  ]
                },
                "methodology_version": {
                  "type": "string",
                  "description": "The HCMI/CHSB dataset year. Omit or use `latest` for the latest stable year (`2024`). No dataset exists for `2022` or `2025`; those resolve to the nearest earlier year.\n",
                  "default": "latest",
                  "enum": [
                    "2015",
                    "2016",
                    "2017",
                    "2018",
                    "2019",
                    "2020",
                    "2021",
                    "2023",
                    "2024",
                    "2026",
                    "latest"
                  ],
                  "examples": [
                    "2024"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "stars": {
                  "$ref": "#/components/schemas/stars"
                },
                "number_of_nights": {
                  "$ref": "#/components/schemas/number_of_nights"
                },
                "square_meters": {
                  "type": "number",
                  "format": "double",
                  "minimum": 1,
                  "description": "When provided, the hotel is calculated by floor area using the per-square-metre dataset. Takes precedence over `number_of_nights`.\n",
                  "examples": [
                    120
                  ]
                },
                "hcmi_member": {
                  "type": "boolean",
                  "default": false,
                  "examples": [
                    true
                  ]
                },
                "account_for_total": {
                  "type": "boolean",
                  "default": false,
                  "description": "`false` (default) uses the HCMI Rooms Footprint per occupied room; `true` uses the whole-property Hotel Carbon Footprint per occupied room. Applies to the per-occupied-room calculation only — ignored when `square_meters` is provided.\n",
                  "examples": [
                    false
                  ]
                },
                "hotel_type": {
                  "$ref": "#/components/schemas/hotel_type"
                },
                "country": {
                  "$ref": "#/components/schemas/country",
                  "default": "GB"
                },
                "state": {
                  "type": "string",
                  "description": "A state or province where the hotel is located. You can find the list of supported states [here](https://squake.notion.site/66a1450838b84494b0a17684b578ffa0?v=d1ee83f184cc4856bfa2a3f23a15c9ff)."
                },
                "city": {
                  "type": "string",
                  "description": "A city where the hotel is located. You can find the list of supported cities [here](https://squake.notion.site/51e2eb5f9e484c4dad4ceb100d2b90bb?v=013db568cf4c4dbd8403ab5f329458bf)."
                }
              },
              "required": [
                "type",
                "methodology",
                "number_of_nights"
              ]
            }
          ]
        },
        "hotel_type": {
          "type": "string",
          "enum": [
            "resort",
            "nonresort",
            "full_service_resort",
            "full_service_nonresort",
            "limited_service",
            "economy_segment_nonresort",
            "midscale_segment_nonresort",
            "upper_midscale_segment_resort",
            "upper_midscale_segment_nonresort",
            "upscale_segment_resort",
            "upscale_segment_nonresort",
            "upper_upscale_segment_resort",
            "upper_upscale_segment_nonresort",
            "luxury_segment_resort",
            "luxury_segment_nonresort",
            "urban_location",
            "suburban_location",
            "small_metro_town_location",
            "rural_highway_location",
            "airport_location",
            "all_suites_or_extended_stay_hotel",
            "convention_or_conference_hotel",
            "hotel_average",
            "all_inclusive_resort",
            "beach_resort",
            "all_other_resort"
          ],
          "description": "`hotel_type` is mutually exclusive with `stars`, `stars` is prioritized over `hotel_type`.",
          "default": "hotel_average"
        },
        "number_of_nights": {
          "type": "integer",
          "format": "int32",
          "minimum": 1,
          "multipleOf": 1,
          "default": 3,
          "examples": [
            2
          ]
        },
        "room_type": {
          "type": "string",
          "enum": [
            "adjacent_room",
            "adjoining_room",
            "cabana",
            "connecting_rooms",
            "double_double",
            "double",
            "executive_floor",
            "hollywood_twin",
            "king",
            "mini_suite",
            "murphy_room",
            "president_suite",
            "quad",
            "queen",
            "single",
            "suite",
            "triple",
            "twin"
          ],
          "description": "If you have less specific sizes, choose one of `single`, `double,` `suite` for best results.",
          "default": "double",
          "examples": [
            "single"
          ]
        },
        "stars": {
          "type": "integer",
          "description": "`stars` is mutually exclusive with `hotel_type`, `stars` is prioritized over `hotel_type`.",
          "format": "int32",
          "minimum": 1,
          "maximum": 5,
          "multipleOf": 1,
          "examples": [
            5
          ]
        }
      },
      "Inland-Waterways": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Inland Waterways",
            "description": "If you have freight and don't know the type, you can use `Logistics`. Additional information may be returned in the response for `GLEC`. The format is:\n```json\n  \"data\": [\n    {\n      \"co2e_in_g\": int,\n      \"co2e_emissions_wtw_in_g\": int,\n      \"co2e_per_tonne_km_in_g\": int,\n      \"tonne_km\": int,\n      \"reporting_year\": int,\n      \"transportation_mode\": \"string\"\n    }\n  ]\n```\n",
            "properties": {
              "type": {
                "const": "inland_waterways",
                "examples": [
                  "inland_waterways"
                ]
              },
              "methodology": {
                "const": "GLEC",
                "description": "Detailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/inland-waterways/inland-waterways-glec).\n",
                "examples": [
                  "GLEC"
                ],
                "default": "GLEC"
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "weight_in_tonnes": {
                "type": "number",
                "format": "float",
                "exclusiveMinimum": 0,
                "examples": [
                  2.5
                ]
              },
              "vessel_type": {
                "type": "string",
                "enum": [
                  "container_vessel_110_m",
                  "container_vessel_135_m",
                  "container_vessel_coupled_convoys",
                  "coupled_convoys",
                  "motor_vessels_under_50_m",
                  "motor_vessels_under_80_m",
                  "motor_vessel_under_110_m",
                  "motor_vessel_135_m",
                  "pushed_convoy_push_boat_2_barges",
                  "pushed_convoy_push_boat_4_5_barges",
                  "pushed_convoy_push_boat_6_barges",
                  "tanker_vessel"
                ],
                "default": "motor_vessels_under_50_m",
                "examples": [
                  "motor_vessels_under_50_m"
                ]
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope",
                "default": "wtw"
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination",
              "weight_in_tonnes"
            ]
          }
        ]
      },
      "Logistics-Hub": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Logistics Hub",
            "description": "The `logistics_hub` type replaces `logistics_site`. The `logistics_site` type is still supported but is **deprecated**; prefer `logistics_hub` for new integrations.\n\nAdditional information may be returned in the response for `GLEC`. The format is:\n```json\n  \"data\": [\n    {\n      \"co2e_in_g\": int,\n      \"co2e_per_tonne_in_g\": int,\n      \"reporting_year\": int,\n      \"transportation_mode\": \"string\"\n    }\n  ]\n```\n",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "logistics_hub",
                  "logistics_site"
                ],
                "default": "logistics_hub",
                "description": "Use `logistics_hub`. The `logistics_site` value is still supported but is **deprecated**.\n",
                "examples": [
                  "logistics_hub"
                ]
              },
              "methodology": {
                "const": "GLEC",
                "description": "Detailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/logistics-site/logistics-site-glec).\n",
                "examples": [
                  "GLEC"
                ],
                "default": "GLEC"
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "weight_in_tonnes": {
                "$ref": "#/components/schemas/weight_in_tonnes"
              },
              "logistics_site_type": {
                "type": "string",
                "enum": [
                  "transhipment_site",
                  "storage_and_transhipment",
                  "warehouse",
                  "maritime_container_terminal",
                  "liquid_bulk_terminal"
                ],
                "default": "warehouse",
                "examples": [
                  "warehouse"
                ]
              },
              "condition_type": {
                "type": "string",
                "enum": [
                  "ambient",
                  "mixed",
                  "temperature_controlled"
                ],
                "description": "`temperature_controlled` is only relevant for `logistics_site_type: 'maritime_container_terminal'`\n",
                "default": "mixed",
                "examples": [
                  "ambient"
                ]
              }
            },
            "required": [
              "type",
              "methodology",
              "weight_in_tonnes"
            ]
          }
        ]
      },
      "Logistics": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Logistics",
            "description": "Logistics is a generalization of air, sea, rail, and road freight. The journey provided via either `distance_in_km` or `origin` & `destination` is split into multiple parts, and the appropriate specific freight methodologies are used for each part, depending on the parameters provided. If you know the type in advance, prefer using the specific type.",
            "properties": {
              "type": {
                "const": "logistics",
                "examples": [
                  "logistics"
                ]
              },
              "methodology": {
                "const": "SQUAKE",
                "examples": [
                  "SQUAKE"
                ],
                "default": "SQUAKE"
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "weight_in_kg": {
                "type": "number",
                "format": "float",
                "exclusiveMinimum": 0,
                "default": 10,
                "examples": [
                  23.4
                ]
              },
              "shipping_method": {
                "type": "string",
                "enum": [
                  "express",
                  "normal"
                ],
                "default": "express",
                "examples": [
                  "normal"
                ]
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              }
            },
            "required": [
              "type",
              "methodology",
              "weight_in_kg",
              "origin",
              "destination"
            ]
          }
        ]
      },
      "IATA-Aircraft-Type-Private-Jet": {
        "type": "string",
        "enum": [
          "100",
          "141",
          "142",
          "143",
          "146",
          "14F",
          "221",
          "223",
          "290",
          "295",
          "310",
          "312",
          "313",
          "318",
          "319",
          "31F",
          "31N",
          "31X",
          "31Y",
          "320",
          "321",
          "32A",
          "32B",
          "32F",
          "32N",
          "32Q",
          "32S",
          "330",
          "332",
          "333",
          "338",
          "339",
          "33F",
          "33X",
          "340",
          "342",
          "343",
          "345",
          "346",
          "350",
          "351",
          "359",
          "380",
          "388",
          "703",
          "707",
          "70F",
          "70M",
          "717",
          "721",
          "722",
          "725",
          "727",
          "72A",
          "72F",
          "72M",
          "731",
          "732",
          "733",
          "734",
          "735",
          "736",
          "737",
          "738",
          "739",
          "73A",
          "73C",
          "73E",
          "73F",
          "73G",
          "73H",
          "73J",
          "73L",
          "73M",
          "73N",
          "73P",
          "73Q",
          "73R",
          "73S",
          "73W",
          "73X",
          "73Y",
          "741",
          "742",
          "743",
          "744",
          "747",
          "74C",
          "74D",
          "74E",
          "74F",
          "74H",
          "74I",
          "74L",
          "74M",
          "74N",
          "74R",
          "74T",
          "74X",
          "74Y",
          "752",
          "753",
          "757",
          "75M",
          "75T",
          "75W",
          "762",
          "763",
          "764",
          "767",
          "76F",
          "76W",
          "76X",
          "76Y",
          "772",
          "773",
          "777",
          "77F",
          "77L",
          "77W",
          "77X",
          "781",
          "787",
          "788",
          "789",
          "7M8",
          "7M9",
          "A26",
          "A28",
          "A40",
          "A4F",
          "A81",
          "AB3",
          "AB4",
          "AB6",
          "ABF",
          "ABX",
          "ABY",
          "ACD",
          "AGH",
          "AN4",
          "AN6",
          "AN7",
          "ANF",
          "AR1",
          "AR7",
          "AR8",
          "ARJ",
          "AT3",
          "AT4",
          "AT5",
          "AT7",
          "ATF",
          "ATP",
          "ATR",
          "B11",
          "B12",
          "B13",
          "B14",
          "B15",
          "BE1",
          "BE2",
          "BE4",
          "BE9",
          "BEC",
          "BEH",
          "BES",
          "BET",
          "BH2",
          "BNI",
          "BNT",
          "C55",
          "CCJ",
          "CCX",
          "CD2",
          "CL4",
          "CN1",
          "CN2",
          "CNA",
          "CNC",
          "CNF",
          "CNJ",
          "CNT",
          "CR1",
          "CR2",
          "CR7",
          "CR9",
          "CRA",
          "CRF",
          "CRJ",
          "CRK",
          "CS2",
          "CV5",
          "CVF",
          "CVR",
          "CWC",
          "D10",
          "D11",
          "D1C",
          "D1F",
          "D1Y",
          "D20",
          "D28",
          "D38",
          "D3F",
          "D6F",
          "D8F",
          "D8X",
          "D8Y",
          "D91",
          "D92",
          "D93",
          "D94",
          "D95",
          "D9F",
          "D9S",
          "DC3",
          "DC6",
          "DC8",
          "DC9",
          "DF2",
          "DF7",
          "DF8",
          "DF9",
          "DFL",
          "DH1",
          "DH2",
          "DH3",
          "DH4",
          "DH7",
          "DH8",
          "DHB",
          "DHC",
          "DHL",
          "DHO",
          "DHP",
          "DHS",
          "DHT",
          "E70",
          "E75",
          "E90",
          "E95",
          "EC3",
          "EM2",
          "EMB",
          "EMJ",
          "EP1",
          "EP3",
          "ER3",
          "ER4",
          "ERD",
          "ERJ",
          "F21",
          "F22",
          "F23",
          "F24",
          "F27",
          "F28",
          "F50",
          "F70",
          "FK7",
          "FRJ",
          "GJ4",
          "GJ5",
          "GJ6",
          "GR3",
          "GRG",
          "GRJ",
          "GRM",
          "GRS",
          "H25",
          "HEC",
          "HHJ",
          "HS7",
          "I14",
          "IL6",
          "IL7",
          "IL8",
          "IL9",
          "ILW",
          "J31",
          "J41",
          "JST",
          "L10",
          "L11",
          "L12",
          "L15",
          "L1F",
          "L2J",
          "L49",
          "L4T",
          "LOE",
          "LOF",
          "LOH",
          "LOM",
          "LRJ",
          "M11",
          "M1F",
          "M1M",
          "M80",
          "M81",
          "M82",
          "M83",
          "M87",
          "M88",
          "M90",
          "MA6",
          "MBH",
          "MD9",
          "MIH",
          "MU2",
          "ND2",
          "NDC",
          "NDE",
          "NDH",
          "P18",
          "PA1",
          "PA2",
          "PAG",
          "PAT",
          "PL2",
          "PL4",
          "PL6",
          "PN6",
          "S20",
          "S58",
          "S61",
          "S76",
          "SF3",
          "SFB",
          "SFF",
          "SH3",
          "SH6",
          "SHB",
          "SHS",
          "SSC",
          "SU9",
          "SWM",
          "T20",
          "T2F",
          "TU3",
          "TU5",
          "VCV",
          "WWP",
          "YK2",
          "YK4",
          "YN2",
          "YN7",
          "YS1"
        ],
        "title": "IATA Aircraft Type Private Jet",
        "description": "For example, the Airbus A321 has the IATA short code `321`. All ICAO codes that correspond to the published IATA codes are also supported.",
        "examples": [
          "321"
        ]
      },
      "Private-Jet": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Private Jet",
            "description": "The full list of aircraft supported by SQUAKE could be found [here](https://squake.notion.site/Private-Jet-SQUAKE-11928ae8ff5f4aa6a71578681a9a9bf6). If your aircraft type is not supported, feel free to contact us.",
            "properties": {
              "type": {
                "const": "private_jet",
                "examples": [
                  "private_jet"
                ]
              },
              "methodology": {
                "const": "SQUAKE",
                "default": "SQUAKE",
                "examples": [
                  "SQUAKE"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "identifier": {
                "$ref": "#/components/schemas/IATA-Aircraft-Type-Private-Jet",
                "description": "`IATA` or `ICAO` code of the aircraft.",
                "example": "P18"
              },
              "identifier_kind": {
                "type": "string",
                "enum": [
                  "ICAO",
                  "IATA"
                ],
                "default": "ICAO",
                "examples": [
                  "IATA"
                ]
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination",
              "identifier",
              "identifier_kind"
            ]
          }
        ],
        "IATA-Aircraft-Type-Private-Jet": {
          "type": "string",
          "enum": [
            "100",
            "141",
            "142",
            "143",
            "146",
            "14F",
            "221",
            "223",
            "290",
            "295",
            "310",
            "312",
            "313",
            "318",
            "319",
            "31F",
            "31N",
            "31X",
            "31Y",
            "320",
            "321",
            "32A",
            "32B",
            "32F",
            "32N",
            "32Q",
            "32S",
            "330",
            "332",
            "333",
            "338",
            "339",
            "33F",
            "33X",
            "340",
            "342",
            "343",
            "345",
            "346",
            "350",
            "351",
            "359",
            "380",
            "388",
            "703",
            "707",
            "70F",
            "70M",
            "717",
            "721",
            "722",
            "725",
            "727",
            "72A",
            "72F",
            "72M",
            "731",
            "732",
            "733",
            "734",
            "735",
            "736",
            "737",
            "738",
            "739",
            "73A",
            "73C",
            "73E",
            "73F",
            "73G",
            "73H",
            "73J",
            "73L",
            "73M",
            "73N",
            "73P",
            "73Q",
            "73R",
            "73S",
            "73W",
            "73X",
            "73Y",
            "741",
            "742",
            "743",
            "744",
            "747",
            "74C",
            "74D",
            "74E",
            "74F",
            "74H",
            "74I",
            "74L",
            "74M",
            "74N",
            "74R",
            "74T",
            "74X",
            "74Y",
            "752",
            "753",
            "757",
            "75M",
            "75T",
            "75W",
            "762",
            "763",
            "764",
            "767",
            "76F",
            "76W",
            "76X",
            "76Y",
            "772",
            "773",
            "777",
            "77F",
            "77L",
            "77W",
            "77X",
            "781",
            "787",
            "788",
            "789",
            "7M8",
            "7M9",
            "A26",
            "A28",
            "A40",
            "A4F",
            "A81",
            "AB3",
            "AB4",
            "AB6",
            "ABF",
            "ABX",
            "ABY",
            "ACD",
            "AGH",
            "AN4",
            "AN6",
            "AN7",
            "ANF",
            "AR1",
            "AR7",
            "AR8",
            "ARJ",
            "AT3",
            "AT4",
            "AT5",
            "AT7",
            "ATF",
            "ATP",
            "ATR",
            "B11",
            "B12",
            "B13",
            "B14",
            "B15",
            "BE1",
            "BE2",
            "BE4",
            "BE9",
            "BEC",
            "BEH",
            "BES",
            "BET",
            "BH2",
            "BNI",
            "BNT",
            "C55",
            "CCJ",
            "CCX",
            "CD2",
            "CL4",
            "CN1",
            "CN2",
            "CNA",
            "CNC",
            "CNF",
            "CNJ",
            "CNT",
            "CR1",
            "CR2",
            "CR7",
            "CR9",
            "CRA",
            "CRF",
            "CRJ",
            "CRK",
            "CS2",
            "CV5",
            "CVF",
            "CVR",
            "CWC",
            "D10",
            "D11",
            "D1C",
            "D1F",
            "D1Y",
            "D20",
            "D28",
            "D38",
            "D3F",
            "D6F",
            "D8F",
            "D8X",
            "D8Y",
            "D91",
            "D92",
            "D93",
            "D94",
            "D95",
            "D9F",
            "D9S",
            "DC3",
            "DC6",
            "DC8",
            "DC9",
            "DF2",
            "DF7",
            "DF8",
            "DF9",
            "DFL",
            "DH1",
            "DH2",
            "DH3",
            "DH4",
            "DH7",
            "DH8",
            "DHB",
            "DHC",
            "DHL",
            "DHO",
            "DHP",
            "DHS",
            "DHT",
            "E70",
            "E75",
            "E90",
            "E95",
            "EC3",
            "EM2",
            "EMB",
            "EMJ",
            "EP1",
            "EP3",
            "ER3",
            "ER4",
            "ERD",
            "ERJ",
            "F21",
            "F22",
            "F23",
            "F24",
            "F27",
            "F28",
            "F50",
            "F70",
            "FK7",
            "FRJ",
            "GJ4",
            "GJ5",
            "GJ6",
            "GR3",
            "GRG",
            "GRJ",
            "GRM",
            "GRS",
            "H25",
            "HEC",
            "HHJ",
            "HS7",
            "I14",
            "IL6",
            "IL7",
            "IL8",
            "IL9",
            "ILW",
            "J31",
            "J41",
            "JST",
            "L10",
            "L11",
            "L12",
            "L15",
            "L1F",
            "L2J",
            "L49",
            "L4T",
            "LOE",
            "LOF",
            "LOH",
            "LOM",
            "LRJ",
            "M11",
            "M1F",
            "M1M",
            "M80",
            "M81",
            "M82",
            "M83",
            "M87",
            "M88",
            "M90",
            "MA6",
            "MBH",
            "MD9",
            "MIH",
            "MU2",
            "ND2",
            "NDC",
            "NDE",
            "NDH",
            "P18",
            "PA1",
            "PA2",
            "PAG",
            "PAT",
            "PL2",
            "PL4",
            "PL6",
            "PN6",
            "S20",
            "S58",
            "S61",
            "S76",
            "SF3",
            "SFB",
            "SFF",
            "SH3",
            "SH6",
            "SHB",
            "SHS",
            "SSC",
            "SU9",
            "SWM",
            "T20",
            "T2F",
            "TU3",
            "TU5",
            "VCV",
            "WWP",
            "YK2",
            "YK4",
            "YN2",
            "YN7",
            "YS1"
          ],
          "title": "IATA Aircraft Type Private Jet",
          "description": "For example, the Airbus A321 has the IATA short code `321`. All ICAO codes that correspond to the published IATA codes are also supported.",
          "examples": [
            "321"
          ]
        }
      },
      "Rail-Freight-DIN-EN-16258": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Rail Freight DIN-EN-16258",
            "properties": {
              "type": {
                "const": "rail_freight",
                "examples": [
                  "rail_freight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "DIN-EN-16258",
                "description": "Default: `\"GLEC\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/rail-freight/rail-freight-din-en-16258).\n",
                "examples": [
                  "DIN-EN-16258"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "weight_in_tonnes": {
                "$ref": "#/components/schemas/weight_in_tonnes"
              },
              "train_type": {
                "type": "string",
                "enum": [
                  "500t",
                  "1000t",
                  "1500t",
                  "2000t"
                ],
                "default": "1000t",
                "examples": [
                  "1000t"
                ]
              },
              "fuel_type": {
                "type": "string",
                "enum": [
                  "electric",
                  "diesel",
                  "average",
                  "us_diesel"
                ],
                "default": "diesel",
                "examples": [
                  "diesel"
                ]
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope",
                "default": "wtw"
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination",
              "weight_in_tonnes",
              "train_type"
            ]
          }
        ]
      },
      "Rail-Freight-ECTA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Rail Freight ECTA",
            "properties": {
              "type": {
                "const": "rail_freight",
                "examples": [
                  "rail_freight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "ECTA",
                "description": "Default: `\"GLEC\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/rail-freight/rail-freight-ecta).\n",
                "examples": [
                  "ECTA"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "weight_in_tonnes": {
                "$ref": "#/components/schemas/weight_in_tonnes"
              },
              "train_type": {
                "type": "string",
                "enum": [
                  "average",
                  "container_train_intermodal",
                  "blocktrain_rtc",
                  "single_wagon_train_rtc"
                ],
                "examples": [
                  "1000t"
                ],
                "default": "average"
              },
              "fuel_type": {
                "type": "string",
                "enum": [
                  "electricity",
                  "diesel",
                  "average"
                ],
                "default": "average",
                "examples": [
                  "diesel"
                ]
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination",
              "weight_in_tonnes"
            ]
          }
        ]
      },
      "Rail-Freight-GLEC": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Rail Freight GLEC",
            "properties": {
              "type": {
                "const": "rail_freight",
                "examples": [
                  "rail_freight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "GLEC",
                "description": "Default: `\"GLEC\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/rail-freight/rail-freight-glec).\n",
                "examples": [
                  "GLEC"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "weight_in_tonnes": {
                "$ref": "#/components/schemas/weight_in_tonnes"
              },
              "fuel_type": {
                "type": "string",
                "enum": [
                  "electricity",
                  "diesel",
                  "average",
                  "us_diesel"
                ],
                "default": "diesel",
                "examples": [
                  "diesel"
                ]
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope",
                "default": "wtw"
              },
              "load_characteristic": {
                "type": "string",
                "enum": [
                  "average",
                  "container",
                  "cars",
                  "chemicals",
                  "coal_steel",
                  "building_materials",
                  "manufactured_products",
                  "cereals",
                  "truck_trailer_on_train",
                  "trailer_only_on_train"
                ],
                "default": "average",
                "examples": [
                  "average"
                ]
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination",
              "weight_in_tonnes",
              "load_characteristic"
            ]
          }
        ]
      },
      "Rail-Freight": {
        "type": "object",
        "title": "Rail Freight",
        "description": "If you have freight and don't know the type, you can use `Logistics`.\nAdditional information may be returned in the response.\n\nThe format for `DIN-EN-16258` is:\n```json\n  \"data\": [\n    {\n      \"energy_factor_ttw_in_MJ\": int,\n      \"energy_factor_wtw_in_MJ\": int,\n      \"ghg_emissions_ttw_in_g\": int,\n      \"ghg_emissions_wtw_in_g\": int\n    }\n  ]\n```\n\nThe format for `GLEC` is:\n```json\n  \"data\": [\n    {\n      \"co2e_in_g\": int,\n      \"co2e_emissions_wtw_in_g\": int,\n      \"co2e_per_tonne_km_in_g\": int,\n      \"tonne_km\": int,\n      \"reporting_year\": int,\n      \"transportation_mode\": \"string\"\n    }\n  ]\n```\n",
        "properties": {
          "type": {
            "const": "rail_freight",
            "examples": [
              "rail_freight"
            ]
          },
          "methodology": {
            "type": "string"
          }
        },
        "discriminator": {
          "propertyName": "methodology",
          "mapping": {
            "DIN-EN-16258": "#/components/schemas/Rail-Freight-DIN-EN-16258",
            "ECTA": "#/components/schemas/Rail-Freight-ECTA",
            "GLEC": "#/components/schemas/Rail-Freight-GLEC"
          }
        },
        "anyOf": [
          {
            "$ref": "#/components/schemas/Rail-Freight-DIN-EN-16258"
          },
          {
            "$ref": "#/components/schemas/Rail-Freight-ECTA"
          },
          {
            "$ref": "#/components/schemas/Rail-Freight-GLEC"
          }
        ],
        "Rail-Freight-DIN-EN-16258": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Rail Freight DIN-EN-16258",
              "properties": {
                "type": {
                  "const": "rail_freight",
                  "examples": [
                    "rail_freight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "DIN-EN-16258",
                  "description": "Default: `\"GLEC\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/rail-freight/rail-freight-din-en-16258).\n",
                  "examples": [
                    "DIN-EN-16258"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "weight_in_tonnes": {
                  "$ref": "#/components/schemas/weight_in_tonnes"
                },
                "train_type": {
                  "type": "string",
                  "enum": [
                    "500t",
                    "1000t",
                    "1500t",
                    "2000t"
                  ],
                  "default": "1000t",
                  "examples": [
                    "1000t"
                  ]
                },
                "fuel_type": {
                  "type": "string",
                  "enum": [
                    "electric",
                    "diesel",
                    "average",
                    "us_diesel"
                  ],
                  "default": "diesel",
                  "examples": [
                    "diesel"
                  ]
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope",
                  "default": "wtw"
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination",
                "weight_in_tonnes",
                "train_type"
              ]
            }
          ]
        },
        "Rail-Freight-ECTA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Rail Freight ECTA",
              "properties": {
                "type": {
                  "const": "rail_freight",
                  "examples": [
                    "rail_freight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "ECTA",
                  "description": "Default: `\"GLEC\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/rail-freight/rail-freight-ecta).\n",
                  "examples": [
                    "ECTA"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "weight_in_tonnes": {
                  "$ref": "#/components/schemas/weight_in_tonnes"
                },
                "train_type": {
                  "type": "string",
                  "enum": [
                    "average",
                    "container_train_intermodal",
                    "blocktrain_rtc",
                    "single_wagon_train_rtc"
                  ],
                  "examples": [
                    "1000t"
                  ],
                  "default": "average"
                },
                "fuel_type": {
                  "type": "string",
                  "enum": [
                    "electricity",
                    "diesel",
                    "average"
                  ],
                  "default": "average",
                  "examples": [
                    "diesel"
                  ]
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination",
                "weight_in_tonnes"
              ]
            }
          ]
        },
        "Rail-Freight-GLEC": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Rail Freight GLEC",
              "properties": {
                "type": {
                  "const": "rail_freight",
                  "examples": [
                    "rail_freight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "GLEC",
                  "description": "Default: `\"GLEC\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/rail-freight/rail-freight-glec).\n",
                  "examples": [
                    "GLEC"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "weight_in_tonnes": {
                  "$ref": "#/components/schemas/weight_in_tonnes"
                },
                "fuel_type": {
                  "type": "string",
                  "enum": [
                    "electricity",
                    "diesel",
                    "average",
                    "us_diesel"
                  ],
                  "default": "diesel",
                  "examples": [
                    "diesel"
                  ]
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope",
                  "default": "wtw"
                },
                "load_characteristic": {
                  "type": "string",
                  "enum": [
                    "average",
                    "container",
                    "cars",
                    "chemicals",
                    "coal_steel",
                    "building_materials",
                    "manufactured_products",
                    "cereals",
                    "truck_trailer_on_train",
                    "trailer_only_on_train"
                  ],
                  "default": "average",
                  "examples": [
                    "average"
                  ]
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination",
                "weight_in_tonnes",
                "load_characteristic"
              ]
            }
          ]
        }
      },
      "Restaurant": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Restaurant",
            "properties": {
              "type": {
                "const": "restaurant",
                "examples": [
                  "restaurant"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "BASE-EMPREINTE",
                "default": "BASE-EMPREINTE",
                "examples": [
                  "BASE-EMPREINTE"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "number_of_travelers": {
                "type": "number"
              },
              "meal_type": {
                "type": "string",
                "enum": [
                  "average",
                  "vegetarian",
                  "plant_based_with_chicken",
                  "plant_based_with_beef",
                  "classic_with_chicken",
                  "classic_with_beef",
                  "animal_dominated_with_chicken",
                  "animal_dominated_with_beef"
                ],
                "default": "average",
                "examples": [
                  "average"
                ]
              }
            },
            "required": [
              "type",
              "methodology"
            ]
          }
        ]
      },
      "Road-Freight-DIN-EN-16258": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Road Freight DIN-EN-16258",
            "properties": {
              "type": {
                "const": "road_freight",
                "examples": [
                  "road_freight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "DIN-EN-16258",
                "description": "Default: `\"GLEC\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/road-freight/road-freight-din-en-16258).\n",
                "examples": [
                  "DIN-EN-16258"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "weight_in_tonnes": {
                "$ref": "#/components/schemas/weight_in_tonnes"
              },
              "truck_type": {
                "type": "string",
                "enum": [
                  "under_7.5_t",
                  "under_12_t",
                  "under_24_t",
                  "under_40_t"
                ],
                "examples": [
                  "under_7.5_t"
                ],
                "default": "under_7.5_t"
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope",
                "default": "wtw"
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination",
              "weight_in_tonnes"
            ]
          }
        ]
      },
      "Road-Freight-GLEC": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Road Freight GLEC",
            "properties": {
              "type": {
                "const": "road_freight",
                "examples": [
                  "road_freight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "GLEC",
                "description": "Default: `\"GLEC\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/road-freight/road-freight-glec).\n",
                "examples": [
                  "GLEC"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "weight_in_tonnes": {
                "$ref": "#/components/schemas/weight_in_tonnes"
              },
              "truck_type": {
                "type": "string",
                "enum": [
                  "artic_truck_40_gvw_lightweight_trailer",
                  "artic_truck_under_34_gvw",
                  "artic_truck_under_40_gvw",
                  "artic_truck_under_40_gvw_hpdi",
                  "artic_truck_under_40_gvw_si_engine",
                  "artic_truck_under_44_gvw",
                  "artic_truck_under_60_gvw",
                  "articulated_truck_hdv_above_49_t_gvw",
                  "articulated_truck_hdv_under_18_t_gvw",
                  "articulated_truck_hdv_under_27_t_gvw",
                  "articulated_truck_hdv_under_35_t_gvw",
                  "articulated_truck_hdv_under_40_t_gvw",
                  "articulated_truck_hdv_under_43_t_gvw",
                  "articulated_truck_hdv_under_46_t_gvw",
                  "articulated_truck_hdv_under_49_t_gvw",
                  "auto_carrier",
                  "dray",
                  "dump_truck_hdv_above_31_t_gvw",
                  "dump_truck_hdv_under_16_t_gvw",
                  "dump_truck_hdv_under_20_t_gvw",
                  "dump_truck_hdv_under_25_t_gvw",
                  "dump_truck_hdv_under_31_t_gvw",
                  "dump_truck_ldt_under_4.5_t_gvw",
                  "dump_truck_mdt_under_5.5_t_gvw",
                  "dump_truck_mdt_under_7_t_gvw",
                  "dump_truck_mdt_under_8.5_t_gvw",
                  "dump_truck_mdt_under_10.5_t_gvw",
                  "dump_truck_mdt_under_12.5_t_gvw",
                  "expedited",
                  "flatbed",
                  "general",
                  "heavy_bulk",
                  "ltl_dry_van",
                  "mixed",
                  "moving",
                  "package",
                  "refrigerated",
                  "rigid_truck_hdv_above_31_t_gvw",
                  "rigid_truck_ldt_under_4.5_t_gvw",
                  "rigid_truck_mdt_under_5.5_t_gvw",
                  "rigid_truck_mdt_under_7_t_gvw",
                  "rigid_truck_mdt_under_8.5_t_gvw",
                  "rigid_truck_mdt_under_10.5_t_gvw",
                  "rigid_truck_mdt_under_12.5_t_gvw",
                  "rigid_truck_mdt_under_16_t_gvw",
                  "rigid_truck_mdt_under_20_t_gvw",
                  "rigid_truck_mdt_under_25_t_gvw",
                  "rigid_truck_mdt_under_31_t_gvw",
                  "rigid_truck_under_12_gvw",
                  "rigid_truck_under_20_gvw",
                  "rigid_truck_under_26_gvw",
                  "rigid_truck_under_32_gvw",
                  "rigid_truck_under_7.5_gvw",
                  "specialized",
                  "tanker",
                  "tl_dry_van",
                  "van_under_3.5_t"
                ],
                "description": "North American truck types are `van_under_3.5_t`, `general`, `auto_carrier`, `dray`,\n`expedited`, `flatbed`, `heavy_bulk`, `ltl_dry_van`, `mixed`, `moving`,\n`package`, `refrigerated`, `specialized`, `tanker`, `tl_dry_van`.\n\nFor more detailed mapping of load characteristics, fuel and truck types\nrefer to [the GLEC database](https://squake.notion.site/Road-Freight-GLEC-dfad37dfe8c34d83aef1822357f39fa7).\n",
                "examples": [
                  "rigid_truck_under_7.5_gvw"
                ],
                "default": "van_under_3.5_t"
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope",
                "default": "wtw"
              },
              "load_characteristic": {
                "type": "string",
                "enum": [
                  "average",
                  "heavy",
                  "light",
                  "container"
                ],
                "default": "average",
                "examples": [
                  "average"
                ]
              },
              "fuel_type": {
                "type": "string",
                "enum": [
                  "average",
                  "diesel",
                  "petrol",
                  "lng",
                  "lpg",
                  "bio-lng",
                  "cng"
                ],
                "description": "Considered by `GLEC`.",
                "default": "average",
                "examples": [
                  "diesel"
                ]
              },
              "temperature_controlled_freight": {
                "type": "boolean",
                "default": false
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination",
              "weight_in_tonnes"
            ]
          }
        ]
      },
      "Road-Freight": {
        "type": "object",
        "title": "Road Freight",
        "description": "If you have freight and don't know the type, you can use `Logistics`.\nAdditional information may be returned in the response.\n\nThe format for `DIN-EN-16258` is:\n```json\n  \"data\": [\n    {\n      \"energy_factor_ttw_in_MJ\": int,\n      \"energy_factor_wtw_in_MJ\": int,\n      \"ghg_emissions_ttw_in_g\": int,\n      \"ghg_emissions_wtw_in_g\": int\n    }\n  ]\n```\n\nThe format for `GLEC` is:\n```json\n  \"data\": [\n    {\n      \"co2e_in_g\": int,\n      \"co2e_emissions_wtw_in_g\": int,\n      \"co2e_per_tonne_km_in_g\": int,\n      \"tonne_km\": int,\n      \"reporting_year\": int,\n      \"transportation_mode\": \"string\"\n    }\n  ]\n```\n",
        "properties": {
          "type": {
            "const": "road_freight",
            "examples": [
              "road_freight"
            ]
          },
          "methodology": {
            "type": "string"
          }
        },
        "discriminator": {
          "propertyName": "methodology",
          "mapping": {
            "DIN-EN-16258": "#/components/schemas/Road-Freight-DIN-EN-16258",
            "GLEC": "#/components/schemas/Road-Freight-GLEC"
          }
        },
        "anyOf": [
          {
            "$ref": "#/components/schemas/Road-Freight-DIN-EN-16258"
          },
          {
            "$ref": "#/components/schemas/Road-Freight-GLEC"
          }
        ],
        "Road-Freight-DIN-EN-16258": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Road Freight DIN-EN-16258",
              "properties": {
                "type": {
                  "const": "road_freight",
                  "examples": [
                    "road_freight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "DIN-EN-16258",
                  "description": "Default: `\"GLEC\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/road-freight/road-freight-din-en-16258).\n",
                  "examples": [
                    "DIN-EN-16258"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "weight_in_tonnes": {
                  "$ref": "#/components/schemas/weight_in_tonnes"
                },
                "truck_type": {
                  "type": "string",
                  "enum": [
                    "under_7.5_t",
                    "under_12_t",
                    "under_24_t",
                    "under_40_t"
                  ],
                  "examples": [
                    "under_7.5_t"
                  ],
                  "default": "under_7.5_t"
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope",
                  "default": "wtw"
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination",
                "weight_in_tonnes"
              ]
            }
          ]
        },
        "Road-Freight-GLEC": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Road Freight GLEC",
              "properties": {
                "type": {
                  "const": "road_freight",
                  "examples": [
                    "road_freight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "GLEC",
                  "description": "Default: `\"GLEC\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/road-freight/road-freight-glec).\n",
                  "examples": [
                    "GLEC"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "weight_in_tonnes": {
                  "$ref": "#/components/schemas/weight_in_tonnes"
                },
                "truck_type": {
                  "type": "string",
                  "enum": [
                    "artic_truck_40_gvw_lightweight_trailer",
                    "artic_truck_under_34_gvw",
                    "artic_truck_under_40_gvw",
                    "artic_truck_under_40_gvw_hpdi",
                    "artic_truck_under_40_gvw_si_engine",
                    "artic_truck_under_44_gvw",
                    "artic_truck_under_60_gvw",
                    "articulated_truck_hdv_above_49_t_gvw",
                    "articulated_truck_hdv_under_18_t_gvw",
                    "articulated_truck_hdv_under_27_t_gvw",
                    "articulated_truck_hdv_under_35_t_gvw",
                    "articulated_truck_hdv_under_40_t_gvw",
                    "articulated_truck_hdv_under_43_t_gvw",
                    "articulated_truck_hdv_under_46_t_gvw",
                    "articulated_truck_hdv_under_49_t_gvw",
                    "auto_carrier",
                    "dray",
                    "dump_truck_hdv_above_31_t_gvw",
                    "dump_truck_hdv_under_16_t_gvw",
                    "dump_truck_hdv_under_20_t_gvw",
                    "dump_truck_hdv_under_25_t_gvw",
                    "dump_truck_hdv_under_31_t_gvw",
                    "dump_truck_ldt_under_4.5_t_gvw",
                    "dump_truck_mdt_under_5.5_t_gvw",
                    "dump_truck_mdt_under_7_t_gvw",
                    "dump_truck_mdt_under_8.5_t_gvw",
                    "dump_truck_mdt_under_10.5_t_gvw",
                    "dump_truck_mdt_under_12.5_t_gvw",
                    "expedited",
                    "flatbed",
                    "general",
                    "heavy_bulk",
                    "ltl_dry_van",
                    "mixed",
                    "moving",
                    "package",
                    "refrigerated",
                    "rigid_truck_hdv_above_31_t_gvw",
                    "rigid_truck_ldt_under_4.5_t_gvw",
                    "rigid_truck_mdt_under_5.5_t_gvw",
                    "rigid_truck_mdt_under_7_t_gvw",
                    "rigid_truck_mdt_under_8.5_t_gvw",
                    "rigid_truck_mdt_under_10.5_t_gvw",
                    "rigid_truck_mdt_under_12.5_t_gvw",
                    "rigid_truck_mdt_under_16_t_gvw",
                    "rigid_truck_mdt_under_20_t_gvw",
                    "rigid_truck_mdt_under_25_t_gvw",
                    "rigid_truck_mdt_under_31_t_gvw",
                    "rigid_truck_under_12_gvw",
                    "rigid_truck_under_20_gvw",
                    "rigid_truck_under_26_gvw",
                    "rigid_truck_under_32_gvw",
                    "rigid_truck_under_7.5_gvw",
                    "specialized",
                    "tanker",
                    "tl_dry_van",
                    "van_under_3.5_t"
                  ],
                  "description": "North American truck types are `van_under_3.5_t`, `general`, `auto_carrier`, `dray`,\n`expedited`, `flatbed`, `heavy_bulk`, `ltl_dry_van`, `mixed`, `moving`,\n`package`, `refrigerated`, `specialized`, `tanker`, `tl_dry_van`.\n\nFor more detailed mapping of load characteristics, fuel and truck types\nrefer to [the GLEC database](https://squake.notion.site/Road-Freight-GLEC-dfad37dfe8c34d83aef1822357f39fa7).\n",
                  "examples": [
                    "rigid_truck_under_7.5_gvw"
                  ],
                  "default": "van_under_3.5_t"
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope",
                  "default": "wtw"
                },
                "load_characteristic": {
                  "type": "string",
                  "enum": [
                    "average",
                    "heavy",
                    "light",
                    "container"
                  ],
                  "default": "average",
                  "examples": [
                    "average"
                  ]
                },
                "fuel_type": {
                  "type": "string",
                  "enum": [
                    "average",
                    "diesel",
                    "petrol",
                    "lng",
                    "lpg",
                    "bio-lng",
                    "cng"
                  ],
                  "description": "Considered by `GLEC`.",
                  "default": "average",
                  "examples": [
                    "diesel"
                  ]
                },
                "temperature_controlled_freight": {
                  "type": "boolean",
                  "default": false
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination",
                "weight_in_tonnes"
              ]
            }
          ]
        }
      },
      "Sea-Freight-CLEAN-CARGO": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Sea Freight",
            "properties": {
              "type": {
                "const": "sea_freight",
                "examples": [
                  "sea_freight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "CLEAN-CARGO",
                "description": "Default: `\"GLEC\"`.\n",
                "examples": [
                  "CLEAN-CARGO"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "weight_in_tonnes": {
                "type": "number"
              },
              "cargo_type": {
                "type": "string",
                "enum": [
                  "dry",
                  "reefer"
                ],
                "default": "reefer"
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope",
                "default": "wtw"
              },
              "trade_lane": {
                "type": "string",
                "enum": [
                  "panama",
                  "trans_atlantic",
                  "trans_suez",
                  "trans_pacific",
                  "other"
                ]
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination",
              "weight_in_tonnes"
            ]
          }
        ]
      },
      "Sea-Freight-DIN-EN-16258": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Sea Freight DIN-EN-16258",
            "properties": {
              "type": {
                "const": "sea_freight",
                "examples": [
                  "sea_freight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "DIN-EN-16258",
                "description": "Default: `\"GLEC\"`.\n",
                "examples": [
                  "DIN-EN-16258"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "weight_in_tonnes": {
                "type": "number"
              },
              "vessel_type": {
                "type": "string",
                "enum": [
                  "container",
                  "tanker"
                ],
                "examples": [
                  "tanker"
                ],
                "default": "container"
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope",
                "default": "wtw"
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination",
              "weight_in_tonnes"
            ]
          }
        ]
      },
      "Sea-Freight-EU-EMSA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Sea Freight EU-EMSA",
            "properties": {
              "type": {
                "const": "sea_freight",
                "examples": [
                  "sea_freight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "EU-EMSA",
                "description": "`EU-EMSA` is the methodology from the \"European Maritime\nSafety Agency\".\n\nDefault: `\"GLEC\"`.\n",
                "examples": [
                  "EU-EMSA"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "weight_in_tonnes": {
                "type": "number"
              },
              "vessel_type": {
                "type": "string",
                "enum": [
                  "bulk_carrier",
                  "chemical_tanker",
                  "combination_carrier",
                  "container_ro_ro_cargo_ship",
                  "container_ship",
                  "gas_carrier",
                  "general_cargo_ship",
                  "lng_carrier",
                  "oil_tanker",
                  "other_ship_types",
                  "passenger_ship",
                  "refrigerated_cargo_carrier",
                  "ro_pax_ship",
                  "ro_ro_ship",
                  "vehicle_carrier"
                ],
                "examples": [
                  "oil_tanker"
                ]
              },
              "vessel_model": {
                "type": "string",
                "description": "For detailed mapping of vessel models refer to [EU-EMSA database](https://squake.notion.site/82f29988eecf41beb246719ecf0bc26f?v=6700188164c9431089b117b9e8f2babb).",
                "examples": [
                  "lita"
                ]
              },
              "verifier_name": {
                "type": "string",
                "description": "Verifiers are environmental service providers, who claim to calculate and check actual carbon emissions from vessels."
              },
              "verifier_accreditation_number": {
                "type": "string",
                "description": "Mutually exclusive with `verifier_name`."
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination",
              "weight_in_tonnes"
            ]
          }
        ]
      },
      "Sea-Freight-GLEC": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Sea Freight GLEC",
            "properties": {
              "type": {
                "const": "sea_freight",
                "examples": [
                  "sea_freight"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "GLEC",
                "description": "Default: `\"GLEC\"`.\n",
                "examples": [
                  "GLEC"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "weight_in_tonnes": {
                "type": "number"
              },
              "container": {
                "type": "boolean",
                "default": false
              },
              "vessel_type": {
                "type": "string",
                "enum": [
                  "bulk_carrier_under_9999_dwt",
                  "bulk_carrier_under_34999_dwt",
                  "bulk_carrier_under_59999_dwt",
                  "bulk_carrier_under_99999_dwt",
                  "bulk_carrier_under_199999_dwt",
                  "bulk_carrier_above_200000_dwt",
                  "chemical_tanker_under_4999_dwt",
                  "chemical_tanker_under_9999_dwt",
                  "chemical_tanker_under_19999_dwt",
                  "chemical_tanker_under_39999_dwt",
                  "chemical_tanker_above_40000_dwt",
                  "general_cargo_under_4999_dwt",
                  "general_cargo_under_9999_dwt",
                  "general_cargo_under_19999_dwt",
                  "general_cargo_above_20000_dwt",
                  "liquefied_gas_tanker_under_49999_dwt",
                  "liquefied_gas_tanker_under_99999_dwt",
                  "liquefied_gas_tanker_under_199999_dwt",
                  "liquefied_gas_tanker_above_200000_dwt",
                  "oil_tanker_under_4999_dwt",
                  "oil_tanker_under_9999_dwt",
                  "oil_tanker_under_19999_dwt",
                  "oil_tanker_under_59999_dwt",
                  "oil_tanker_under_79999_dwt",
                  "oil_tanker_under_119999_dwt",
                  "oil_tanker_under_199999_dwt",
                  "oil_tanker_above_200000_dwt",
                  "other_liquids_tankers_under_999_dwt",
                  "other_liquids_tankers_above_1000_dwt",
                  "ferry_ropax_under_1999_gt",
                  "ferry_ropax_under_1999_dwt",
                  "ferry_ropax_under_4999_gt",
                  "ferry_ropax_under_9999_gt",
                  "ferry_ropax_under_19999_gt",
                  "ferry_ropax_above_20000_gt",
                  "refrigerated_bulk_under_1999_dwt",
                  "refrigerated_bulk_under_5999_dwt",
                  "refrigerated_bulk_under_9999_dwt",
                  "refrigerated_bulk_above_10000_dwt",
                  "roro_under_4999_dwt",
                  "roro_under_9999_dwt",
                  "roro_under_14999_dwt",
                  "roro_above_15000_dwt",
                  "vehicle_under_29999_gt",
                  "vehicle_under_49999_gt",
                  "vehicle_above_50000_gt"
                ],
                "description": "For more detailed mapping of vessel and fuel types refer to [the GLEC database](https://squake.notion.site/Sea-Freight-GLEC-a0d79edb30bc4fbc9f79e7b55a5e3807).",
                "examples": [
                  "general_cargo_under_4999_dwt"
                ],
                "default": "general_cargo_under_4999_dwt"
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope",
                "default": "wtw"
              },
              "fuel_type": {
                "type": "string",
                "enum": [
                  "hfo",
                  "vlsfo",
                  "mdo"
                ],
                "default": "hfo",
                "examples": [
                  "hfo"
                ]
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination",
              "weight_in_tonnes"
            ]
          }
        ]
      },
      "Sea-Freight": {
        "type": "object",
        "title": "Sea Freight",
        "description": "If you have freight and don't know the type, you can use `Logistics`.\nAdditional information may be returned in the response.\n\nThe format for `DIN-EN-16258` is:\n```json\n  \"data\": [\n    {\n      \"energy_factor_ttw_in_MJ\": int,\n      \"energy_factor_wtw_in_MJ\": int,\n      \"ghg_emissions_ttw_in_g\": int,\n      \"ghg_emissions_wtw_in_g\": int\n    }\n  ]\n```\n\nThe format for `CLEAN-CARGO` and `GLEC` is:\n```json\n  \"data\": [\n    {\n      \"co2e_in_g\": int,\n      \"co2e_emissions_wtw_in_g\": int,\n      \"co2e_per_tonne_km_in_g\": int,\n      \"tonne_km\": int,\n      \"reporting_year\": int,\n      \"transportation_mode\": \"string\"\n    }\n  ]\n```\n",
        "properties": {
          "type": {
            "const": "sea_freight",
            "examples": [
              "sea_freight"
            ]
          },
          "methodology": {
            "type": "string"
          }
        },
        "discriminator": {
          "propertyName": "methodology",
          "mapping": {
            "CLEAN-CARGO": "#/components/schemas/Sea-Freight-CLEAN-CARGO",
            "DIN-EN-16258": "#/components/schemas/Sea-Freight-DIN-EN-16258",
            "EU-EMSA": "#/components/schemas/Sea-Freight-EU-EMSA",
            "GLEC": "#/components/schemas/Sea-Freight-GLEC"
          }
        },
        "anyOf": [
          {
            "$ref": "#/components/schemas/Sea-Freight-CLEAN-CARGO"
          },
          {
            "$ref": "#/components/schemas/Sea-Freight-DIN-EN-16258"
          },
          {
            "$ref": "#/components/schemas/Sea-Freight-EU-EMSA"
          },
          {
            "$ref": "#/components/schemas/Sea-Freight-GLEC"
          }
        ],
        "Sea-Freight-CLEAN-CARGO": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Sea Freight",
              "properties": {
                "type": {
                  "const": "sea_freight",
                  "examples": [
                    "sea_freight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "CLEAN-CARGO",
                  "description": "Default: `\"GLEC\"`.\n",
                  "examples": [
                    "CLEAN-CARGO"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "weight_in_tonnes": {
                  "type": "number"
                },
                "cargo_type": {
                  "type": "string",
                  "enum": [
                    "dry",
                    "reefer"
                  ],
                  "default": "reefer"
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope",
                  "default": "wtw"
                },
                "trade_lane": {
                  "type": "string",
                  "enum": [
                    "panama",
                    "trans_atlantic",
                    "trans_suez",
                    "trans_pacific",
                    "other"
                  ]
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination",
                "weight_in_tonnes"
              ]
            }
          ]
        },
        "Sea-Freight-DIN-EN-16258": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Sea Freight DIN-EN-16258",
              "properties": {
                "type": {
                  "const": "sea_freight",
                  "examples": [
                    "sea_freight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "DIN-EN-16258",
                  "description": "Default: `\"GLEC\"`.\n",
                  "examples": [
                    "DIN-EN-16258"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "weight_in_tonnes": {
                  "type": "number"
                },
                "vessel_type": {
                  "type": "string",
                  "enum": [
                    "container",
                    "tanker"
                  ],
                  "examples": [
                    "tanker"
                  ],
                  "default": "container"
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope",
                  "default": "wtw"
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination",
                "weight_in_tonnes"
              ]
            }
          ]
        },
        "Sea-Freight-EU-EMSA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Sea Freight EU-EMSA",
              "properties": {
                "type": {
                  "const": "sea_freight",
                  "examples": [
                    "sea_freight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "EU-EMSA",
                  "description": "`EU-EMSA` is the methodology from the \"European Maritime\nSafety Agency\".\n\nDefault: `\"GLEC\"`.\n",
                  "examples": [
                    "EU-EMSA"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "weight_in_tonnes": {
                  "type": "number"
                },
                "vessel_type": {
                  "type": "string",
                  "enum": [
                    "bulk_carrier",
                    "chemical_tanker",
                    "combination_carrier",
                    "container_ro_ro_cargo_ship",
                    "container_ship",
                    "gas_carrier",
                    "general_cargo_ship",
                    "lng_carrier",
                    "oil_tanker",
                    "other_ship_types",
                    "passenger_ship",
                    "refrigerated_cargo_carrier",
                    "ro_pax_ship",
                    "ro_ro_ship",
                    "vehicle_carrier"
                  ],
                  "examples": [
                    "oil_tanker"
                  ]
                },
                "vessel_model": {
                  "type": "string",
                  "description": "For detailed mapping of vessel models refer to [EU-EMSA database](https://squake.notion.site/82f29988eecf41beb246719ecf0bc26f?v=6700188164c9431089b117b9e8f2babb).",
                  "examples": [
                    "lita"
                  ]
                },
                "verifier_name": {
                  "type": "string",
                  "description": "Verifiers are environmental service providers, who claim to calculate and check actual carbon emissions from vessels."
                },
                "verifier_accreditation_number": {
                  "type": "string",
                  "description": "Mutually exclusive with `verifier_name`."
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination",
                "weight_in_tonnes"
              ]
            }
          ]
        },
        "Sea-Freight-GLEC": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Sea Freight GLEC",
              "properties": {
                "type": {
                  "const": "sea_freight",
                  "examples": [
                    "sea_freight"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "GLEC",
                  "description": "Default: `\"GLEC\"`.\n",
                  "examples": [
                    "GLEC"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/origin_destination"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "weight_in_tonnes": {
                  "type": "number"
                },
                "container": {
                  "type": "boolean",
                  "default": false
                },
                "vessel_type": {
                  "type": "string",
                  "enum": [
                    "bulk_carrier_under_9999_dwt",
                    "bulk_carrier_under_34999_dwt",
                    "bulk_carrier_under_59999_dwt",
                    "bulk_carrier_under_99999_dwt",
                    "bulk_carrier_under_199999_dwt",
                    "bulk_carrier_above_200000_dwt",
                    "chemical_tanker_under_4999_dwt",
                    "chemical_tanker_under_9999_dwt",
                    "chemical_tanker_under_19999_dwt",
                    "chemical_tanker_under_39999_dwt",
                    "chemical_tanker_above_40000_dwt",
                    "general_cargo_under_4999_dwt",
                    "general_cargo_under_9999_dwt",
                    "general_cargo_under_19999_dwt",
                    "general_cargo_above_20000_dwt",
                    "liquefied_gas_tanker_under_49999_dwt",
                    "liquefied_gas_tanker_under_99999_dwt",
                    "liquefied_gas_tanker_under_199999_dwt",
                    "liquefied_gas_tanker_above_200000_dwt",
                    "oil_tanker_under_4999_dwt",
                    "oil_tanker_under_9999_dwt",
                    "oil_tanker_under_19999_dwt",
                    "oil_tanker_under_59999_dwt",
                    "oil_tanker_under_79999_dwt",
                    "oil_tanker_under_119999_dwt",
                    "oil_tanker_under_199999_dwt",
                    "oil_tanker_above_200000_dwt",
                    "other_liquids_tankers_under_999_dwt",
                    "other_liquids_tankers_above_1000_dwt",
                    "ferry_ropax_under_1999_gt",
                    "ferry_ropax_under_1999_dwt",
                    "ferry_ropax_under_4999_gt",
                    "ferry_ropax_under_9999_gt",
                    "ferry_ropax_under_19999_gt",
                    "ferry_ropax_above_20000_gt",
                    "refrigerated_bulk_under_1999_dwt",
                    "refrigerated_bulk_under_5999_dwt",
                    "refrigerated_bulk_under_9999_dwt",
                    "refrigerated_bulk_above_10000_dwt",
                    "roro_under_4999_dwt",
                    "roro_under_9999_dwt",
                    "roro_under_14999_dwt",
                    "roro_above_15000_dwt",
                    "vehicle_under_29999_gt",
                    "vehicle_under_49999_gt",
                    "vehicle_above_50000_gt"
                  ],
                  "description": "For more detailed mapping of vessel and fuel types refer to [the GLEC database](https://squake.notion.site/Sea-Freight-GLEC-a0d79edb30bc4fbc9f79e7b55a5e3807).",
                  "examples": [
                    "general_cargo_under_4999_dwt"
                  ],
                  "default": "general_cargo_under_4999_dwt"
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope",
                  "default": "wtw"
                },
                "fuel_type": {
                  "type": "string",
                  "enum": [
                    "hfo",
                    "vlsfo",
                    "mdo"
                  ],
                  "default": "hfo",
                  "examples": [
                    "hfo"
                  ]
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination",
                "weight_in_tonnes"
              ]
            }
          ]
        }
      },
      "train_origin_destination": {
        "type": "string",
        "title": "origin_destination",
        "description": "The API will try to resolve the origin/destination regardless of\nits format. Ideally, for addresses use the Post standard, for airports use\nIATA/ICAO code (format: `^[A-Z]{3,4}$`, e.g. `\"MUC\"`), for other locations\nused in trade and transportation use UN/LOCODE codes (format: `^[A-Z]{2}\\W?[A-Z2-9]{3}$`,\ne.g. `\"DEHAM\"`). You can also pass lat/long (format: `^[-+]?\\d{1,3}\\.\\d{1,10}\\s?,\\s?[-+]?\\d{1,3}\\.\\d{1,10}$`,\ne.g. `\"+40.712,-74.006\"`).\n\nUIC code is also a valid format for trains. If the value is not valid, we'll fallback to general, non-journey specific emission data.\nWhen you want to use UIC, you should use the following format: _`provider:uic_code`_, e.g. `sncf:FRAAA`.\nPossible provider prefixes are:\n- `uic`\n- `uic8_sncf`\n- `sncf`\n- `sncf_tvs`\n- `entur`\n- `db`\n- `busbud`\n- `distribusion`\n- `flixbus`\n- `cff`\n- `leoexpress`\n- `obb`\n- `trenitalia`\n- `trenitalia_rtvt`\n- `trenord`\n- `ntv_rtiv`\n- `ntv`\n- `hkx`\n- `renfe`\n- `atoc`\n- `benerail`\n- `westbahn`\n"
      },
      "Train-ADEME": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Train ADEME",
            "description": "Contact [product@squake.earth](mailto:product@squake.earth) for the full supported list of operators.",
            "properties": {
              "type": {
                "const": "train",
                "examples": [
                  "train"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "ADEME",
                "description": "Default: `\"ADEME\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/train/train-ademe).\n",
                "examples": [
                  "ADEME"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/train_origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/train_origin_destination"
              },
              "train_type": {
                "type": "string",
                "enum": [
                  "high_speed",
                  "mainline",
                  "local_express"
                ],
                "examples": [
                  "mainline"
                ],
                "default": "local_express"
              },
              "fuel_type": {
                "type": "string",
                "enum": [
                  "diesel",
                  "electricity"
                ],
                "examples": [
                  "diesel"
                ],
                "default": "diesel"
              },
              "number_of_travelers": {
                "type": "integer",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination"
            ]
          }
        ]
      },
      "Train-BASE-EMPREINTE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Train BASE-EMPREINTE",
            "properties": {
              "type": {
                "const": "train",
                "examples": [
                  "train"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "BASE-EMPREINTE",
                "description": "Default: `\"BASE-EMPREINTE\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/train/train-base-empreinte).\n",
                "examples": [
                  "BASE-EMPREINTE"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/train_origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/train_origin_destination"
              },
              "train_type": {
                "type": "string",
                "enum": [
                  "ter",
                  "tgv",
                  "intercity",
                  "mainline",
                  "metro",
                  "tram",
                  "rer",
                  "trolleybus"
                ],
                "examples": [
                  "metro"
                ],
                "default": "mainline"
              },
              "number_of_travelers": {
                "type": "integer",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "state": {
                "type": "string",
                "enum": [
                  "Ile-de-France",
                  "Corsica"
                ],
                "examples": [
                  "Ile-de-France"
                ]
              },
              "city_type": {
                "type": "string",
                "enum": [
                  "population_under_250000",
                  "population_above_250000"
                ],
                "examples": [
                  "population_above_250000"
                ],
                "default": "population_under_250000"
              },
              "country": {
                "type": "string",
                "enum": [
                  "AT",
                  "BE",
                  "CH",
                  "DE",
                  "DK",
                  "ES",
                  "FI",
                  "FR",
                  "GB",
                  "GR",
                  "IE",
                  "IT",
                  "LU",
                  "NL",
                  "NO",
                  "PT",
                  "SE"
                ],
                "examples": [
                  "DE"
                ],
                "default": "FR"
              },
              "year": {
                "type": "string",
                "examples": [
                  "2022"
                ]
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination"
            ]
          }
        ]
      },
      "Train-CO2-EMISSIEFACTOREN-NL": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Train CO2-EMISSIEFACTOREN-NL",
            "properties": {
              "type": {
                "const": "train",
                "examples": [
                  "train"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "CO2-EMISSIEFACTOREN-NL",
                "description": "Default: `\"CO2-EMISSIEFACTOREN-NL\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/train/train-co2-emissiefactoren).\n",
                "examples": [
                  "CO2-EMISSIEFACTOREN-NL"
                ]
              },
              "methodology_version": {
                "type": "string",
                "description": "The factor year (4-digit) used for the calculation. Pin a value for reproducible results.\n\nIf omitted, the default depends on the endpoint. On the Travel Data API the year is derived from\nthe trip/activity start date, falling back to the latest supported year when no date is available.\nOn `/v2/calculations` the latest supported year is always used, because train items carry no date\nthere.\n\nA requested year without its own published set resolves to the most recent prior year\n(e.g. `2024` → `2023`, `2022` → `2021`), and a year before the earliest supported set (`2020`)\nreturns a validation error.\n",
                "default": "latest",
                "enum": [
                  "2020",
                  "2021",
                  "2023",
                  "2025",
                  "2026",
                  "latest"
                ],
                "examples": [
                  "2026"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/train_origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/train_origin_destination"
              },
              "train_type": {
                "type": "string",
                "enum": [
                  "average",
                  "international"
                ],
                "examples": [
                  "average"
                ],
                "default": "average"
              },
              "fuel_type": {
                "type": "string",
                "enum": [
                  "diesel",
                  "electricity",
                  "average"
                ],
                "examples": [
                  "diesel"
                ],
                "default": "average"
              },
              "number_of_travelers": {
                "type": "integer",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope"
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination"
            ]
          }
        ]
      },
      "Train-DEFRA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Train ADEME",
            "properties": {
              "type": {
                "const": "train",
                "examples": [
                  "train"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "DEFRA",
                "description": "Default: `\"DEFRA\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/train/train-defra).\n",
                "examples": [
                  "DEFRA"
                ]
              },
              "methodology_version": {
                "type": "string",
                "description": "The version of the DEFRA methodology used.",
                "default": "latest",
                "enum": [
                  "2018",
                  "2019",
                  "2020",
                  "2021",
                  "2022",
                  "2023",
                  "2024",
                  "2025",
                  "2026",
                  "latest"
                ],
                "examples": [
                  "2024"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/train_origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/train_origin_destination"
              },
              "train_type": {
                "type": "string",
                "enum": [
                  "international",
                  "light",
                  "national",
                  "tram",
                  "underground"
                ],
                "examples": [
                  "tram"
                ],
                "default": "national"
              },
              "number_of_travelers": {
                "type": "integer",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope",
                "default": "wtw"
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination"
            ]
          }
        ]
      },
      "Train-GREEN-TRAVEL-PLEDGE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Train GREEN-TRAVEL-PLEDGE",
            "properties": {
              "type": {
                "const": "train",
                "examples": [
                  "train"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "GREEN-TRAVEL-PLEDGE",
                "description": "Default: `\"GREEN-TRAVEL-PLEDGE\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/train/train-green-travel-pledge).\n",
                "examples": [
                  "GREEN-TRAVEL-PLEDGE"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "origin": {
                "description": "Expected a valid UIC code (e.g.: for Abbey Wood station, use `ABW`). If the value is not valid, we'll fallback to general, non-journey specific emission data.\n"
              },
              "destination": {
                "description": "Expected a valid UIC code (e.g.: for Abbey Wood station, use `ABW`). If the value is not valid, we'll fallback to general, non-journey specific emission data.\n"
              },
              "number_of_travelers": {
                "type": "integer",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "seat_type": {
                "type": "string",
                "enum": [
                  "first_class",
                  "second_class",
                  "average"
                ],
                "default": "first_class",
                "examples": [
                  "second_class"
                ]
              }
            },
            "required": [
              "type",
              "methodology",
              "origin",
              "destination"
            ]
          }
        ]
      },
      "Train-REM": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Train REM",
            "description": "Provide either `origin` and `destination`, a positive `distance_in_km`, or a valid `route_coords` polyline (at least two `[longitude, latitude]` points).\nSet `methodology` to `REM` to use this schema. If `methodology` is omitted on a train item, the API uses the client's configured train default.\n",
            "properties": {
              "type": {
                "const": "train",
                "examples": [
                  "train"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "REM",
                "description": "Default: `\"REM\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/train/train-rem).\n",
                "examples": [
                  "REM"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/train_origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/train_origin_destination"
              },
              "route_coords": {
                "type": "array",
                "description": "Optional dense route polyline: ordered points as `[longitude, latitude]` in WGS84.\nMinimum two points. Longitude ∈ [-180, 180], latitude ∈ [-90, 90].\nWhen present, distance is computed with border-aware segmentation and REM detour factors; `origin`/`destination` are not required for distance validation.\n",
                "minItems": 2,
                "items": {
                  "type": "array",
                  "minItems": 2,
                  "maxItems": 2,
                  "items": {
                    "type": "number"
                  }
                },
                "examples": [
                  [
                    [
                      13.405,
                      52.52
                    ],
                    [
                      8.682,
                      50.11
                    ]
                  ]
                ]
              },
              "departure_date": {
                "type": "string",
                "format": "date",
                "description": "Optional ISO 8601 calendar date (`YYYY-MM-DD`) for year-matched emission factors.\nInvalid values return a parameter error.\n",
                "examples": [
                  "2025-06-15"
                ]
              },
              "origin_country": {
                "type": "string",
                "description": "Optional ISO 3166-1 alpha-2 country code (e.g. `DE`, `SE`) for REM tier resolution.\nOther resolvable country strings may be accepted and normalized to alpha-2 (e.g. `UK` → `GB`).\nPreferred over `destination_country` when both are set for country-based tiers.\n",
                "examples": [
                  "DE",
                  "SE"
                ]
              },
              "destination_country": {
                "type": "string",
                "description": "Optional ISO 3166-1 alpha-2 country code when `origin_country` is not set or for destination context.\n",
                "examples": [
                  "FR"
                ]
              },
              "energy_scope": {
                "$ref": "#/components/schemas/energy_scope"
              },
              "train_type": {
                "type": "string",
                "enum": [
                  "average",
                  "high_speed",
                  "intercity",
                  "regional",
                  "long_distance",
                  "commuter",
                  "tram",
                  "metro",
                  "light_rail",
                  "urban_rail"
                ],
                "description": "Train category for REM. Default when omitted: `average`.\n",
                "examples": [
                  "regional"
                ],
                "default": "average"
              },
              "fuel_type": {
                "type": "string",
                "enum": [
                  "diesel",
                  "electricity",
                  "hydrogen",
                  "hvo"
                ],
                "description": "Default `diesel`. Used for Tier 1 disambiguation when multiple operator rows differ by fuel, and for Tier 4 activity-based resolution.\n",
                "examples": [
                  "diesel"
                ],
                "default": "diesel"
              },
              "number_of_travelers": {
                "type": "integer",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              },
              "operator_name": {
                "type": "string",
                "description": "Optional operator key for Tiers 1 and 2 (operator-reported) factors.\n\nContact [product@squake.earth](mailto:product@squake.earth) for the full supported list of operators.\n",
                "examples": [
                  "sncf"
                ]
              },
              "seat_type": {
                "type": "string",
                "enum": [
                  "first_class",
                  "second_class",
                  "average"
                ],
                "default": "average",
                "examples": [
                  "second_class"
                ]
              }
            },
            "required": [
              "type",
              "methodology"
            ]
          }
        ]
      },
      "Train-US-EPA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Train US EPA",
            "properties": {
              "type": {
                "const": "train",
                "examples": [
                  "train"
                ]
              },
              "methodology": {
                "type": "string",
                "const": "US-EPA",
                "description": "Default: `\"US-EPA\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/train/train-us-epa).\n",
                "examples": [
                  "US-EPA"
                ]
              },
              "methodology_version": {
                "type": "string",
                "description": "The version of the US EPA methodology used.",
                "default": "latest",
                "enum": [
                  "2011",
                  "2012",
                  "2013",
                  "2014",
                  "2015",
                  "2016",
                  "2017",
                  "2018",
                  "2019",
                  "2020",
                  "2021",
                  "2022",
                  "2023",
                  "2024",
                  "2025",
                  "latest"
                ],
                "examples": [
                  "2024"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "origin": {
                "$ref": "#/components/schemas/train_origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/train_origin_destination"
              },
              "train_type": {
                "type": "string",
                "enum": [
                  "intercity_northeast_corridor",
                  "intercity_national_average",
                  "intercity_other_routes",
                  "commuter_rail",
                  "transit_rail"
                ],
                "description": "The type of the train.",
                "examples": [
                  "commuter_rail"
                ],
                "default": "intercity_national_average"
              },
              "number_of_travelers": {
                "type": "integer",
                "minimum": 1,
                "default": 1,
                "examples": [
                  2
                ]
              }
            },
            "required": [
              "type",
              "methodology"
            ]
          }
        ]
      },
      "Train": {
        "type": "object",
        "title": "Train",
        "properties": {
          "type": {
            "type": "string",
            "const": "train",
            "examples": [
              "train"
            ]
          },
          "methodology": {
            "type": "string"
          }
        },
        "discriminator": {
          "propertyName": "methodology",
          "mapping": {
            "ADEME": "#/components/schemas/Train-ADEME",
            "BASE-EMPREINTE": "#/components/schemas/Train-BASE-EMPREINTE",
            "CO2-EMISSIEFACTOREN-NL": "#/components/schemas/Train-CO2-EMISSIEFACTOREN-NL",
            "DEFRA": "#/components/schemas/Train-DEFRA",
            "GREEN-TRAVEL-PLEDGE": "#/components/schemas/Train-GREEN-TRAVEL-PLEDGE",
            "REM": "#/components/schemas/Train-REM",
            "US-EPA": "#/components/schemas/Train-US-EPA"
          }
        },
        "anyOf": [
          {
            "$ref": "#/components/schemas/Train-ADEME"
          },
          {
            "$ref": "#/components/schemas/Train-BASE-EMPREINTE"
          },
          {
            "$ref": "#/components/schemas/Train-CO2-EMISSIEFACTOREN-NL"
          },
          {
            "$ref": "#/components/schemas/Train-DEFRA"
          },
          {
            "$ref": "#/components/schemas/Train-GREEN-TRAVEL-PLEDGE"
          },
          {
            "$ref": "#/components/schemas/Train-REM"
          },
          {
            "$ref": "#/components/schemas/Train-US-EPA"
          }
        ],
        "Train-ADEME": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Train ADEME",
              "description": "Contact [product@squake.earth](mailto:product@squake.earth) for the full supported list of operators.",
              "properties": {
                "type": {
                  "const": "train",
                  "examples": [
                    "train"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "ADEME",
                  "description": "Default: `\"ADEME\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/train/train-ademe).\n",
                  "examples": [
                    "ADEME"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/train_origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/train_origin_destination"
                },
                "train_type": {
                  "type": "string",
                  "enum": [
                    "high_speed",
                    "mainline",
                    "local_express"
                  ],
                  "examples": [
                    "mainline"
                  ],
                  "default": "local_express"
                },
                "fuel_type": {
                  "type": "string",
                  "enum": [
                    "diesel",
                    "electricity"
                  ],
                  "examples": [
                    "diesel"
                  ],
                  "default": "diesel"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination"
              ]
            }
          ]
        },
        "Train-BASE-EMPREINTE": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Train BASE-EMPREINTE",
              "properties": {
                "type": {
                  "const": "train",
                  "examples": [
                    "train"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "BASE-EMPREINTE",
                  "description": "Default: `\"BASE-EMPREINTE\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/train/train-base-empreinte).\n",
                  "examples": [
                    "BASE-EMPREINTE"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/train_origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/train_origin_destination"
                },
                "train_type": {
                  "type": "string",
                  "enum": [
                    "ter",
                    "tgv",
                    "intercity",
                    "mainline",
                    "metro",
                    "tram",
                    "rer",
                    "trolleybus"
                  ],
                  "examples": [
                    "metro"
                  ],
                  "default": "mainline"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "state": {
                  "type": "string",
                  "enum": [
                    "Ile-de-France",
                    "Corsica"
                  ],
                  "examples": [
                    "Ile-de-France"
                  ]
                },
                "city_type": {
                  "type": "string",
                  "enum": [
                    "population_under_250000",
                    "population_above_250000"
                  ],
                  "examples": [
                    "population_above_250000"
                  ],
                  "default": "population_under_250000"
                },
                "country": {
                  "type": "string",
                  "enum": [
                    "AT",
                    "BE",
                    "CH",
                    "DE",
                    "DK",
                    "ES",
                    "FI",
                    "FR",
                    "GB",
                    "GR",
                    "IE",
                    "IT",
                    "LU",
                    "NL",
                    "NO",
                    "PT",
                    "SE"
                  ],
                  "examples": [
                    "DE"
                  ],
                  "default": "FR"
                },
                "year": {
                  "type": "string",
                  "examples": [
                    "2022"
                  ]
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination"
              ]
            }
          ]
        },
        "Train-CO2-EMISSIEFACTOREN-NL": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Train CO2-EMISSIEFACTOREN-NL",
              "properties": {
                "type": {
                  "const": "train",
                  "examples": [
                    "train"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "CO2-EMISSIEFACTOREN-NL",
                  "description": "Default: `\"CO2-EMISSIEFACTOREN-NL\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/train/train-co2-emissiefactoren).\n",
                  "examples": [
                    "CO2-EMISSIEFACTOREN-NL"
                  ]
                },
                "methodology_version": {
                  "type": "string",
                  "description": "The factor year (4-digit) used for the calculation. Pin a value for reproducible results.\n\nIf omitted, the default depends on the endpoint. On the Travel Data API the year is derived from\nthe trip/activity start date, falling back to the latest supported year when no date is available.\nOn `/v2/calculations` the latest supported year is always used, because train items carry no date\nthere.\n\nA requested year without its own published set resolves to the most recent prior year\n(e.g. `2024` → `2023`, `2022` → `2021`), and a year before the earliest supported set (`2020`)\nreturns a validation error.\n",
                  "default": "latest",
                  "enum": [
                    "2020",
                    "2021",
                    "2023",
                    "2025",
                    "2026",
                    "latest"
                  ],
                  "examples": [
                    "2026"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/train_origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/train_origin_destination"
                },
                "train_type": {
                  "type": "string",
                  "enum": [
                    "average",
                    "international"
                  ],
                  "examples": [
                    "average"
                  ],
                  "default": "average"
                },
                "fuel_type": {
                  "type": "string",
                  "enum": [
                    "diesel",
                    "electricity",
                    "average"
                  ],
                  "examples": [
                    "diesel"
                  ],
                  "default": "average"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope"
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination"
              ]
            }
          ]
        },
        "Train-DEFRA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Train ADEME",
              "properties": {
                "type": {
                  "const": "train",
                  "examples": [
                    "train"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "DEFRA",
                  "description": "Default: `\"DEFRA\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/train/train-defra).\n",
                  "examples": [
                    "DEFRA"
                  ]
                },
                "methodology_version": {
                  "type": "string",
                  "description": "The version of the DEFRA methodology used.",
                  "default": "latest",
                  "enum": [
                    "2018",
                    "2019",
                    "2020",
                    "2021",
                    "2022",
                    "2023",
                    "2024",
                    "2025",
                    "2026",
                    "latest"
                  ],
                  "examples": [
                    "2024"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/train_origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/train_origin_destination"
                },
                "train_type": {
                  "type": "string",
                  "enum": [
                    "international",
                    "light",
                    "national",
                    "tram",
                    "underground"
                  ],
                  "examples": [
                    "tram"
                  ],
                  "default": "national"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope",
                  "default": "wtw"
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination"
              ]
            }
          ]
        },
        "Train-GREEN-TRAVEL-PLEDGE": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Train GREEN-TRAVEL-PLEDGE",
              "properties": {
                "type": {
                  "const": "train",
                  "examples": [
                    "train"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "GREEN-TRAVEL-PLEDGE",
                  "description": "Default: `\"GREEN-TRAVEL-PLEDGE\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/train/train-green-travel-pledge).\n",
                  "examples": [
                    "GREEN-TRAVEL-PLEDGE"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "origin": {
                  "description": "Expected a valid UIC code (e.g.: for Abbey Wood station, use `ABW`). If the value is not valid, we'll fallback to general, non-journey specific emission data.\n"
                },
                "destination": {
                  "description": "Expected a valid UIC code (e.g.: for Abbey Wood station, use `ABW`). If the value is not valid, we'll fallback to general, non-journey specific emission data.\n"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "seat_type": {
                  "type": "string",
                  "enum": [
                    "first_class",
                    "second_class",
                    "average"
                  ],
                  "default": "first_class",
                  "examples": [
                    "second_class"
                  ]
                }
              },
              "required": [
                "type",
                "methodology",
                "origin",
                "destination"
              ]
            }
          ]
        },
        "Train-REM": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Train REM",
              "description": "Provide either `origin` and `destination`, a positive `distance_in_km`, or a valid `route_coords` polyline (at least two `[longitude, latitude]` points).\nSet `methodology` to `REM` to use this schema. If `methodology` is omitted on a train item, the API uses the client's configured train default.\n",
              "properties": {
                "type": {
                  "const": "train",
                  "examples": [
                    "train"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "REM",
                  "description": "Default: `\"REM\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/train/train-rem).\n",
                  "examples": [
                    "REM"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/train_origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/train_origin_destination"
                },
                "route_coords": {
                  "type": "array",
                  "description": "Optional dense route polyline: ordered points as `[longitude, latitude]` in WGS84.\nMinimum two points. Longitude ∈ [-180, 180], latitude ∈ [-90, 90].\nWhen present, distance is computed with border-aware segmentation and REM detour factors; `origin`/`destination` are not required for distance validation.\n",
                  "minItems": 2,
                  "items": {
                    "type": "array",
                    "minItems": 2,
                    "maxItems": 2,
                    "items": {
                      "type": "number"
                    }
                  },
                  "examples": [
                    [
                      [
                        13.405,
                        52.52
                      ],
                      [
                        8.682,
                        50.11
                      ]
                    ]
                  ]
                },
                "departure_date": {
                  "type": "string",
                  "format": "date",
                  "description": "Optional ISO 8601 calendar date (`YYYY-MM-DD`) for year-matched emission factors.\nInvalid values return a parameter error.\n",
                  "examples": [
                    "2025-06-15"
                  ]
                },
                "origin_country": {
                  "type": "string",
                  "description": "Optional ISO 3166-1 alpha-2 country code (e.g. `DE`, `SE`) for REM tier resolution.\nOther resolvable country strings may be accepted and normalized to alpha-2 (e.g. `UK` → `GB`).\nPreferred over `destination_country` when both are set for country-based tiers.\n",
                  "examples": [
                    "DE",
                    "SE"
                  ]
                },
                "destination_country": {
                  "type": "string",
                  "description": "Optional ISO 3166-1 alpha-2 country code when `origin_country` is not set or for destination context.\n",
                  "examples": [
                    "FR"
                  ]
                },
                "energy_scope": {
                  "$ref": "#/components/schemas/energy_scope"
                },
                "train_type": {
                  "type": "string",
                  "enum": [
                    "average",
                    "high_speed",
                    "intercity",
                    "regional",
                    "long_distance",
                    "commuter",
                    "tram",
                    "metro",
                    "light_rail",
                    "urban_rail"
                  ],
                  "description": "Train category for REM. Default when omitted: `average`.\n",
                  "examples": [
                    "regional"
                  ],
                  "default": "average"
                },
                "fuel_type": {
                  "type": "string",
                  "enum": [
                    "diesel",
                    "electricity",
                    "hydrogen",
                    "hvo"
                  ],
                  "description": "Default `diesel`. Used for Tier 1 disambiguation when multiple operator rows differ by fuel, and for Tier 4 activity-based resolution.\n",
                  "examples": [
                    "diesel"
                  ],
                  "default": "diesel"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                },
                "operator_name": {
                  "type": "string",
                  "description": "Optional operator key for Tiers 1 and 2 (operator-reported) factors.\n\nContact [product@squake.earth](mailto:product@squake.earth) for the full supported list of operators.\n",
                  "examples": [
                    "sncf"
                  ]
                },
                "seat_type": {
                  "type": "string",
                  "enum": [
                    "first_class",
                    "second_class",
                    "average"
                  ],
                  "default": "average",
                  "examples": [
                    "second_class"
                  ]
                }
              },
              "required": [
                "type",
                "methodology"
              ]
            }
          ]
        },
        "Train-US-EPA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Calculation-Base-Item"
            },
            {
              "type": "object",
              "title": "Train US EPA",
              "properties": {
                "type": {
                  "const": "train",
                  "examples": [
                    "train"
                  ]
                },
                "methodology": {
                  "type": "string",
                  "const": "US-EPA",
                  "description": "Default: `\"US-EPA\"`.\n\nDetailed documentation of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/travel/train/train-us-epa).\n",
                  "examples": [
                    "US-EPA"
                  ]
                },
                "methodology_version": {
                  "type": "string",
                  "description": "The version of the US EPA methodology used.",
                  "default": "latest",
                  "enum": [
                    "2011",
                    "2012",
                    "2013",
                    "2014",
                    "2015",
                    "2016",
                    "2017",
                    "2018",
                    "2019",
                    "2020",
                    "2021",
                    "2022",
                    "2023",
                    "2024",
                    "2025",
                    "latest"
                  ],
                  "examples": [
                    "2024"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                },
                "distance_in_km": {
                  "$ref": "#/components/schemas/distance_in_km"
                },
                "origin": {
                  "$ref": "#/components/schemas/train_origin_destination"
                },
                "destination": {
                  "$ref": "#/components/schemas/train_origin_destination"
                },
                "train_type": {
                  "type": "string",
                  "enum": [
                    "intercity_northeast_corridor",
                    "intercity_national_average",
                    "intercity_other_routes",
                    "commuter_rail",
                    "transit_rail"
                  ],
                  "description": "The type of the train.",
                  "examples": [
                    "commuter_rail"
                  ],
                  "default": "intercity_national_average"
                },
                "number_of_travelers": {
                  "type": "integer",
                  "minimum": 1,
                  "default": 1,
                  "examples": [
                    2
                  ]
                }
              },
              "required": [
                "type",
                "methodology"
              ]
            }
          ]
        }
      },
      "Van": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Calculation-Base-Item"
          },
          {
            "type": "object",
            "title": "Van",
            "description": "If you have freight and don't know the type, you can use `Logistics`. If you have more details available, use the `EU-EEA` methodology for a more precise result.",
            "properties": {
              "type": {
                "const": "van",
                "examples": [
                  "van"
                ]
              },
              "methodology": {
                "const": "EU-EEA",
                "description": "`EU-EEA` is the methodology from the \"European Environmental Agency\".\n\nDescription of the methodology can be found in the [integration docs](https://docs-integration.squake.earth/api-calculations-request-response/logistics/van/van-eea). \n",
                "examples": [
                  "EU-EEA"
                ],
                "default": "EU-EEA"
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              },
              "weight_in_tonnes": {
                "$ref": "#/components/schemas/weight_in_tonnes"
              },
              "origin": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "destination": {
                "$ref": "#/components/schemas/origin_destination"
              },
              "distance_in_km": {
                "$ref": "#/components/schemas/distance_in_km"
              },
              "manufacturer": {
                "type": "string",
                "examples": [
                  "ford"
                ]
              },
              "model": {
                "type": "string",
                "examples": [
                  "fiesta"
                ]
              },
              "fuel_type": {
                "type": "string",
                "enum": [
                  "diesel",
                  "electric",
                  "petrol",
                  "lpg"
                ],
                "examples": [
                  "diesel"
                ]
              },
              "engine_size_in_cubic_cm": {
                "type": "number",
                "examples": [
                  1499
                ]
              }
            },
            "required": [
              "type",
              "methodology",
              "weight_in_tonnes",
              "origin",
              "destination"
            ]
          }
        ]
      },
      "SQUAKE-Request-Id": {
        "id": "2620f69f89024",
        "key": "SQUAKE-Request-Id",
        "name": "SQUAKE-Request-Id",
        "style": "simple",
        "description": "Unique identifier linked to this API request. If you need to contact us regarding a specific request, providing the request identifier helps the resolution process.",
        "explicitProperties": [
          "name",
          "in",
          "schema",
          "description"
        ],
        "examples": [],
        "schema": {
          "type": "string",
          "pattern": "req_[a-zA-Z0-9-]+",
          "examples": [
            "req_70394c00-728e-4d70-90bc-2b589c9ebdf8"
          ]
        }
      },
      "currency": {
        "type": "string",
        "enum": [
          "AED",
          "AMD",
          "ARS",
          "AUD",
          "AZN",
          "BAM",
          "BGN",
          "BHD",
          "BRL",
          "CAD",
          "CHF",
          "CLP",
          "CNY",
          "COP",
          "CRC",
          "CZK",
          "DKK",
          "DZD",
          "EGP",
          "ETB",
          "EUR",
          "GBP",
          "GEL",
          "HKD",
          "HUF",
          "IDR",
          "INR",
          "ISK",
          "JMD",
          "JOD",
          "JPY",
          "KES",
          "KRW",
          "KWD",
          "KZT",
          "LKR",
          "LYD",
          "MAD",
          "MUR",
          "MXN",
          "MYR",
          "NOK",
          "NZD",
          "OMR",
          "PHP",
          "PKR",
          "PLN",
          "QAR",
          "RSD",
          "RUB",
          "SAR",
          "SEK",
          "SGD",
          "SYP",
          "THB",
          "TND",
          "TRY",
          "TTD",
          "TWD",
          "UAH",
          "USD",
          "VND",
          "XAF",
          "XOF",
          "ZAR"
        ],
        "title": "Currency",
        "description": "3-letter ISO 4217 alpha code of the currency.",
        "pattern": "^[A-Z]{3}$",
        "minLength": 3,
        "maxLength": 3,
        "default": "EUR",
        "examples": [
          "EUR"
        ]
      },
      "payment_method": {
        "description": "Controls the way you want to process the purchase.\n\nIf `stripe` is used then you''ll receive a `payment_link` in response.\n\nIf `batch_settlement` is used, then you''ll have to use `/purchases` endpoint to finalise the purchase.\n",
        "type": "string",
        "enum": [
          "stripe",
          "batch_settlement"
        ],
        "default": "batch_settlement"
      },
      "Travel-Data-Traveler": {
        "title": "Travel-Data-Traveler",
        "type": "object",
        "description": "Traveler information for a given activity.",
        "properties": {
          "department": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "name": {
            "type": "string"
          },
          "traveler_type": {
            "type": "string",
            "description": "Type of traveler.",
            "enum": [
              "employee",
              "contractor",
              "guest"
            ]
          }
        }
      },
      "Travel-Data-Activity-Car-Base": {
        "type": "object",
        "properties": {
          "amount_in_cents": {
            "type": "integer",
            "minimum": 1,
            "description": "Cost of this activity in the smallest unit of `currency`. Activity-level spend takes precedence over trip-level spend in activity-based reporting."
          },
          "currency": {
            "$ref": "#/components/schemas/currency"
          },
          "start_date_utc": {
            "$ref": "#/components/schemas/iso_8601_date"
          },
          "end_date_utc": {
            "$ref": "#/components/schemas/iso_8601_date"
          },
          "traveler": {
            "$ref": "#/components/schemas/Travel-Data-Traveler"
          },
          "provider_company": {
            "type": "string",
            "description": "Only applicable for usage_type 'rental' or 'taxi'.",
            "examples": [
              "Sixt",
              "Hertz",
              "Avis",
              "Bolt",
              "Uber"
            ]
          },
          "rental_contract_number": {
            "type": "string"
          },
          "usage_type": {
            "type": "string",
            "description": "Mapping intent:\n\n- rental → car rental (Scope 3.6)\n- taxi → taxi/ride-hailing (Scope 3.6)\n- company → company fleet (Scope 1)\n- personal_car → private car reimbursement (Scope 3.6)",
            "enum": [
              "rental",
              "taxi",
              "company",
              "personal_car"
            ],
            "default": "rental",
            "examples": [
              "rental"
            ]
          }
        }
      },
      "Travel-Data-Activity-Car-Default": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Car-Base"
          },
          {
            "type": "object",
            "title": "Car client default methodology",
            "description": "If `methodology` is omitted, the API uses the client-configured default car methodology. Required calculation fields depend on the resolved methodology.",
            "properties": {
              "type": {
                "const": "car",
                "examples": [
                  "car"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              }
            },
            "required": [
              "type"
            ],
            "not": {
              "required": [
                "methodology"
              ]
            }
          }
        ]
      },
      "Travel-Data-Activity-Car-ACRISS": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Car-Base"
          },
          {
            "$ref": "#/components/schemas/Car-ACRISS"
          }
        ]
      },
      "Travel-Data-Activity-Car-BASIC": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Car-Base"
          },
          {
            "$ref": "#/components/schemas/Car-BASIC"
          }
        ]
      },
      "Travel-Data-Activity-Car-DEFRA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Car-Base"
          },
          {
            "$ref": "#/components/schemas/Car-DEFRA"
          }
        ]
      },
      "Travel-Data-Activity-Car-EU-EEA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Car-Base"
          },
          {
            "$ref": "#/components/schemas/Car-EU-EEA"
          }
        ]
      },
      "Travel-Data-Activity-Car-US-EPA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Car-Base"
          },
          {
            "$ref": "#/components/schemas/Car-US-EPA"
          }
        ]
      },
      "Travel-Data-Activity-Car": {
        "title": "Car",
        "type": "object",
        "description": "Car activity payload for travel data ingestion.",
        "properties": {
          "type": {
            "type": "string",
            "const": "car"
          },
          "external_reference": {
            "type": "string",
            "description": "External reference for the activity. If provided, calculations with differing methodologies can be attached to this activity."
          },
          "start_date_utc": {
            "$ref": "#/components/schemas/iso_8601_date"
          },
          "end_date_utc": {
            "$ref": "#/components/schemas/iso_8601_date"
          },
          "traveler": {
            "$ref": "#/components/schemas/Travel-Data-Traveler"
          },
          "methodology": {
            "type": "string",
            "description": "Optional methodology override. Omit this field to use the client-configured default methodology for car activities.",
            "enum": [
              "ACRISS",
              "BASIC",
              "DEFRA",
              "EU-EEA",
              "US-EPA"
            ]
          }
        },
        "anyOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Car-Default"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Car-ACRISS"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Car-BASIC"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Car-DEFRA"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Car-EU-EEA"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Car-US-EPA"
          }
        ],
        "Travel-Data-Activity-Car-Base": {
          "type": "object",
          "properties": {
            "amount_in_cents": {
              "type": "integer",
              "minimum": 1,
              "description": "Cost of this activity in the smallest unit of `currency`. Activity-level spend takes precedence over trip-level spend in activity-based reporting."
            },
            "currency": {
              "$ref": "#/components/schemas/currency"
            },
            "start_date_utc": {
              "$ref": "#/components/schemas/iso_8601_date"
            },
            "end_date_utc": {
              "$ref": "#/components/schemas/iso_8601_date"
            },
            "traveler": {
              "$ref": "#/components/schemas/Travel-Data-Traveler"
            },
            "provider_company": {
              "type": "string",
              "description": "Only applicable for usage_type 'rental' or 'taxi'.",
              "examples": [
                "Sixt",
                "Hertz",
                "Avis",
                "Bolt",
                "Uber"
              ]
            },
            "rental_contract_number": {
              "type": "string"
            },
            "usage_type": {
              "type": "string",
              "description": "Mapping intent:\n\n- rental → car rental (Scope 3.6)\n- taxi → taxi/ride-hailing (Scope 3.6)\n- company → company fleet (Scope 1)\n- personal_car → private car reimbursement (Scope 3.6)",
              "enum": [
                "rental",
                "taxi",
                "company",
                "personal_car"
              ],
              "default": "rental",
              "examples": [
                "rental"
              ]
            }
          }
        },
        "Travel-Data-Activity-Car-Default": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Car-Base"
            },
            {
              "type": "object",
              "title": "Car client default methodology",
              "description": "If `methodology` is omitted, the API uses the client-configured default car methodology. Required calculation fields depend on the resolved methodology.",
              "properties": {
                "type": {
                  "const": "car",
                  "examples": [
                    "car"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                }
              },
              "required": [
                "type"
              ],
              "not": {
                "required": [
                  "methodology"
                ]
              }
            }
          ]
        },
        "Travel-Data-Activity-Car-ACRISS": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Car-Base"
            },
            {
              "$ref": "#/components/schemas/Car-ACRISS"
            }
          ]
        },
        "Travel-Data-Activity-Car-BASIC": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Car-Base"
            },
            {
              "$ref": "#/components/schemas/Car-BASIC"
            }
          ]
        },
        "Travel-Data-Activity-Car-DEFRA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Car-Base"
            },
            {
              "$ref": "#/components/schemas/Car-DEFRA"
            }
          ]
        },
        "Travel-Data-Activity-Car-EU-EEA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Car-Base"
            },
            {
              "$ref": "#/components/schemas/Car-EU-EEA"
            }
          ]
        },
        "Travel-Data-Activity-Car-US-EPA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Car-Base"
            },
            {
              "$ref": "#/components/schemas/Car-US-EPA"
            }
          ]
        }
      },
      "Travel-Data-Activity-Flight-Base": {
        "type": "object",
        "properties": {
          "amount_in_cents": {
            "type": "integer",
            "minimum": 1,
            "description": "Cost of this activity in the smallest unit of `currency`. Activity-level spend takes precedence over trip-level spend in activity-based reporting."
          },
          "currency": {
            "$ref": "#/components/schemas/currency"
          },
          "start_date_utc": {
            "$ref": "#/components/schemas/iso_8601_date"
          },
          "end_date_utc": {
            "$ref": "#/components/schemas/iso_8601_date"
          },
          "airline_code": {
            "type": "string",
            "maxLength": 10
          },
          "airline_group": {
            "type": "string"
          },
          "airline_name": {
            "type": "string"
          },
          "flight_duration_in_minutes": {
            "type": "integer"
          },
          "flight_geo_scope_type": {
            "type": "string"
          },
          "flight_type": {
            "type": "string"
          },
          "traveler": {
            "$ref": "#/components/schemas/Travel-Data-Traveler"
          }
        }
      },
      "Travel-Data-Activity-Flight-Default": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
          },
          {
            "type": "object",
            "title": "Flight client default methodology",
            "description": "If `methodology` is omitted, the API uses the client-configured default flight methodology. Required calculation fields depend on the resolved methodology.",
            "properties": {
              "type": {
                "const": "flight",
                "examples": [
                  "flight"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              }
            },
            "required": [
              "type"
            ],
            "not": {
              "required": [
                "methodology"
              ]
            }
          }
        ]
      },
      "Travel-Data-Activity-Flight-ADEME": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
          },
          {
            "$ref": "#/components/schemas/Flight-ADEME"
          }
        ]
      },
      "Travel-Data-Activity-Flight-BASE-EMPREINTE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
          },
          {
            "$ref": "#/components/schemas/Flight-BASE-EMPREINTE"
          }
        ]
      },
      "Travel-Data-Activity-Flight-CO2-EMISSIEFACTOREN-NL": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
          },
          {
            "$ref": "#/components/schemas/Flight-CO2-EMISSIEFACTOREN-NL"
          }
        ]
      },
      "Travel-Data-Activity-Flight-DEFRA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
          },
          {
            "$ref": "#/components/schemas/Flight-DEFRA"
          }
        ]
      },
      "Travel-Data-Activity-Flight-GATE4": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
          },
          {
            "$ref": "#/components/schemas/Flight-GATE4"
          }
        ]
      },
      "Travel-Data-Activity-Flight-ICAO": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
          },
          {
            "$ref": "#/components/schemas/Flight-ICAO"
          }
        ]
      },
      "Travel-Data-Activity-Flight-TIM": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
          },
          {
            "$ref": "#/components/schemas/Flight-TIM"
          }
        ]
      },
      "Travel-Data-Activity-Flight-TU-CHALMERS": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
          },
          {
            "$ref": "#/components/schemas/Flight-TU-CHALMERS"
          }
        ]
      },
      "Travel-Data-Activity-Flight-US-EPA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
          },
          {
            "$ref": "#/components/schemas/Flight-US-EPA"
          }
        ]
      },
      "Travel-Data-Activity-Flight": {
        "title": "Flight",
        "type": "object",
        "description": "Flight activity payload for travel data ingestion. Supports `routing` (e.g. `BER-FRA-JFK`) as an alternative to `origin`/`destination`.\n",
        "properties": {
          "type": {
            "type": "string",
            "const": "flight"
          },
          "external_reference": {
            "type": "string",
            "description": "External reference for the activity. If provided, calculations with differing methodologies can be attached to this activity."
          },
          "methodology": {
            "type": "string",
            "description": "Optional methodology override. Omit this field to use the client-configured default methodology for flight activities.",
            "enum": [
              "ADEME",
              "BASE-EMPREINTE",
              "CO2-EMISSIEFACTOREN-NL",
              "DEFRA",
              "GATE4",
              "ICAO",
              "TIM",
              "TU-CHALMERS",
              "US-EPA"
            ]
          }
        },
        "anyOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Default"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-ADEME"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-BASE-EMPREINTE"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-CO2-EMISSIEFACTOREN-NL"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-DEFRA"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-GATE4"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-ICAO"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-TIM"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-TU-CHALMERS"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight-US-EPA"
          }
        ],
        "Travel-Data-Activity-Flight-Base": {
          "type": "object",
          "properties": {
            "amount_in_cents": {
              "type": "integer",
              "minimum": 1,
              "description": "Cost of this activity in the smallest unit of `currency`. Activity-level spend takes precedence over trip-level spend in activity-based reporting."
            },
            "currency": {
              "$ref": "#/components/schemas/currency"
            },
            "start_date_utc": {
              "$ref": "#/components/schemas/iso_8601_date"
            },
            "end_date_utc": {
              "$ref": "#/components/schemas/iso_8601_date"
            },
            "airline_code": {
              "type": "string",
              "maxLength": 10
            },
            "airline_group": {
              "type": "string"
            },
            "airline_name": {
              "type": "string"
            },
            "flight_duration_in_minutes": {
              "type": "integer"
            },
            "flight_geo_scope_type": {
              "type": "string"
            },
            "flight_type": {
              "type": "string"
            },
            "traveler": {
              "$ref": "#/components/schemas/Travel-Data-Traveler"
            }
          }
        },
        "Travel-Data-Activity-Flight-Default": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
            },
            {
              "type": "object",
              "title": "Flight client default methodology",
              "description": "If `methodology` is omitted, the API uses the client-configured default flight methodology. Required calculation fields depend on the resolved methodology.",
              "properties": {
                "type": {
                  "const": "flight",
                  "examples": [
                    "flight"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                }
              },
              "required": [
                "type"
              ],
              "not": {
                "required": [
                  "methodology"
                ]
              }
            }
          ]
        },
        "Travel-Data-Activity-Flight-ADEME": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
            },
            {
              "$ref": "#/components/schemas/Flight-ADEME"
            }
          ]
        },
        "Travel-Data-Activity-Flight-BASE-EMPREINTE": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
            },
            {
              "$ref": "#/components/schemas/Flight-BASE-EMPREINTE"
            }
          ]
        },
        "Travel-Data-Activity-Flight-CO2-EMISSIEFACTOREN-NL": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
            },
            {
              "$ref": "#/components/schemas/Flight-CO2-EMISSIEFACTOREN-NL"
            }
          ]
        },
        "Travel-Data-Activity-Flight-DEFRA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
            },
            {
              "$ref": "#/components/schemas/Flight-DEFRA"
            }
          ]
        },
        "Travel-Data-Activity-Flight-GATE4": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
            },
            {
              "$ref": "#/components/schemas/Flight-GATE4"
            }
          ]
        },
        "Travel-Data-Activity-Flight-ICAO": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
            },
            {
              "$ref": "#/components/schemas/Flight-ICAO"
            }
          ]
        },
        "Travel-Data-Activity-Flight-TIM": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
            },
            {
              "$ref": "#/components/schemas/Flight-TIM"
            }
          ]
        },
        "Travel-Data-Activity-Flight-TU-CHALMERS": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
            },
            {
              "$ref": "#/components/schemas/Flight-TU-CHALMERS"
            }
          ]
        },
        "Travel-Data-Activity-Flight-US-EPA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Flight-Base"
            },
            {
              "$ref": "#/components/schemas/Flight-US-EPA"
            }
          ]
        }
      },
      "Travel-Data-Activity-Hotel-Base": {
        "type": "object",
        "properties": {
          "amount_in_cents": {
            "type": "integer",
            "minimum": 1,
            "description": "Cost of this activity in the smallest unit of `currency`. Activity-level spend takes precedence over trip-level spend in activity-based reporting."
          },
          "currency": {
            "$ref": "#/components/schemas/currency"
          },
          "name": {
            "type": "string",
            "description": "Name of the hotel. Supports better reporting drilldowns + supplier analytics."
          },
          "start_date_utc": {
            "$ref": "#/components/schemas/iso_8601_date"
          },
          "end_date_utc": {
            "$ref": "#/components/schemas/iso_8601_date"
          },
          "country_alpha2": {
            "type": "string",
            "title": "The two letter country code as defined in ISO 3166-1 alpha-2",
            "pattern": "^[A-Z]{2}$",
            "examples": [
              "FR",
              "DE",
              "GB"
            ]
          },
          "number_of_travelers": {
            "type": "integer",
            "minimum": 1,
            "examples": [
              1
            ]
          },
          "hotel_chain": {
            "type": "string",
            "description": "Name of the hotel chain (e.g. \"Marriott\", \"Hilton\"). Used for reporting and supplier analytics.",
            "examples": [
              "Marriott"
            ]
          },
          "traveler": {
            "$ref": "#/components/schemas/Travel-Data-Traveler"
          }
        }
      },
      "Travel-Data-Activity-Hotel-DEFRA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Hotel-Base"
          },
          {
            "$ref": "#/components/schemas/Hotel-DEFRA"
          }
        ]
      },
      "Travel-Data-Activity-Hotel-HCMI": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Hotel-Base"
          },
          {
            "$ref": "#/components/schemas/Hotel-HCMI"
          }
        ]
      },
      "Travel-Data-Activity-Hotel-GREENVIEW": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Hotel-Base"
          },
          {
            "$ref": "#/components/schemas/Hotel-GREENVIEW"
          }
        ]
      },
      "Travel-Data-Activity-Hotel-NOS-GESTES-CLIMAT": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Hotel-Base"
          },
          {
            "$ref": "#/components/schemas/Hotel-NOS-GESTES-CLIMAT"
          }
        ]
      },
      "Travel-Data-Activity-Hotel-Default": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Hotel-Base"
          },
          {
            "type": "object",
            "title": "Hotel client default methodology",
            "description": "If `methodology` is omitted, the API uses the client-configured default hotel methodology. Required calculation fields depend on the resolved methodology.",
            "properties": {
              "type": {
                "const": "hotel",
                "examples": [
                  "hotel"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              }
            },
            "required": [
              "type"
            ],
            "not": {
              "required": [
                "methodology"
              ]
            }
          }
        ]
      },
      "Travel-Data-Activity-Hotel": {
        "title": "Hotel",
        "type": "object",
        "description": "Hotel activity payload for travel data ingestion.",
        "properties": {
          "type": {
            "type": "string",
            "const": "hotel"
          },
          "external_reference": {
            "type": "string",
            "description": "External reference for the activity. If provided, calculations with differing methodologies can be attached to this activity."
          },
          "methodology": {
            "type": "string",
            "description": "Optional methodology override. Omit this field to use the client-configured default methodology for hotel activities.",
            "enum": [
              "DEFRA",
              "HCMI",
              "GREENVIEW"
            ]
          }
        },
        "discriminator": {
          "propertyName": "methodology",
          "mapping": {
            "DEFRA": "#/components/schemas/Travel-Data-Activity-Hotel-DEFRA",
            "HCMI": "#/components/schemas/Travel-Data-Activity-Hotel-HCMI",
            "GREENVIEW": "#/components/schemas/Travel-Data-Activity-Hotel-GREENVIEW",
            "NOS-GESTES-CLIMAT": "#/components/schemas/Travel-Data-Activity-Hotel-NOS-GESTES-CLIMAT"
          }
        },
        "anyOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Hotel-Default"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Hotel-DEFRA"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Hotel-HCMI"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Hotel-GREENVIEW"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Hotel-NOS-GESTES-CLIMAT"
          }
        ],
        "Travel-Data-Activity-Hotel-Base": {
          "type": "object",
          "properties": {
            "amount_in_cents": {
              "type": "integer",
              "minimum": 1,
              "description": "Cost of this activity in the smallest unit of `currency`. Activity-level spend takes precedence over trip-level spend in activity-based reporting."
            },
            "currency": {
              "$ref": "#/components/schemas/currency"
            },
            "name": {
              "type": "string",
              "description": "Name of the hotel. Supports better reporting drilldowns + supplier analytics."
            },
            "start_date_utc": {
              "$ref": "#/components/schemas/iso_8601_date"
            },
            "end_date_utc": {
              "$ref": "#/components/schemas/iso_8601_date"
            },
            "country_alpha2": {
              "type": "string",
              "title": "The two letter country code as defined in ISO 3166-1 alpha-2",
              "pattern": "^[A-Z]{2}$",
              "examples": [
                "FR",
                "DE",
                "GB"
              ]
            },
            "number_of_travelers": {
              "type": "integer",
              "minimum": 1,
              "examples": [
                1
              ]
            },
            "hotel_chain": {
              "type": "string",
              "description": "Name of the hotel chain (e.g. \"Marriott\", \"Hilton\"). Used for reporting and supplier analytics.",
              "examples": [
                "Marriott"
              ]
            },
            "traveler": {
              "$ref": "#/components/schemas/Travel-Data-Traveler"
            }
          }
        },
        "Travel-Data-Activity-Hotel-Default": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Hotel-Base"
            },
            {
              "type": "object",
              "title": "Hotel client default methodology",
              "description": "If `methodology` is omitted, the API uses the client-configured default hotel methodology. Required calculation fields depend on the resolved methodology.",
              "properties": {
                "type": {
                  "const": "hotel",
                  "examples": [
                    "hotel"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                }
              },
              "required": [
                "type"
              ],
              "not": {
                "required": [
                  "methodology"
                ]
              }
            }
          ]
        },
        "Travel-Data-Activity-Hotel-DEFRA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Hotel-Base"
            },
            {
              "$ref": "#/components/schemas/Hotel-DEFRA"
            }
          ]
        },
        "Travel-Data-Activity-Hotel-HCMI": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Hotel-Base"
            },
            {
              "$ref": "#/components/schemas/Hotel-HCMI"
            }
          ]
        },
        "Travel-Data-Activity-Hotel-GREENVIEW": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Hotel-Base"
            },
            {
              "$ref": "#/components/schemas/Hotel-GREENVIEW"
            }
          ]
        },
        "Travel-Data-Activity-Hotel-NOS-GESTES-CLIMAT": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Hotel-Base"
            },
            {
              "$ref": "#/components/schemas/Hotel-NOS-GESTES-CLIMAT"
            }
          ]
        }
      },
      "Travel-Data-Activity-Train-Base": {
        "type": "object",
        "properties": {
          "amount_in_cents": {
            "type": "integer",
            "minimum": 1,
            "description": "Cost of this activity in the smallest unit of `currency`. Activity-level spend takes precedence over trip-level spend in activity-based reporting."
          },
          "currency": {
            "$ref": "#/components/schemas/currency"
          },
          "fare_class": {
            "type": "string",
            "description": "Fare class according to the methodology used, list of available fare classes per methodlogy can be found [here](https://docs-v2.squake.earth/docs/openapi/calculations/post-calculations)"
          },
          "start_date_utc": {
            "$ref": "#/components/schemas/iso_8601_date"
          },
          "end_date_utc": {
            "$ref": "#/components/schemas/iso_8601_date"
          },
          "traveler": {
            "$ref": "#/components/schemas/Travel-Data-Traveler"
          }
        }
      },
      "Travel-Data-Activity-Train-ADEME": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
          },
          {
            "$ref": "#/components/schemas/Train-ADEME"
          }
        ]
      },
      "Travel-Data-Activity-Train-BASE-EMPREINTE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
          },
          {
            "$ref": "#/components/schemas/Train-BASE-EMPREINTE"
          }
        ]
      },
      "Travel-Data-Activity-Train-CO2-EMISSIEFACTOREN-NL": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
          },
          {
            "$ref": "#/components/schemas/Train-CO2-EMISSIEFACTOREN-NL"
          }
        ]
      },
      "Travel-Data-Activity-Train-DEFRA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
          },
          {
            "$ref": "#/components/schemas/Train-DEFRA"
          }
        ]
      },
      "Travel-Data-Activity-Train-GREEN-TRAVEL-PLEDGE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
          },
          {
            "$ref": "#/components/schemas/Train-GREEN-TRAVEL-PLEDGE"
          }
        ]
      },
      "Travel-Data-Activity-Train-REM": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
          },
          {
            "$ref": "#/components/schemas/Train-REM"
          }
        ]
      },
      "Travel-Data-Activity-Train-US-EPA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
          },
          {
            "$ref": "#/components/schemas/Train-US-EPA"
          }
        ]
      },
      "Travel-Data-Activity-Train-Default": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
          },
          {
            "type": "object",
            "title": "Train client default methodology",
            "description": "If `methodology` is omitted, the API uses the client-configured default train methodology. Required calculation fields depend on the resolved methodology.",
            "properties": {
              "type": {
                "const": "train",
                "examples": [
                  "train"
                ]
              },
              "external_reference": {
                "$ref": "#/components/schemas/external_reference"
              }
            },
            "required": [
              "type"
            ],
            "not": {
              "required": [
                "methodology"
              ]
            }
          }
        ]
      },
      "Travel-Data-Activity-Train": {
        "title": "Train",
        "type": "object",
        "description": "Train activity payload for travel data ingestion.",
        "properties": {
          "type": {
            "type": "string",
            "const": "train"
          },
          "external_reference": {
            "type": "string",
            "description": "External reference for the activity. If provided, calculations with differing methodologies can be attached to this activity."
          },
          "methodology": {
            "type": "string",
            "description": "Optional methodology override. Omit this field to use the client-configured default methodology for train activities.",
            "enum": [
              "ADEME",
              "BASE-EMPREINTE",
              "CO2-EMISSIEFACTOREN-NL",
              "DEFRA",
              "GREEN-TRAVEL-PLEDGE",
              "REM",
              "SQUAKE",
              "US-EPA"
            ]
          }
        },
        "discriminator": {
          "propertyName": "methodology",
          "mapping": {
            "ADEME": "#/components/schemas/Travel-Data-Activity-Train-ADEME",
            "BASE-EMPREINTE": "#/components/schemas/Travel-Data-Activity-Train-BASE-EMPREINTE",
            "CO2-EMISSIEFACTOREN-NL": "#/components/schemas/Travel-Data-Activity-Train-CO2-EMISSIEFACTOREN-NL",
            "DEFRA": "#/components/schemas/Travel-Data-Activity-Train-DEFRA",
            "GREEN-TRAVEL-PLEDGE": "#/components/schemas/Travel-Data-Activity-Train-GREEN-TRAVEL-PLEDGE",
            "REM": "#/components/schemas/Travel-Data-Activity-Train-REM",
            "US-EPA": "#/components/schemas/Travel-Data-Activity-Train-US-EPA"
          }
        },
        "anyOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-Default"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-ADEME"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-BASE-EMPREINTE"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-CO2-EMISSIEFACTOREN-NL"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-DEFRA"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-GREEN-TRAVEL-PLEDGE"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-REM"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train-US-EPA"
          }
        ],
        "Travel-Data-Activity-Train-Base": {
          "type": "object",
          "properties": {
            "amount_in_cents": {
              "type": "integer",
              "minimum": 1,
              "description": "Cost of this activity in the smallest unit of `currency`. Activity-level spend takes precedence over trip-level spend in activity-based reporting."
            },
            "currency": {
              "$ref": "#/components/schemas/currency"
            },
            "fare_class": {
              "type": "string",
              "description": "Fare class according to the methodology used, list of available fare classes per methodlogy can be found [here](https://docs-v2.squake.earth/docs/openapi/calculations/post-calculations)"
            },
            "start_date_utc": {
              "$ref": "#/components/schemas/iso_8601_date"
            },
            "end_date_utc": {
              "$ref": "#/components/schemas/iso_8601_date"
            },
            "traveler": {
              "$ref": "#/components/schemas/Travel-Data-Traveler"
            }
          }
        },
        "Travel-Data-Activity-Train-Default": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
            },
            {
              "type": "object",
              "title": "Train client default methodology",
              "description": "If `methodology` is omitted, the API uses the client-configured default train methodology. Required calculation fields depend on the resolved methodology.",
              "properties": {
                "type": {
                  "const": "train",
                  "examples": [
                    "train"
                  ]
                },
                "external_reference": {
                  "$ref": "#/components/schemas/external_reference"
                }
              },
              "required": [
                "type"
              ],
              "not": {
                "required": [
                  "methodology"
                ]
              }
            }
          ]
        },
        "Travel-Data-Activity-Train-ADEME": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
            },
            {
              "$ref": "#/components/schemas/Train-ADEME"
            }
          ]
        },
        "Travel-Data-Activity-Train-BASE-EMPREINTE": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
            },
            {
              "$ref": "#/components/schemas/Train-BASE-EMPREINTE"
            }
          ]
        },
        "Travel-Data-Activity-Train-CO2-EMISSIEFACTOREN-NL": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
            },
            {
              "$ref": "#/components/schemas/Train-CO2-EMISSIEFACTOREN-NL"
            }
          ]
        },
        "Travel-Data-Activity-Train-DEFRA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
            },
            {
              "$ref": "#/components/schemas/Train-DEFRA"
            }
          ]
        },
        "Travel-Data-Activity-Train-GREEN-TRAVEL-PLEDGE": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
            },
            {
              "$ref": "#/components/schemas/Train-GREEN-TRAVEL-PLEDGE"
            }
          ]
        },
        "Travel-Data-Activity-Train-REM": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
            },
            {
              "$ref": "#/components/schemas/Train-REM"
            }
          ]
        },
        "Travel-Data-Activity-Train-US-EPA": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Travel-Data-Activity-Train-Base"
            },
            {
              "$ref": "#/components/schemas/Train-US-EPA"
            }
          ]
        }
      },
      "Travel-Data-Activity": {
        "title": "Travel-Data-Activity",
        "description": "Aggregated activity type for travel data ingestion. Supports `car`, `flight`, `hotel`, and `train`.\n",
        "anyOf": [
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Car"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Flight"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Hotel"
          },
          {
            "$ref": "#/components/schemas/Travel-Data-Activity-Train"
          }
        ]
      },
      "Travel-Data-Cost-Center": {
        "title": "Travel-Data-Cost-Center",
        "type": "object",
        "description": "Cost center associated with a trip.",
        "properties": {
          "department": {
            "type": "string",
            "description": "Department associated with the cost center. This field is optional, but if provided will be avaialble as a filter option in the UI."
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "name": {
            "type": "string"
          },
          "purpose": {
            "type": "string"
          },
          "country_alpha2": {
            "type": "string",
            "pattern": "^[A-Z]{2}$",
            "examples": [
              "DE",
              "US",
              "JP"
            ]
          },
          "city": {
            "type": "string"
          },
          "business_unit": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ]
      },
      "Travel-Data-Trip": {
        "title": "Travel-Data-Trip",
        "type": "object",
        "description": "A trip containing one or more activities and optional cost center information.",
        "properties": {
          "audit_for": {
            "type": "string",
            "description": "UUID of the Auditable entity this trip is audited for."
          },
          "booking_id": {
            "type": "string"
          },
          "booking_provider": {
            "type": "string"
          },
          "currency": {
            "$ref": "#/components/schemas/currency"
          },
          "amount_in_cents": {
            "type": "integer",
            "description": "Total trip cost in the smallest unit of `currency`. An activity's own monetary values take precedence in activity-based reporting."
          },
          "metadata": {
            "type": "object",
            "description": "Metadata associated with the trip, Key-Value pairs."
          },
          "start_date_utc": {
            "$ref": "#/components/schemas/iso_8601_date"
          },
          "end_date_utc": {
            "$ref": "#/components/schemas/iso_8601_date"
          },
          "external_source_id": {
            "type": "string",
            "description": "ID of the trip in the external system that created this trip."
          },
          "external_source": {
            "type": "string",
            "description": "Name of the external system that created this trip."
          },
          "external_created_at": {
            "$ref": "#/components/schemas/iso_8601_date"
          },
          "pnr": {
            "type": "string",
            "description": "Passenger Name Record, commonly used in flight bookings."
          },
          "trip_name": {
            "type": "string"
          },
          "trip_purpose": {
            "type": "string"
          },
          "trip_reference": {
            "type": "string",
            "description": "If given, this field must be unique. An API call with the same `trip_reference` will attach new activities to the existing trip instead of creating a new trip."
          },
          "trip_status": {
            "type": "string"
          },
          "project_reference": {
            "type": "string"
          },
          "activities": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/Travel-Data-Activity"
            }
          },
          "cost_center": {
            "$ref": "#/components/schemas/Travel-Data-Cost-Center"
          }
        },
        "required": [
          "activities",
          "start_date_utc"
        ]
      },
      "AuditCalculation": {
        "type": "object",
        "description": "More details information like the distance and the emission factors used during the calculation. To have this feature enabled, please contact SQUAKE support",
        "properties": {
          "distance": {
            "type": "object",
            "description": "The distance used for the calculation.",
            "properties": {
              "corrected": {
                "type": "object",
                "properties": {
                  "distance": {
                    "type": "number"
                  },
                  "distance_unit": {
                    "$ref": "#/components/schemas/distance_unit"
                  }
                }
              },
              "original": {
                "type": "object",
                "properties": {
                  "distance": {
                    "type": "number"
                  },
                  "distance_unit": {
                    "$ref": "#/components/schemas/distance_unit"
                  }
                }
              }
            }
          },
          "emission_factors": {
            "type": "object",
            "description": "The emission factors used during the calculation. This object can contain various factors, which will differ from methodology to methodology."
          }
        }
      },
      "AuditMethodology": {
        "type": "object",
        "description": "Information about the methodology used for the calculation.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the methodology used for the calculation."
          },
          "version": {
            "type": "string",
            "description": "Version of the methodology used for the calculation."
          },
          "source": {
            "type": "string",
            "description": "URL linking to the official documentation or source of the methodology used in the calculation."
          }
        }
      },
      "Audit": {
        "type": "object",
        "description": "When Audit mode is enabled for a client, SQUAKE will generate audit logs if it's requested within the calculations request body. These logs are immutable; once they are created they cannot be altered—please use this feature only for final calculations.\n\nOperational notes:\n- Use **audit mode** whenever a calculation is for **past activity / post-booking (post-validated)** (e.g., ticketed & already-flown flights, completed stays/trips, historical backfills, invoice reconciliation/true-ups, corrections). These records are final and must be immutable.\n- **Audit mode must not be used for future-looking / pre-booking** or other non-final use cases (e.g., shopping/quotes, draft or tentative itineraries, forecasting/scenario planning, preliminary estimates, or POS value requests). These are expected to change.\n- **Post-booking (finalized) calculations MUST be performed with audit mode enabled.**\n- **Pre-booking (non-audit) calculated values must not be carried over into post-booking reporting**; after the activity is finalized, the calculation must be re-run with audit mode enabled.\n- Requests that handle **points-of-sale (POS) values** or other preview/estimation-only calls MUST be sent **without** audit mode.\n\nRule of thumb: **Past/post-validated = audit mode; Future/pre-booking = no audit mode**.",
        "examples": [
          {
            "id": "0194d6b4-8711-7873-899d-c8133cd742f8",
            "calculated_at": "2025-02-18T16:39:10Z",
            "request": {
              "type": "flight",
              "methodology": "ICAO",
              "origin": "SAF",
              "destination": "ATL"
            },
            "response": {
              "carbon_quantity": 302.75,
              "carbon_unit": "kilogram"
            },
            "calculation": {
              "distance": {
                "corrected": {
                  "distance": 3438,
                  "distance_unit": "kilometer"
                },
                "original": {
                  "distance": 3437.83,
                  "distance_unit": "kilometer"
                }
              },
              "emission_factors": {
                "co2_per_passenger": 0.5,
                "flight_type": "long_haul"
              }
            },
            "methodology": {
              "name": "ICAO",
              "version": "1.0",
              "source": "https://applications.icao.int/icec/Methodology%20ICAO%20Carbon%20Emissions%20Calculator_v13_Final.pdf"
            }
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "A unique identifier for the audit, represented as a universally unique identifier (UUID)",
            "format": "uuid"
          },
          "calculated_at": {
            "description": "The date of the calculation requested.",
            "format": "date-time",
            "type": "string",
            "example": "2025-02-18T16:39:10Z"
          },
          "request": {
            "type": "object",
            "description": "The item from the request body used for the calculation. The structure of this property may vary based on the parameters of the calculation request."
          },
          "response": {
            "type": "object",
            "description": "The calculation results provided in the response by SQUAKE."
          },
          "calculation": {
            "$ref": "#/components/schemas/AuditCalculation"
          },
          "methodology": {
            "$ref": "#/components/schemas/AuditMethodology"
          },
          "audit_for": {
            "type": "string",
            "description": "If you make a calculation on behalf of a specific legal entity, you can specify the ID of the auditable entity."
          }
        },
        "AuditCalculation": {
          "type": "object",
          "description": "More details information like the distance and the emission factors used during the calculation. To have this feature enabled, please contact SQUAKE support",
          "properties": {
            "distance": {
              "type": "object",
              "description": "The distance used for the calculation.",
              "properties": {
                "corrected": {
                  "type": "object",
                  "properties": {
                    "distance": {
                      "type": "number"
                    },
                    "distance_unit": {
                      "$ref": "#/components/schemas/distance_unit"
                    }
                  }
                },
                "original": {
                  "type": "object",
                  "properties": {
                    "distance": {
                      "type": "number"
                    },
                    "distance_unit": {
                      "$ref": "#/components/schemas/distance_unit"
                    }
                  }
                }
              }
            },
            "emission_factors": {
              "type": "object",
              "description": "The emission factors used during the calculation. This object can contain various factors, which will differ from methodology to methodology."
            }
          }
        },
        "AuditMethodology": {
          "type": "object",
          "description": "Information about the methodology used for the calculation.",
          "properties": {
            "name": {
              "type": "string",
              "description": "Name of the methodology used for the calculation."
            },
            "version": {
              "type": "string",
              "description": "Version of the methodology used for the calculation."
            },
            "source": {
              "type": "string",
              "description": "URL linking to the official documentation or source of the methodology used in the calculation."
            }
          }
        }
      },
      "AuditableEntityAddress": {
        "type": "object",
        "title": "Auditable entity address",
        "description": "Address of a legal entity. Some (legal) documets require a full address to be given, e.g. an invoice.",
        "properties": {
          "city": {
            "type": "string",
            "description": "City, town, village,..."
          },
          "line1": {
            "type": "string",
            "description": "Street name and number, P.O. box, c/o,..."
          },
          "line2": {
            "type": "string",
            "description": "Additional address information, e.g. building, floor, ..."
          },
          "email": {
            "type": "string",
            "description": "Email address associated with this address",
            "format": "email"
          },
          "country_alpha2": {
            "$ref": "#/components/schemas/country"
          },
          "state": {
            "type": "string",
            "description": "County, Province, Region, State,..."
          },
          "postal_code": {
            "type": "string",
            "description": "ZIP or postal code"
          }
        },
        "required": [
          "city",
          "country_alpha2",
          "line1",
          "postal_code"
        ]
      },
      "AuditableEntity": {
        "type": "object",
        "description": "Auditable entity represents a legal entity, which can be attached to an audit entry, so the user can provide detailed information.",
        "examples": [
          {
            "id": "0194d6b4-8711-7873-899d-c8133cd742f8",
            "legal_name": "Test Company Inc.",
            "email": "test@squake.earth",
            "vat_id": "DE123456789",
            "external_id": "external-id",
            "address": {
              "city": "Berlin",
              "line_1": "Street 1",
              "line_2": "Building A",
              "email": "test@squake.earth",
              "country_alpha2": "DE",
              "name_line_1": "Test Company Inc.",
              "name_line_2": "c/o John Doe",
              "state": "BE",
              "zip_code": "12345"
            }
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "A unique identifier for the audit entity record, represented as a universally unique identifier (UUID)",
            "format": "uuid"
          },
          "legal_name": {
            "type": "string",
            "description": "The legal name of the entity.",
            "example": "Test Company Inc."
          },
          "email": {
            "type": "string",
            "description": "The email address associated with the entity.",
            "format": "email"
          },
          "vat_id": {
            "type": "string",
            "description": "The VAT identification number of the entity.",
            "example": "DE123456789"
          },
          "external_id": {
            "type": "string",
            "description": "An external identifier for the entity, which can be used to link the entity to an external system or database.",
            "example": "external-id"
          },
          "address": {
            "$ref": "#/components/schemas/AuditableEntityAddress"
          }
        }
      },
      "AuditableEntityRequest": {
        "type": "object",
        "description": "Auditable entity represents a legal entity, which can be attached to an audit entry, so the user can provide detailed information.",
        "example": {
          "legal_name": "Test Company Inc.",
          "email": "test@squake.earth",
          "vat_id": "DE123456789",
          "external_id": "external-id",
          "address": {
            "city": "Berlin",
            "line1": "Street 1",
            "line2": "Building A",
            "email": "test@squake.earth",
            "country_alpha2": "DE",
            "state": "BE",
            "postal_code": "12345"
          }
        },
        "properties": {
          "legal_name": {
            "type": "string",
            "description": "The legal name of the entity.",
            "example": "Test Company Inc."
          },
          "email": {
            "type": "string",
            "description": "The email address associated with the entity.",
            "format": "email"
          },
          "vat_id": {
            "type": "string",
            "description": "The VAT identification number of the entity.",
            "example": "DE123456789"
          },
          "external_id": {
            "type": "string",
            "description": "An external identifier for the entity, which can be used to link the entity to an external system or database.",
            "example": "external-id"
          },
          "address": {
            "$ref": "#/components/schemas/AuditableEntityAddress"
          }
        }
      }
    },
    "examples": {
      "regular_calculation": {
        "summary": "Regular calculation",
        "value": {
          "carbon_quantity": 0.37,
          "carbon_unit": "tonne",
          "items": [
            {
              "carbon_quantity": 0.37,
              "carbon_unit": "tonne",
              "type": "flight",
              "methodology": "DEFRA",
              "external_reference": "string"
            }
          ]
        }
      },
      "calculation_with_audit": {
        "summary": "Calculation with Audit mode",
        "value": {
          "carbon_quantity": 0.37,
          "carbon_unit": "tonne",
          "items": [
            {
              "carbon_quantity": 0.37,
              "carbon_unit": "tonne",
              "type": "flight",
              "methodology": "DEFRA",
              "external_reference": "string",
              "audit_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
            }
          ]
        }
      }
    }
  }
}