---
title: "init(configuration:delegate:delegateQueue:)"
framework: foundation
role: symbol
role_heading: Initializer
path: "foundation/urlsession/init(configuration:delegate:delegatequeue:)"
---

# init(configuration:delegate:delegateQueue:)

Creates a session with the specified session configuration, delegate, and operation queue.

## Declaration

```swift
init(configuration: URLSessionConfiguration, delegate: (any URLSessionDelegate)?, delegateQueue queue: OperationQueue?)
```

## Parameters

- `configuration`: A configuration object that specifies certain behaviors, such as caching policies, timeouts, proxies, pipelining, TLS versions to support, cookie policies, and credential storage. See doc://com.apple.foundation/documentation/Foundation/URLSessionConfiguration for more information.
- `delegate`: A session delegate object that handles requests for authentication and other session-related events. This delegate object is responsible for handling authentication challenges, for making caching decisions, and for handling other session-related events. If nil, the class should be used only with methods that take completion handlers. important: The session object keeps a strong reference to the delegate until your app exits or explicitly invalidates the session. If you do not invalidate the session by calling the doc://com.apple.foundation/documentation/Foundation/URLSession/invalidateAndCancel() or doc://com.apple.foundation/documentation/Foundation/URLSession/finishTasksAndInvalidate() method, your app leaks memory until it exits.
- `queue`: An operation queue for scheduling the delegate calls and completion handlers. The queue should be a serial queue, in order to ensure the correct ordering of callbacks. If nil, the session creates a serial operation queue for performing all delegate method calls and completion handler calls.

## Mentioned in

Fetching website data into memory

## See Also

### Creating a session

- [init(configuration:)](foundation/urlsession/init(configuration:).md)
- [URLSessionConfiguration](foundation/urlsessionconfiguration.md)
- [configuration](foundation/urlsession/configuration.md)
