Open Vehicle API (VAPI)#

Open Vehicle API (VAPI) provides a structured way to design and run vehicle functions as independent, signal- and event-driven services in a Software Defined Vehicle (Eclipse Open Vehicle-API).

This page gives you the big picture and helps you decide where to start, based on what you want to do next.

What problem does VAPI solve?#

Modern Software Defined Vehicle (Eclipse Open Vehicle-API) systems require vehicle functionality to be designed and evolved differently than in traditional ECU-centric architectures.

Requirements of modern Eclipse Open Vehicle-API systems

Vehicle functionality must be:

How VAPI addresses these requirements

VAPI structures vehicle functionality as services with a clear separation of concerns:

How to use this documentation#

The documentation follows a progressive flow:

  1. Overview — what VAPI is and how to navigate the docs (you are here)

  2. Concepts — how VAPI thinks and why it is structured this way

  3. Run — see the concepts working in a minimal example

  4. Build — implement your own vehicle services

You do not need to read everything at once. Choose the path that matches your goal.

Choose your entry point#

🧠 Learn the concepts

Understand how VAPI thinks before writing code: services, devices, signals, events and runtime lifecycle.

This is the conceptual bridge between overview and development.

Learn the concepts
🚀 Get something running

Run a minimal example to see how configuration, services and runtime execution work together.

Run your first example
🧱 Build services

Design and implement your own vehicle services: Vehicle Devices, Basic Services and Complex Services.

Build services
🔬 Advanced & reference

Simulation, tooling, integration topics and generated reference material.

Advanced & reference

How everything fits together#

At a high level, VAPI works as follows:

  • Vehicle Devices abstract hardware or simulation

  • Basic Services implement atomic vehicle logic

  • Complex Services orchestrate multiple services

  • Signals represent state, events represent change

  • Configuration (IDL / TOML) defines structure and wiring

  • Runtime execution processes events and dispatches data

VAPI enforces a clear lifecycle: configuration happens before any service logic is executed. This enables deterministic startup, simulation-first workflows and clean separation of concerns.

All of these concepts are explained step by step in Learn the concepts.

Typical next steps#

Depending on your goal, continue with one of the following:

  • New to VAPI → Start with Learn the concepts Learn the mental model before touching code.

  • Want quick feedback → Go to Run your first example Run an example and observe runtime behavior.

  • Ready to build → Jump to Build services Implement your own vehicle functionality.

Project scope#

Open Vehicle API (VAPI) is part of the shift2sdv initiative and is designed to be used, explored and adopted by Eclipse Open Vehicle-API teams building service-based vehicle functionality.

The framework evolves through real usage and feedback, and the documentation is structured to support both quick onboarding and deeper architectural understanding.