support generate API