Raises APIException if source is not passed in