SharePoint does provide a Rest API to upload files.
Example REST API Request:
POST /sites/your-site/_api/web/GetFolderByServerRelativeUrl('/sites/your-site/your-library')/Files/Add(url='your-file-name.zip', overwrite=true)
Host: your-sharepoint-site.sharepoint.com
Authorization: Bearer your-access-token
Content-Type: application/octet-stream
Content-Length: your-file-size
(binary content of your-file-name.zip)
Reference: