---
title: SHManagedSession
framework: shazamkit
role: symbol
role_heading: Class
path: shazamkit/shmanagedsession
---

# SHManagedSession

An object that records and matches a recording with captured sound in the Shazam catalog or your custom catalog.

## Declaration

```swift
final class SHManagedSession
```

## Overview

Overview This session is an alternative for SHSession if you prefer ShazamKit to manage recording. There are two main differences between this managed session and the SHSession: SHManagedSession performs all recording of audio and signature generation. SHManagedSession won’t accept audio or Signatures that it didn’t generate. Matching songs in Shazam requires enabling your app to access the catalog. For more information on enabling your app, see Enable ShazamKit for an App ID. The code below shows searching for a match in the Shazam catalog using SHManagedSession: // Set up the session. let session = SHManagedSession()

// Check for a match. let result = await session.result()

// Use the result. switch result {   case .match(let match):        // Match found.   case .noMatch(let signature):        // No match found.   case .error(let error, let signature):        // An error occurred. }

## Topics

### Creating a managed session object

- [init()](shazamkit/shmanagedsession/init().md)
- [init(catalog:)](shazamkit/shmanagedsession/init(catalog:).md)

### Getting the session state

- [state](shazamkit/shmanagedsession/state-swift.property.md)
- [SHManagedSession.State](shazamkit/shmanagedsession/state-swift.enum.md)

### Returning queries

- [result()](shazamkit/shmanagedsession/result().md)
- [results](shazamkit/shmanagedsession/results.md)
- [cancel()](shazamkit/shmanagedsession/cancel().md)
- [prepare()](shazamkit/shmanagedsession/prepare().md)

## Relationships

### Conforms To

- [Copyable](swift/copyable.md)
- [Escapable](swift/escapable.md)
- [Observable](observation/observable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Match audio

- [SHSession](shazamkit/shsession.md)
- [SHSessionDelegate](shazamkit/shsessiondelegate.md)
- [SHMatch](shazamkit/shmatch.md)
- [SHMatchedMediaItem](shazamkit/shmatchedmediaitem.md)
- [SHMediaItem](shazamkit/shmediaitem.md)
