Registering webhook via API without using SmartApp

I want to host my own application on public IP and i shall expose an API for recieving any events (device/hub/smarthingcloud) from smarthing platform.

Is there a way i can do this without creating/integrating a SmartApp into my application?
I did not find any API for webhook registeration from API docs?

Please let me know if this is possible or not?

Welcome to the SmartThings Community, @prakash!

If I’m understanding correctly based on your description. Do you want to create subscriptions without creating a SmartApp?
A SmartApp’s token is capable of creating subscriptions which is something a Personal Access Token can’t do. You also need an installedAppId as specified in the API reference > API | SmartThings Developers

To be able to install it, you need to see the SmartApp the ST app’s catalog, for this, you must register it in the Developer Workspace and deploy it to test.

@nayelyz thanks for the quick reply.
What i want to do is:
I have my own server for monitoring/controlling my IoT devices. I want smarthing devices to be included to my server, receive events and control smarthing devices. All this from my server.

All I have is smarthing account credentials, now without manual intervention how to achieve my requirements? Is there a way?

Sorry for the delay.

As I mentioned, subscriptions can only be created by an installedApp instance which can be done with a SmartApp, so, you can add the corresponding endpoints to your current server for the SmartThings requests and handle them accordingly.

For example, in this sample to create a SmartApp, the POST requests from ST are received directly in the project’s root (/). You still need to register the SmartApp and install it in your account.

If you have an organization, you could submit a request to access OAuth integrations: OAuth Integrations | SmartThings Developers

Hello @nayelyz,

Just to set the context, i have my own cloud platform for IoT devices with N users.
I wanted to integrate devices from ST platform to my cloud platform. Do you support this usecase? How?

I did experiment with smartApp by creating an ST account and registering the app. I was able to get events via webhook url.
Suppose if there are 10 users each with 5 devices on ST, in order to integrate these devices on my cloud platform what shall i do?
Install smartApp (10 times for each user) in order to get events for their devices?
Is there any other way that i can try? Appreciate your suggestions?

You cannot install SmartApps in the name of users, they would need to register it in the Dev Workspace and install it.
The other way is OAuth integration as I mentioned above but you need to be part of an organization and your request will be evaluated internally.

You can control devices using their Personal Access Token (for example, send commands, see their current status and details) but you won’t be able to create subscriptions to them.

Thanks for the reply.
With smarthings cli, i was able to install smartApp for an user using PAT.

Can you answer this question please:
I wanted to integrate devices from ST platform to my cloud platform. Do you support this usecase? How to do it?

Can you provide more details about this, please? What do you mean by integrate? Connect directly, control devices already installed on the ST side?

This is strange, people mentioned they were able to create an app using this endpoint: app > createApp, but you cannot deploy it to test using the API for the user to select his devices available from that SmartApp because you need an installedAppId to create the subscription.