I'm using it on 12.5.1 and feeling your pain. Takes a little while to figure it out, but worth it. Hoping more support is added for say custom fields on clients.
I found this post really useful for powershell commands:
A c# example:
The API was a new feature in V11. It is certainly supported in 12.X
Here is the link for 12.2 documentation on the API.
Please note the link posted by the prior poster is for 12.1 there were some notable API changes in 12.2. There have been no notable API changes since then.