APIs for login, version management and metadata storage

I think APIs of exposing the version management, metadata management and login management would be great.

I have been working on creating a wrapper application where a user can log in using NextCloud credentials on my app. Perform operations such as view, upload, download, delete, etc on the file. Thanks to the Webdav support, I have been successful in doing that.
I have certain data related to the files, that I would like to store in the metadata. And also get the available versions of the file available and probably restore one of the previous versions.

The APIs

It would be great if we had certain APIs for login, like, we could enter the credentials once get a token, and use the token for subsequent requests.
For versions, we could have an API to get all the versions with some version indices and an API to restore to one of the previous version of our choice.
And also an API for writing metadata, like giving the file name and the metadata as key-value pairs and writing it with the file.

I have already tried the following

For login, I see that some APIs have been provided but I haven’t been able to use them. I see that there is an option of getting an app password, but I am not able to run that query and also I do not understand how I will be able to use the app password once I get it.
For versions, I have tried to make use of getVersions API that NextCloud uses internally, but again, I was not able to authenticate it.

Please guide me through it

I am extremely new to using NextCloud. Probably that’s why I am facing issues with it. I understand that the query I have raised might already have an existing solution. If so please guide me through it.