I have been able to create tables that conform to the CartoDB style by the following method:
Create empty table [table name], no columns via SQL API
SELECT CDB_Cartodbyfy([table name]) via SQL API
Insert [table name] and current time into CDB_TableMetadata
Add user columns and data via SQL API
I can even get the table to show up on the CartoDB tables dashboard, by creating an empty table and then renaming it to [table name]. However, what I really want is a way to make my programmatically-created tables appear on the dashboard without having to manually interact with the CartoDB web app.
I suspect I could make this happen by posting to the Imports API with table_name=[new table name]&table_copy=[table name]. However, using the table_copy parameter is forbidden, and I do not wish to violate that.
So, my question is this: Is there a way to accomplish what I want (programmatic registration of existing tables) without violating the rules of CartoDB's APIs?