The API you're referencing is for the Snowpipe REST API. This API is supported and publicly documented, but I don't think it's what you want.
The Snowpipe REST API does not upload files. Instead, you can invoke it to inform Snowpipe that there are new files in an external stage ready for copying into a table. Something else needs to get the files uploaded to the external stage in S3, Azure Blob, or GCP.
As far as a general-purpose REST API, it's supported only for Snowflake and partner developers use and not publicly documented. The best method is to use one of the drivers or connectors (ODBC, JDBC, .NET driver, etc.) to upload files. If that doesn't work for you, you can put the files to an external stage using whatever supported method you like for that cloud host. You can then use the Snowpipe REST API to initiate the copy into the table or just use SQL and a warehouse to do the copy into the table.