I'm not sure why you would want to make an HTTP.POST call to the SOAP API to achieve this.
If you use the platform API functions available in SSJS (or AMPscript), that will take care of authentication and also resolve the correct Web Service endpoint.
Here's how you would create a Sendable DE using platform API functions in SSJS:
<script runat="server">
Platform.Load("Core","1");
var de = Platform.Function.CreateObject("DataExtension");
Platform.Function.SetObjectProperty(de, "Name", "My Sendable DE");
Platform.Function.SetObjectProperty(de, "Description", "A DE created via SSJS");
Platform.Function.SetObjectProperty(de, "IsSendable", "true");
Platform.Function.SetObjectProperty(de, "IsTestable", "false");
var deFields = Platform.Function.CreateObject("DataExtensionField");
Platform.Function.SetObjectProperty(deFields, "FieldType", "Text");
Platform.Function.SetObjectProperty(deFields, "Name", "Id");
Platform.Function.SetObjectProperty(deFields, "MaxLength", 18);
Platform.Function.SetObjectProperty(deFields, "IsPrimaryKey", "true");
Platform.Function.SetObjectProperty(deFields, "IsNillable", "false");
Platform.Function.SetObjectProperty(deFields, "IsRequired", "true");
Platform.Function.AddObjectArrayItem(de, "Fields", deFields);
Platform.Function.SetObjectProperty(de,"SendableDataExtensionField",deFields)
var deFields = Platform.Function.CreateObject("DataExtensionField");
Platform.Function.SetObjectProperty(deFields, "FieldType", "Text");
Platform.Function.SetObjectProperty(deFields, "Name", "Name");
Platform.Function.SetObjectProperty(deFields, "MaxLength", 50);
Platform.Function.AddObjectArrayItem(de, "Fields", deFields);
var deFields = Platform.Function.CreateObject("DataExtensionField");
Platform.Function.SetObjectProperty(deFields, "FieldType", "EmailAddress");
Platform.Function.SetObjectProperty(deFields, "Name", "Email Address");
Platform.Function.SetObjectProperty(deFields, "IsNillable", "false");
Platform.Function.SetObjectProperty(deFields, "IsRequired", "true");
Platform.Function.AddObjectArrayItem(de, "Fields", deFields);
var subscriberAttr = Platform.Function.CreateObject("Attribute");
Platform.Function.SetObjectProperty(subscriberAttr, "Name", "Subscriber Key");
Platform.Function.SetObjectProperty(subscriberAttr, "Value", "Id");
Platform.Function.SetObjectProperty(de, "SendableSubscriberField", subscriberAttr);
var statusAndRequestID = [0,0];
var statMsg = Platform.Function.InvokeCreate(de, StatusAndRequestID, null);
Platform.Response.Write('status message: ' + statMsg);
</script>
In the above example, I've created the Subscriber relationship based on Subscriber Key = the Id field in my DE. However you could change this relationship to be based on email address by changing the following lines:
Platform.Function.SetObjectProperty(subscriberAttr, "Name", "Subscriber Key");
Platform.Function.SetObjectProperty(subscriberAttr, "Value", "Id");
To:
Platform.Function.SetObjectProperty(subscriberAttr, "Name", "Email Address");
Platform.Function.SetObjectProperty(subscriberAttr, "Value", "Email Address");
Best Answer
There is not a single option for this. Even the overwrite function inside of SQL is not truly a single operation. It is actually using 2 different operations behind the UI 'curtain'.
To do it via the API, you will first need to run a Delete Method on your DE (sample from SFMC Docs). You then will do an ADD Method on your DE to insert the new records (sample from SFMC Docs).
EDIT
Thanks to @SamWhitmore, there is an easier way than utilizing the DELETE METHOD, by Performing a Clear to the whole DE at once - similar to what is done via the UI. (https://developer.salesforce.com/docs/atlas.en-us.noversion.mc-apis.meta/mc-apis/clearing_data_from_a_data_extension.htm)
You can also do this via AMPScript if you add a 'reference column' to your DEs - I usually insert a column named 'Secret' and set it to a value of 1. This way you can always lookup or interact with all your columns by setting the 'WHERE' statement to Secret = 1.
You would then use the DeleteDE() and InsertDE() functions to 'Overwrite'.
This can also be done via SSJS the same way.