How to create Merge Request via GitLab API?

We are using a tool for release management. We have the ability to create branches and merge branches. All of this information (Branch creation and commits) is sent to GitLab using GitLab apis. Now we also want mimic the merges we are doing in Our tool in GitLab as well. (Currently the tool just pushes the branch merge as a commit, so we are not able to maintain the history in Git.) Is there a way to create Merge Requests in GitLab via GitLab API? I also want to approve the Merge request and able to merge it via API. Please advise.