add API interface and key authentication