This is the documentation for the latest (main) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

API Overview

The table lists Zephyr’s APIs and information about them, including their current stability level. More details about API changes between major releases are available in the Releases.

The version column uses semantic version, and has the following expectations:

  • Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.

    • If minor version is up to one (0.1.z), API is considered experimental.

    • If minor version is larger than one (0.y.z | y > 1), API is considered unstable.

  • Version 1.0.0 defines the public API. The way in which the version number is incremented after this release is dependent on this public API and how it changes.

    • APIs with major versions equal or larger than one (x.y.z | x >= 1 ) are considered stable.

    • All existing stable APIs in Zephyr will be start with version 1.0.0.

  • Patch version Z (x.y.Z | x > 0) MUST be incremented if only backwards compatible bug fixes are introduced. A bug fix is defined as an internal change that fixes incorrect behavior.

  • Minor version Y (x.Y.z | x > 0) MUST be incremented if new, backwards compatible functionality is introduced to the public API. It MUST be incremented if any public API functionality is marked as deprecated. It MAY be incremented if substantial new functionality or improvements are introduced within the private code. It MAY include patch level changes. Patch version MUST be reset to 0 when minor version is incremented.

  • Major version X (x.Y.z | x > 0) MUST be incremented if a compatibility breaking change was made to the API.

Note

Version for existing APIs are initially set based on the current state of the APIs:

Changes to APIs in the future will require adapting the version following the guidelines above.

API Version Available in Zephyr Since
Audio
      Audio Codec Interface 0.1.0 v1.13.0
      Digital Microphone Interface 0.1.0 v1.13.0
Bindesc Define
Connectivity
      Bluetooth APIs
            AUDIO
            Attribute Protocol (ATT)
            Audio Input Control Service (AICS)
            Battery Service (BAS)
            Bluetooth Audio
                  Codec capability parsing APIs
                  Codec config parsing APIs
            Bluetooth Basic Audio Profile
                  BAP Broadcast APIs
                        BAP Broadcast Sink APIs
                        BAP Broadcast Source APIs
                  BAP Broadcast Sink APIs
                  BAP Broadcast Source APIs
                  BAP Unicast Client APIs
                  BAP Unicast Server APIs
            Bluetooth Controller
            Bluetooth Gaming Audio Profile
            Bluetooth Mesh
                  Access layer
                  Bluetooth Mesh BLOB Transfer Client model API
                  Bluetooth Mesh BLOB Transfer Server model API
                  Bluetooth Mesh BLOB flash stream
                  Bluetooth Mesh BLOB model API
                  Bluetooth Mesh Device Firmware Update
                        Bluetooth Mesh Device Firmware Update (DFU) metadata
                        Firmware Update Server model
                        Firmware Uppdate Client model
                  Bluetooth Mesh On-Demand Private GATT Proxy Client
                  Bluetooth Mesh On-Demand Private GATT Proxy Server
                  Bluetooth Mesh Private Beacon Client
                  Bluetooth Mesh Private Beacon Server
                  Bluetooth Mesh SAR Configuration Client Model
                  Bluetooth Mesh SAR Configuration Server Model
                  Bluetooth Mesh Solicitation PDU RPL Client
                  Bluetooth Mesh Solicitation PDU RPL Server
                  Configuration Client Model
                  Configuration Server Model
                  Firmware Distribution models
                        Firmware Distribution Server model
                  Health Client Model
                  Health Server Model
                  Health faults
                  Heartbeat
                  Large Composition Data Client model
                  Large Composition Data Server model
                  Message
                  Opcodes Aggregator Client model
                  Opcodes Aggregator Server model
                  Provisioning
                  Proxy
                  Remote Provisioning Client model
                  Remote Provisioning models
                  Remote provisioning server
                  Runtime Configuration
                        Application Configuration
                        Subnet Configuration
                  SAR Configuration common header
                  Statistic
            Bluetooth testing callbacks
            Byteorder
            Common Audio Profile (CAP)
            Connection management
            Coordinated Set Identification Profile (CSIP)
            Cryptography
            Data buffers
            Device Address
            Encrypted Advertising Data (EAD)
            Generic Access Profile (GAP) 1.0.0 v1.0.0
                  Defines and Assigned Numbers
            Generic Attribute Profile (GATT)
                  GATT Client APIs
                  GATT Server APIs
            HCI RAW channel
            HCI drivers
            Hands Free Profile (HFP)
            Hearing Access Service (HAS)
            Heart Rate Service (HRS)
            Immediate Alert Service (IAS)
            Isochronous channels (ISO)
            L2CAP
            Media Control Client (MCC)
            Media Control Service (MCS)
            Media Proxy
            Microphone Control Profile (MICP)
            Object Transfer Service (OTS)
            Public Broadcast Profile (PBP)
            RFCOMM
            Service Discovery Protocol (SDP)
            UUIDs
            Volume Control Profile (VCP)
            Volume Offset Control Service (VOCS)
      CAN ISO-TP Protocol
      IEEE 802.15.4 and Thread APIs 0.8.0 v1.0.0
            IEEE 802.15.4 Drivers 0.8.0 v1.0.0
            IEEE 802.15.4 L2 0.8.0 v1.0.0
            IEEE 802.15.4 Net Management 0.8.0 v1.0.0
            OpenThread L2 abstraction layer
      LoRaWAN APIs 0.1.0 v2.5.0
      Networking 1.0.0 v1.0.0
            Application network context
            BSD Sockets compatible API
                  Socket options for TLS
            BSD socket service API
            COAP Library 0.8.0 v1.10.0
            CoAP Manager Events
            CoAP client API
            CoAP service API
            Connection Manager API
            Connection Manager Connectivity API 0.1.0 v3.4.0
            Connection Manager Connectivity Bulk API
            Connection Manager Connectivity Implementation API
            DHCPv4
            DHCPv4 server
            DHCPv6
            DNS Resolve Library
            DNS Service Discovery
            Distributed Switch Architecture definitions and helpers
            Dummy L2/driver Support Functions
            Ethernet Bridging API
            Ethernet Library
            Ethernet PHY Interface
            Ethernet Support Functions
                  Ethernet MII Support Functions
                  IEEE 802.3 management interface
            HTTP client API
            HTTP request methods
            HTTP response status codes
            IGMP API
            IPv4/IPv6 primitives and helpers
            Link Layer Discovery Protocol definitions and helpers
            LwM2M high-level API 0.8.0 v1.9.0
                  LwM2M path helper macros
            MQTT Client library 0.8.0 v1.14.0
            MQTT-SN Client library
            Network Buffer Library
            Network Configuration Library
            Network Core Library
            Network Core Library
            Network Core Library
            Network Hostname Library
            Network Interface abstraction layer
            Network L2 Abstraction Layer
            Network Link Address Library
            Network Management
            Network Offloading Interface
            Network Packet Filter API
                  Basic Filter Conditions
                  Ethernet Filter Conditions
            Network Packet Library
            Network Statistics Library
            Network long timeout primitives and helpers
            Network packet capture
            Network time representation.
            Offloaded Net Devices
            PPP L2/driver Support Functions
            PTP time
            Promiscuous mode
            SNTP
            Send and receive IPv4 or IPv6 ICMP Echo Request messages.
            TFTP Client library
            TLS credentials management
            Trickle Algorithm Library
            Virtual Interface Library
            Virtual LAN definitions and helpers
            Virtual Network Interface Support Functions
            Websocket API
            Wi-Fi Management
            Wi-Fi Network Manager API
            Zperf API
            gPTP support
      USB
            USB BOS support
            USB HID class API
                  HID class USB specific definitions
            USB HID common definitions
                  Mouse and keyboard report descriptors
                  USB HID Item helpers
            USB Host Core API
            USB device core API
            USB device core API
DSP Interface 0.1.0 v3.3.0
      Basic Math Functions
            Vector Absolute Value
            Vector Addition
            Vector Clipping
            Vector Dot Product
            Vector Multiplication
            Vector Negate
            Vector Offset
            Vector Scale
            Vector Shift
            Vector Subtraction
            Vector bitwise AND
            Vector bitwise NOT
            Vector bitwise OR
            Vector bitwise XOR
      Helper macros for printing Q values.
Device Driver APIs
      1-Wire Interface 0.1.0 v3.2.0
            1-Wire Sensor API
            1-Wire data link layer
            1-Wire network layer
      ADC driver APIs 1.0.0 v1.0.0
            Emulated ADC
      Analog axis API
      BBRAM Interface
      BBRAM emulator backend API
      BC1.2 backed emulator APIs
      BC1.2 driver APIs
      CAN Interface 1.1.0 v1.12.0
      CAN Transceiver 0.1.0 v3.1.0
      Cache Controller Interface
      Cellular Interface
      Charger Interface
      Clock Control Interface 1.0.0 v1.0.0
            LiteX Clock Control driver interface
      Coredump pseudo-device driver APIs
      Counter Interface 0.8.0 v1.14.0
      DAC driver APIs 0.8.0 v2.3.0
      DAI Interface 0.1.0 v3.1.0
      DMA Interface 1.0.0 v1.5.0
      Disk Driver Interface 1.0.0 v1.6.0
      Display Interface 0.8.0 v1.14.0
            LCD Interface
      EC Host Command Interface 0.1.0 v2.4.0
      EDAC API 0.8.0 v2.5.0
      EEPROM Interface 1.0.0 v2.1.0
      ESPI Driver APIs
      Entropy Interface 1.0.0 v1.10.0
      External Cache Controller Interface
      FLASH Interface 1.0.0 v1.2.0
      FLASH internal Interface
      Fuel Gauge Interface 0.1.0 v3.3.0
      Fuel gauge backend emulator APIs
      GNSS Interface 0.1.0 v3.6.0
      GPIO Driver APIs 1.0.0 v1.0.0
            Emulated GPIO
            nPM1300-specific GPIO Flags
            nPM6001-specific GPIO Flags
            nRF-specific GPIO Flags
      HW spinlock Interface
      Hardware Info Interface 1.0.0 v1.14.0
      I2C EEPROM Target Driver API 1.0.0 v1.13.0
      I2C Interface 1.0.0 v1.0.0
      I2S Interface 1.0.0 v1.9.0
      I3C Interface 0.1.0 v3.2.0
            I3C Address-related Helper Code
            I3C Common Command Codes
            I3C Devicetree related bits
            I3C In-Band Interrupts
            I3C Target Device API
            I3C Transfer API
      IPM Interface 1.0.0 v1.0.0
      Input Interface 0.1.0 v3.4.0
            Input Event Definitions
      Inter-VM Shared Memory (ivshmem) reference API
      Keyboard Matrix API
      Keyboard Scan Driver APIs 1.0.0 v2.1.0
      LED Interface 1.0.0 v1.12.0
      LED Strip Interface
      LoRa APIs 0.1.0 v2.2.0
      MBOX Interface 0.1.0 v1.0.0
      MDIO Interface
      MIPI Display interface
      MIPI-DBI driver APIs 0.1.0 v3.6.0
      MIPI-DSI driver APIs 0.1.0 v3.1.0
      MODBUS
      Miscellaneous Drivers APIs
            Devmux Driver APIs
            FT8xx driver APIs
                  FT8xx co-processor
                  FT8xx common functions
                  FT8xx display list
                  FT8xx memory map
                  FT8xx reference API
      Multi Function Device Drivers APIs
            MFD AD559X interface
            MFD AXP192 interface
            MFD BD8LB600FS interface
            MFD NPM1300 Interface
      PCI Express Controller Interface
      PCIe Host Interface
            PCIe Capabilities
            PCIe Host MSI Interface
            PCIe Host PTM Interface
            PCIe Virtual Channel Host Interface
      PECI Interface 1.0.0 v2.1.0
      PS/2 Driver APIs
      PWM Interface 1.0.0 v1.0.0
      Pin Controller Interface 0.1.0 v3.0.0
            Dynamic Pin Control
      RTC DS3231 Interface
      RTC Interface 0.1.0 v3.4.0
      Regulator Interface 0.1.0 v2.4.0
            ADP5360 Devicetree helpers.
            AXP192 Devicetree helpers.
            Devicetree helpers
            MAX20335 Devicetree helpers.
            NPM1100 Devicetree helpers.
            NPM1300 Devicetree helpers.
            NPM6001 Devicetree helpers.
            Regulator Parent Interface
                  PCA9420 Utilities.
      Reset Controller Interface 0.1.0 v3.1.0
      Retained memory driver interface 0.8.0 v3.4.0
      SDHC interface 0.1.0 v3.1.0
      SMBus Interface 0.1.0 v3.4.0
      SPI Interface 1.0.0 v1.0.0
      SYSCON Interface
      Sensor Interface 1.0.0 v1.2.0
      Sensor emulator backend API
      Text Display Interface 0.1.0 v3.4.0
      Time-aware GPIO Interface 0.1.0 v3.5.0
      UART Interface 1.0.0 v1.0.0
            Async UART API 0.8.0 v1.14.0
            Interrupt-driven UART API
            Polling UART API
      UART Mux Interface
      USB Power Delivery
      USB Type-C
      USB Type-C Port Controller API 0.1.0 v3.1.0
      USB device controller driver API
      USB host controller driver API
      USB-C VBUS API 0.1.0 v3.3.0
      Video Controls
      Video Interface 1.0.0 v2.1.0
            Video pixel formats
      Watchdog Interface 1.0.0 v1.0.0
Device Model 1.0.0 v1.0.0
      Device memory-mapped IO management
            Named MMIO region macros
            Single MMIO region macros
            Top-level MMIO region macros
Devicetree 1.0.0 v2.2.0
      “For-each” macros
      Bus helpers
      Chosen nodes
      Dependency tracking
      Devicetree CAN API
      Devicetree Clocks API
      Devicetree DMA API
      Devicetree Fixed Partition API
      Devicetree GPIO API
      Devicetree IO Channels API
      Devicetree MBOX API
      Devicetree PWMs API
      Devicetree Reset Controller API
      Devicetree SPI API
      Existence checks
      Instance-based devicetree APIs
      Node identifiers and helpers
      Pin control
      Property accessors
      Vendor and model name helpers
      interrupts property
      ranges property
      reg property
Error numbers
Internal and System API
      Architecture Interface
            Architecture thread APIs
            Architecture timing APIs
            Architecture-specific IRQ APIs
            Architecture-specific SMP APIs
            Architecture-specific Thread Local Storage APIs
            Architecture-specific core dump APIs
            Architecture-specific gdbstub APIs
            Architecture-specific memory-mapping APIs
            Architecture-specific power management APIs
            Architecture-specific userspace APIs
            Miscellaneous architecture APIs
      Kernel Memory Management Internal APIs
      User Mode Internal APIs
      User mode and Syscall APIs
Kernel APIs 1.0.0 v1.0.0
      Async polling APIs
      Asynchronous Notification APIs
      Atomic Services APIs
      Barrier Services APIs 0.1.0 v3.4.0
      CPU Idling APIs
      Condition Variables APIs
      Event APIs
      FIFO APIs
      FUTEX APIs
      Fatal error APIs
            Fatal error base types
      Floating Point APIs
      Heap APIs
      Interrupt Service Routine APIs
      Kernel Memory Management
            Demand Paging
                  Backing Store APIs
                  Demand Paging APIs
                  Eviction Algorithm APIs
      LIFO APIs
      Mailbox APIs
      Memory Slab APIs
      Memory domain APIs
            Application memory domain APIs
      Message Queue APIs
      Mutex APIs
      Object Core APIs
      Object Core Statistics APIs
      On-Off Service APIs
      Pipe APIs
      Queue APIs
      Semaphore APIs
      Spinlock APIs
      Stack APIs
      System Clock APIs
      Thread APIs
      Thread Stack APIs
      Timer APIs
      User Mode APIs
      User mode mutex APIs
      User mode semaphore APIs
      Version APIs
      Work Queue APIs
Memory heaps based on memory attributes
Memory-Attr Interface
Modem APIs 0.1.0 v3.5.0
      Modem CMUX
      Modem PPP
      Modem Pipe
      Modem Ubx
Operating System Services
      Cache Interface
      Checksum
            CRC
      Console API
      Coredump APIs
      Crypto 1.0.0 v1.7.0
            Cipher
            Hash
            Random Function APIs 1.0.0 v1.0.0
      File System APIs 1.0.0 v1.5.0
      File System Storage
            Flash Circular Buffer (FCB) 1.0.0 v1.11.0
                  Flash Circular Buffer Data Structures
                  fcb API
                  fcb non-API prototypes
            Non-volatile Storage (NVS) 1.0.0 v1.12.0
                  Non-volatile Storage APIs
                  Non-volatile Storage Data Structures
            Settings 1.0.0 v1.12.0
                  Settings backend interface
                  Settings name processing
                  Settings subsystem runtime
      Flash image API
      Heap Management
            Heap Listener APIs
            Shared multi-heap interface
      IPC
            IPC service APIs
            IPC service RPMsg API
            IPC service backend
            IPC service static VRINGs API
            Icmsg IPC library API
            Icmsg multi-endpoint IPC library API
            Packed Buffer API
            RPMsg service APIs
      Iterable Sections APIs
      Linkable loadable extensions 0.1.0 v3.5.0
            ELF data types and defines
            LLEXT symbols
            Linkable loadable extensions buffer loader
            Loader context for llext
      Logging 1.0.0 v1.13.0
            Logger system v1.13.0
                  Log link API
                  Log message API
                  Log output API
                        Log output formatting flags.
                  Logger backend interface
                        Logger multidomain backend helpers
                  Logger backend standard interface
                  Logger control API v1.13.0
                  Logging API
      MCUmgr
            MCUmgr callback API
                  MCUmgr fs_mgmt callback API
                  MCUmgr img_mgmt callback API
                  MCUmgr os_mgmt callback API
                  MCUmgr settings_mgmt callback API
            MCUmgr handler API
            MCUmgr img_mgmt API
            MCUmgr img_mgmt_client API
            MCUmgr mgmt API 1.0.0 v1.11.0
            MCUmgr os_mgmt_client API
            MCUmgr transport SMP API
            SMP client API
      Memory Management
            Memory Banks Driver APIs
            Memory Blocks APIs
            Memory Management Driver APIs
      Power Management (PM) v1.2.0
            CPU Power Management
            Device
            Device Runtime
            S2RAM APIs
            States
            System v1.2.0
                  Hooks
                  Policy
      RTIO 0.1.0 v3.2.0
            RTIO CQE Flags
            RTIO MPSC API
            RTIO Priorities
            RTIO SPSC API
            RTIO SQE Flags
      Retention API 0.1.0 v3.4.0
            Boot mode interface
            Bootloader info interface 0.1.0 v3.5.0
      Semihosting APIs
      Shell API 1.0.0 v1.14.0
      State Machine Framework API
      Storage APIs
            Disk Access Interface
            Stream to flash interface 0.1.0 v2.3.0
            flash area Interface 1.0.0 v1.11.0
      System Initialization
      System power off
      Task Watchdog APIs 0.8.0 v2.5.0
      Thread analyzer
      Timing Measurement APIs
            Arch specific Timing Measurement APIs
            Board specific Timing Measurement APIs
            SoC specific Timing Measurement APIs
      Tracing
            Object tracking
            Tracing APIs
                  Conditional Variable Tracing APIs
                  Event Tracing APIs
                  FIFO Tracing APIs
                  Heap Tracing APIs
                  LIFO Tracing APIs
                  Mailbox Tracing APIs
                  Memory Slab Tracing APIs
                  Message Queue Tracing APIs
                  Mutex Tracing APIs
                  PM Device Runtime Tracing APIs
                  Pipe Tracing APIs
                  Poll Tracing APIs
                  Queue Tracing APIs
                  Semaphore Tracing APIs
                  Stack Tracing APIs
                  Syscall Tracing APIs
                  System PM Tracing APIs
                  Thread Tracing APIs
                  Timer Tracing APIs
                  Work Delayable Tracing APIs
                  Work Poll Tracing APIs
                  Work Queue Tracing APIs
                  Work Tracing APIs
            Tracing format APIs
            Tracing utility macros
      Zbus APIs
Sensing
      Data Types
      Sensing Sensor API
            Sensor Callbacks
      Sensing Subsystem API
      Sensor Types
Testing
      Emulator interface
            I2C Emulation Interface
            SPI Emulation Interface
            eSPI Emulation Interface
      FFF extensions
      Zephyr Testing Framework (ZTest)
            Ztest assertion macros
            Ztest assumption macros
            Ztest expectation macros
            Ztest mocking support
            Ztest testing macros
            Ztest ztress macros
Third-party
      BBC micro:bit display APIs
      Grove display APIs
      MCUboot image control API
      UpdateHub Firmware Over-the-Air
      hawkBit Firmware Over-the-Air
USB Device Controller API
USB Device Core API
USB-C Device API 0.1.0 v3.3.0
      Sink_callbacks
      Source_callbacks
Utilities
      Base64
      Data Structure APIs
            Balanced Red/Black Tree
            Bit array
            Doubly-linked list
            Flagged Single-linked list
            Hashmap
                  Hash Functions
                  Hashmap Implementations
            MPSC (Multi producer, single consumer) packet buffer API
                  MPSC (Multi producer, single consumer) packet header
                  MPSC packet buffer flags
            Ring Buffer APIs
            SPSC (Single producer, single consumer) packet buffer API
                  SPSC packet buffer flags
            Single-linked list
      Formatted Output APIs
            Package convert flags
            Package flags
            cbvprintf processing flags.
      JSON
            JSON Web Token (JWT)
      Linear Range
      Math extras
      Monochrome Character Framebuffer
      Navigation
      Time Utility APIs
            Time Representation APIs
            Time Synchronization APIs
            Time Units Helpers
      Utility Functions 0.1.0 v2.4.0
Xtensa APIs
      Xtensa Internal APIs
      Xtensa Memory Management Unit (MMU) APIs
      Xtensa Memory Protection Unit (MPU) APIs