returning empty array for no results, raising ArgumentError when no API key supplied