internal update api