# C++ API for Mender Client

**URL:** <https://hub.mender.io/t/c-api-for-mender-client/785>\
**Category:** General Discussions\
**Created:** [July 4, 2019, 7:33am UTC](https://hub.mender.io/t/c-api-for-mender-client/785 "2019-07-04T07:33:59Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![platisd](https://avatars.discourse-cdn.com/v4/letter/p/7ba0ec/32.png) [@platisd](https://hub.mender.io/u/platisd)\
**Post date:** [July 4, 2019, 7:33am UTC](https://hub.mender.io/t/c-api-for-mender-client/785/1 "2019-07-04T07:33:59Z")

</div>

Hi,

We are planning to use Mender for OTA updates in our product (it worked out-of-the-box with our Yocto-Sumo based board btw) and to integrate it nicely with our business logic, we want to use it in standalone mode and trigger updates via our daemon running in C++.

So I am wondering, is there a way to use the Mender client via native C++ calls? Is there some kind of API that is exposed so we are not forced to do system calls and parse their output somehow (since we will probably need to know the progress)?

My apologies if there was something obvious in the documentation somewhere, but a quick look has not revealed anything yet. Thanks!

---

<div class="post-metadata">

**Author:** ![mirzak](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/mirzak/32/2056_2.png) [@mirzak](https://hub.mender.io/u/mirzak)\
**Post date:** [July 4, 2019, 7:59am UTC](https://hub.mender.io/t/c-api-for-mender-client/785/2 "2019-07-04T07:59:38Z")

</div>

Hi @platisd,

> We are planning to use Mender for OTA updates in our product (it worked out-of-the-box with our Yocto-Sumo based board btw) and to integrate it nicely with our business logic, we want to use it in standalone mode and trigger updates via our daemon running in C++.

Glad it has worked out so far.

> So I am wondering, is there a way to use the Mender client via native C++ calls? Is there some kind of API that is exposed so we are not forced to do system calls and parse their output somehow (since we will probably need to know the progress)?

We do not provide an API on the client side, and the closest you can get is utilizing [state-scripts](https://docs.mender.io/2.0/artifacts/state-scripts), this way you can inform your application in which state the Mender client is in.

There was a similar discussion here,

> [@Mender 2.0 - How to get the update progress from standalone mender?](https://hub.mender.io/t/mender-2-0-how-to-get-the-update-progress-from-standalone-mender/768):
>
> Hi, I understood that, the mender have logs and we can pipe/grep the logs to get the required data. But, this is not something recommended to use in our project zipper_mouth_face Hence, I would like to know, how to get the update progress from mender client in standalone mode? Whether I can get the progress via a state script? Should I edit the mender client source to get the progress directly to a file (or some global variable which can pass the progress data to C application)? Apart from…

---

<div class="post-metadata">

**Author:** ![platisd](https://avatars.discourse-cdn.com/v4/letter/p/7ba0ec/32.png) [@platisd](https://hub.mender.io/u/platisd)\
**Post date:** [July 4, 2019, 8:14am UTC](https://hub.mender.io/t/c-api-for-mender-client/785/3 "2019-07-04T08:14:18Z")

</div>

Thanks for the quick response. Coincidentally, I was just reading the particular topic which pretty much answered my question. Good to know and thanks for the work you’re doing!
