Iterate an API call for until the end is found

I have an API where it returns limited results of data
the limit value cannot be greater than 1000

> https://api.source.com?start=0&limit=1000 //first call
> https://api.source.com?start=1001&limit=1000 //second call
> https://api.source.com?start=2001&limit=1000 //third call
> https://api.source.com?start=3001&limit=1000 //fourth call

{
  "success": true,
  "message": "Verticals Returned",
  "response": {
    "start": 0,
    "limit": 1000,
    "returned": 1000,
    "total": 3230,
    "data": [
      {
        "verticalID": 3,
        "verticalName": "Galaxies",
        "status": "Active",
        "groupID": 1,
        "createdOn": "2022-03-15 05:30:06",
        "groupName": "Solar",
        "totalOffers": 0
      }
    ]
  }
}

How do it iterate this using a loop? while or any other loop is also fine.

I have tried with

limit =1000
start = 0;
total = undefined;
for(i=start;;i+=returned)
{
    y = call("https://api.source.com?start="+start+"&limit="+limit)
    total = y.total
    start = y.start
    returned = y.returned
}