---
title: TVTopShelfContentProvider
framework: tvservices
role: symbol
role_heading: Class
path: tvservices/tvtopshelfcontentprovider
---

# TVTopShelfContentProvider

The main interface for your Top Shelf app extension, which you use to provide content for the top shelf area of the tvOS Home Screen.

## Declaration

```swift
class TVTopShelfContentProvider
```

## Overview

Overview Adopt this protocol in the principal class of your Top Shelf app extension. Use its methods to create the items that you want to display in the top shelf interface. For each item, specify additional resources such as the image or video to display. Fill the top shelf area with the user’s active content or with content you want to highlight or promote. For each distinct piece of content, create a TVTopShelfCarouselItem or TVTopShelfSectionedItem and fill the object with details about that content. For example, provide an identifier for the item and URLs for the pictures or videos you want to display for that item. After creating your items, add them to an appropriate content object and return them from your loadTopShelfContent(completionHandler:) method.

## Topics

### Providing the Top Shelf Content

- [loadTopShelfContent(completionHandler:)](tvservices/tvtopshelfcontentprovider/loadtopshelfcontent(completionhandler:).md)

### Updating Your Content

- [topShelfContentDidChange()](tvservices/tvtopshelfcontentprovider/topshelfcontentdidchange().md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Top shelf app extensions

- [Building a Full Screen Top Shelf Extension](tvservices/building-a-full-screen-top-shelf-extension.md)
- [Legacy Extension](tvservices/legacy-extension.md)
