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 (SDV).
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 (SDV) systems require vehicle functionality to be designed and evolved differently than in traditional ECU-centric architectures.
Vehicle functionality must be:
Modular → independent building blocks that can evolve separately
Testable in simulation → logic must run without physical hardware
Decoupled from hardware and deployment → behavior should not depend on where or how it is deployed
Composable into higher‑level vehicle behavior → simple features combined into complete vehicle functions
VAPI structures vehicle functionality as services with a clear separation of concerns:
Hardware abstraction → handled by Vehicle Devices
Business logic → implemented in Basic and Complex Services
(see Components & Services)
Configuration → structure and wiring defined via IDL and TOML
(see A view under the hood)
Runtime execution → event‑ and signal‑driven processing with explicit lifecycle
How to use this documentation#
The documentation follows a progressive flow:
Overview — what VAPI is and how to navigate the docs (you are here)
Concepts — how VAPI thinks and why it is structured this way
Run — see the concepts working in a minimal example
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#
Understand how VAPI thinks before writing code: services, devices, signals, events and runtime lifecycle.
This is the conceptual bridge between overview and development.
Run a minimal example to see how configuration, services and runtime execution work together.
Design and implement your own vehicle services: Vehicle Devices, Basic Services and Complex Services.
Simulation, tooling, integration topics and generated reference material.
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 SDV 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.