CoAP utils

The CoAP utils library is a simple module that enables communication with devices that support the CoAP protocol. It allows sending and receiving non-confirmable CoAP requests.


The library uses CoAP and BSD socket API.

After calling coap_init(), the library opens a socket for receiving UDP packets for IPv4 or IPv6 connections, depending on the ip_family parameter. At this point, you can start sending CoAP non-confirmable requests, to which you will receive answers depending on the server configuration.


Currently, the library only supports the User Datagram Protocol (UDP) protocol.


To enable the CoAP utils library, set the CONFIG_COAP_UTILS Kconfig option.

API documentation

Header file: include/net/coap_utils.h
Source files: subsys/net/lib/coap_utils/
group coap_utils


void coap_init(int ip_family, struct sockaddr *addr)

Open socket and start the receiving thread.

  • ip_family[in] Network IP protocol family (AF_INET or AF_INET6).

  • addr[in] Local address to bind for receiving data. Pass NULL pointer if no address is provided.

int coap_send_request(enum coap_method method, const struct sockaddr *addr, const char *const *uri_path_options, uint8_t *payload, uint16_t payload_size, coap_reply_t reply_cb)

Send CoAP non-confirmable request.

  • method[in] CoAP method type.

  • addr[in] pointer to socket address struct for IPv6.

  • uri_path_options[in] pointer to CoAP URI schemes option.

  • payload[in] pointer to the CoAP message payload.

  • payload_size[in] size of the CoAP message payload.

  • reply_cb[in] function to call when the response comes.

Return values:
  • >= – 0 On success.

  • < – 0 On failure.