Your best bet is the official documentation for sure.
- https://help.autodesk.com/view/MAYAUL/2020/ENU/?guid=__py_ref_namespace_open_maya_html
Along with the examples of plug-ins written using it, it's the same workflow whether it's in a plug-in or Script Editor.
- https://help.autodesk.com/view/MAYAUL/2020/ENU/?guid=__py_ref_scripted_2sine_node_8py_example_html
Those are all for maya.api.OpenMaya, i.e. Maya Python API 2.0. For anything related to maya.OpenMaya, i.e. Python API 1.0, the C++ examples are the closest equivalent. Apart from a few syntax changes, like :: in place of ., the workflow is 99% the same. The remaining 1% is when dealing with pointers, for which you can find a comprehensive walkthrough right here.
- https://help.autodesk.com/view/MAYAUL/2020/ENU/?guid=__developer_Maya_SDK_MERGED_Maya_API_introducti...
And then, once you start using the API you'll notice that it doesn't support undo and is far from as friendly as PyMEL. Which is why I made this.
- https://github.com/mottosso/cmdx
And finally, once you start running into missing parts of API 1.0 and 2.0 - of which there are many - and can no longer live with the incredibly easy-to-get-but-hard-to-debug errors you get from those API's - especially 1.0 - I would invite you to help get this project off the ground.
- https://github.com/mottosso/cmdc
That should have you covered. Hope it helps! 🙂