The second link is the operation queue that URLSession calls back on when the request finishes. It’s pretty normal to use the main queue for that. Currently Coroutines are limited to the main thread in K/N so yes it will happen on the main thread. Many of the pure swift/ObjC apps I’ve worked on in the past have done Json deserialization on the main thread without affecting the responsiveness of the UI. It all depends on how big the payload is.