# ProgramVehicleCompatibility

Schema: #/components/schemas/ProgramVehicleCompatibility

Method: SCHEMA
Version: 2.0
Security: oauth2

## Schema fields:

  - `can_control_charge` (boolean)
    Whether ev.energy can control charging for this vehicle model.
    Example: true

  - `model` (any)
    Link to the vehicle model by default. Expanded to full object when ?expand=model is used.

  - `model.id` (string, required)
    Unique identifier for the given Vehicle Model.
    Example: vmod01HSBR8Z36GD7A46K7M4R12VG0

  - `model.url` (string, required)
    Example: https://api.ev.energy/vehicle_models/vmod01HSBR8Z36GD7A46K7M4R12VG0

  - `model.name` (string, required)
    Example: C40

  - `model.make` (any)

  - `model.make.id` (string, required)
    Unique identifier for the given Vehicle Make.
    Example: vmak01HRFHBCM7VBSWRPVYFBQMH2BR

  - `model.make.url` (string, required)
    Example: https://api.ev.energy/v2/vehicle_makes/vmak01HRFHBCM7VBSWRPVYFBQMH2BR

  - `model.make.name` (string, required)
    Example: Volvo

  - `model.make.icon` (string | null, required)
    A url for an image of the make's logo.
    Example: https://cdn.example.com/volvo.png

  - `model.make.onboarding_url` (string | null, required)
    A pre-constructed link to initiate onboarding for a vehicle of this make. If it is null, then it cannot be onboarded with make alone. You should filter the list of [vehicle models](ev.energy-API-v2.yaml/paths/~1vehicle_models/get) by this make and then have the user select their model.
Your `client_id` and the user's `user_id` are automatically included based on your authentication token. If you are using client credentials authentication, the user ID will not be automatically included unless you set the EvEnergy-User header on your request.
    Example: https://api.ev.energy/v2/vehicle_onboarding/?make_id=vmak01HN2P75GBNFRJPCZJXEFVXH5E&user_id=user01HN2NJ9NMRZBXT1H6FT9N7735&client_id=your_client_id

  - `model.make.models` (string, required)
    A pre-constructed link to a list of vehicle models filtered for this make.
    Example: https://api.ev.energy/vehicle_models?make_id=vmak01HN2P75GBNFRJPCZJXEFVXH5E

  - `model.make.subscription_name` (string | null)
    Full OEM telematics subscription name required for vehicle connectivity (e.g. 'Volkswagen We Connect ID'). Null if no subscription is required.
    Example: Volkswagen We Connect ID

  - `model.make.subscription_package` (string | null)
    Specific OEM subscription package required (e.g. 'We Connect ID'). Null if no subscription is required.
    Example: We Connect ID

  - `model.onboarding_url` (string | null)
    A pre-constructed link to initiate onboarding for a vehicle of this model. If it is null, then it cannot be onboarded with model alone. You should filter the list of [vehicle trims](ev.energy-API-v2.yaml/paths/~1vehicle_trims/get) by this model and then have the user select their trim.
Your `client_id` and the user's `user_id` are automatically included based on your authentication token. If you are using client credentials authentication, the user ID will not be automatically included unless you set the EvEnergy-User header on your request.
    Example: https://api.ev.energy/v2/vehicle_onboarding?model_id=vmod01HN2P436099PEQ20B7TKPGTEJ&user_id=user01HN2NJ9NMRZBXT1H6FT9N7735&client_id=your_client_id

  - `model.vehicle_trims` (string)
    A pre-constructed link to a list of vehicle trims filtered for this model.
    Example: https://api.ev.energy/v2/vehicle_trims?model_id=vmod01HN2P436099PEQ20B7TKPGTEJ

  - `model.default_battery_size_watt_hours` (integer, required)
    Default battery size in watt-hours for this model, derived from the most common battery size across trims. Falls back to 45000 Wh if no trim data exists.
    Example: 79000

  - `type` (string | null)
    The vehicle type: BEV (Battery Electric Vehicle) or PHEV (Plug-in Hybrid Electric Vehicle).
    Enum: "BEV", "PHEV", "null"

  - `supported_countries` (array)
    List of ISO 3166-1 alpha-2 country codes this vehicle is compatible in.
    Example: ["US","CA"]

  - `start_year` (integer)
    The first model year this compatibility applies to.
    Example: 2020

  - `end_year` (integer | null)
    The last model year this compatibility applies to. Null if still in production.
    Example: 2026

