One of the primary reasons people use OpenStack is because it provides a suite of REST APIs to manage everything. It's very common for people to never interact with the web ui at all.
Absolutely any action that you accomplish using the web interface (or the command line tools) is implemented use the REST APIs.
User and project management is handled through the Identity API. You can find complete API documentation here:
There are Python SDKs available for most of the services. The openstacksdk module provides a high level interface to many common OpenStack services.
Using the openstacksdk, creating a user might look like:
>>> import openstack
>>> cloud = openstack.connect(cloud='mycloud')
>>> user = cloud.create_user('example-user', domain_id='default')
(This example assumes you have a cloud named mycloud defined your clouds.yaml file).