I do something similar, and I just use a scheduled task that runs nightly.
The task just calls a stored proc on another database, it finds any products that already exist and updates them with any new information. If any products don't exist, it creates the SKU, and the Page and assigns the sku to the page.
var skuToUpdate = SKUInfoProvider.GetSKUs()
.Where("SKUNumber", QueryOperator.Equals, ValidationHelper.GetInteger(product["Item_Number"],0)).FirstOrDefault();
if (skuToUpdate != null)
{
//Update
}
else
{
//Create new sku
}
Any that are no longer coming over from the stored proc get disabled. I send an email at the end with any new Products that were created to have the additional information added. If you are using tax classes, make sure you add the products to the tax class when you create it.
This should give you most of the API calls needed to do everything: