---
title: "libraryWithAPIVersion:options:error:"
framework: iTunes Library
role: symbol
role_heading: Type Method
platforms: [Mac Catalyst 14.0+, macOS 10.14+]
path: "ituneslibrary/itlibrary/librarywithapiversion:options:error:"
---

# libraryWithAPIVersion:options:error:

Creates and initializes an instance of ITLibrary that can retrieve media entities.

## Declaration

```occ
+ (instancetype) libraryWithAPIVersion:(NSString *) requestedAPIVersion options:(ITLibInitOptions) options error:(NSError **) error;
```

## Parameters

- `requestedAPIVersion`: The version of the iTunesLibrary API that the app is requesting. Provide “1.0” if unknown.
- `options`: Options that change the initialization behavior. See doc://com.apple.ituneslibrary/documentation/iTunesLibrary/ITLibInitOptions.
- `error`: A pointer to a variable that receives an doc://com.apple.documentation/documentation/Foundation/NSError if this method fails. Can be nil if the error isn’t applicable to the caller.

## Return Value

Return Value An ITLibrary instance that can retrieve media entities, or nil if the method fails.

## Discussion

Discussion Unless you specify the ITLibInitOptions.lazyLoadData option, the system reads and parses the default iTunes database for the current user during initialization of the ITLibrary class. All media entities cache in memory until deallocation of the object occurs.

## See Also

### Essentials

- [init(apiVersion:)](ituneslibrary/itlibrary/init(apiversion:)-71e74.md)
- [init(apiVersion:options:)](ituneslibrary/itlibrary/init(apiversion:options:)-9eorg.md)
- [libraryWithAPIVersion:error:](ituneslibrary/itlibrary/librarywithapiversion:error:.md)
- [ITLibInitOptions](ituneslibrary/itlibinitoptions.md)
