Every time you make an inter-canister call back to an API on your canister, it makes a state commit point in your canister and resets the instruction limit (at least it does this in Motoko, pretty sure this works for any canister).
Pretty sure instruction limits only apply for synchronous processing on your canister, and resets once you make an asynchronous request.
See this thread