Other spreadsheets solve this by updating references if you need to add more columns and rows (or at least they try). Is the additional complexity of the infinite grid something that customers actually need?
i = get(url).json()['index']
r = avar + offset
out = cell(r, i)
As to the question do customers need an infinite grid... I am asking myself the same question.