The code does look strange.
You get a single collection, by its ID.
Which will return a JSON representation of that collection.
What is the loop meant to be doing? I’m guessing you want to potentially loop through each request in the collection. The JSON representation of the collection will not be in the correct format for you to just pass it to pm.sendRequest. You will need to parse the response, target the loop at the correct element in the collection JSON, and then pull out the relevant data that is needed to make a request.
As Danny has mentioned, why can’t you just use the collection runner?