> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-22654f5b-docs-platform-docs-release.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# User Engagement Extensions

> iOS SDK implementation examples for User Engagement extensions including Giphy, Tenor, Message Translation, Polls, Stickers, Stipop, and Reminders

This page contains iOS SDK code examples for User Engagement extensions. For feature documentation, setup instructions, and extension settings, see [User Engagement Extensions](/fundamentals/extensions-user-engagement).

## How to Use Extensions with SDK

<Steps>
  <Step title="Enable in Dashboard">
    Login to [CometChat Dashboard](https://app.cometchat.com/login), select your app, then go to **Chat & Messaging → Features** and enable the extension.
  </Step>

  <Step title="Configure settings (if required)">
    Some extensions require API keys or additional configuration. Open the extension settings in the Dashboard.
  </Step>

  <Step title="Implement SDK methods">
    Use the code examples below to call extension APIs and extract extension data from messages.
  </Step>

  <Step title="Build your UI">
    Create UI components to display extension data (e.g., polls, stickers, GIFs).
  </Step>
</Steps>

***

## Giphy

Add GIFs from Giphy to your conversations.

### Get Trending GIFs

```swift theme={null}
CometChat.callExtension(slug: "gifs-giphy", type: .get, endPoint: "v1/trending?offset=10&limit=15", body: nil, onSuccess: { (response) in
        // GIFs data from Giphy
      }) { (error) in
        // Some error occured
      }
```

### Search for GIFs

```swift theme={null}
let query = "awesome"
CometChat.callExtension(slug: "gifs-giphy", type: .get, endPoint: "v1/search?offset=1&limit=15&query=\(query)", body: nil, onSuccess: { (response) in
        // GIFs data from Giphy
      }) { (error) in
        // Some error occured
      }
```

***

## Tenor

Add GIFs from Tenor to your conversations.

### Get Trending GIFs

```swift theme={null}
CometChat.callExtension(slug: "gifs-tenor", type: .get, endPoint: "v1/trending?offset=1&limit=15", body: nil, onSuccess: { (response) in
        // GIFs data from Tenor
      }) { (error) in
        // Some error occured
      }
```

### Search for GIFs

```swift theme={null}
let query = "awesome"
CometChat.callExtension(slug: "gifs-tenor", type: .get, endPoint: "v1/search?offset=1&limit=15&query=\(query)", body: nil, onSuccess: { (response) in
        // GIFs data from Tenor
      }) { (error) in
        // Some error occured
      }
```

***

## Message Translation

Translate messages into 70+ languages.

### Translate Message

```swift theme={null}
CometChat.callExtension(slug: "message-translation", type: .post, endPoint: "v2/translate", body: ["msgId": 12 ,"languages": ["hi", "ru"], "text": "Hey there! How are you?"] as [String : Any], onSuccess: { (response) in
         // Result of translations
      }) { (error) in
         // Some error occured
      }
```

***

## Polls

Create and vote on polls in conversations.

### Creating a Poll

```swift theme={null}
CometChat.callExtension(slug: "polls", type: .post, endPoint: "v2/create", body: ["question": "Which OS do you use?" ,"options":["Windows", "Ubuntu", "MacOS", "Other"],"receiver":"cometchat-uid-1","receiverType":"user"] as [String : Any], onSuccess: { (response) in
         // Details about the created poll
      }) { (error) in
         // Error occured
      }
```

### Voting in a Poll

```swift theme={null}
CometChat.callExtension(slug: "polls", type: .post, endPoint: "v2/vote", body: ["vote": "3", "id": "d5441d53-c191-4696-9e92-e4d79da7463"] as [String : Any], onSuccess: { (response) in
         // Vote submitted successfully
      }) { (error) in
         // Error occured
      }
```

### Getting Results

```swift theme={null}
let pollId = "d5441d53-c191-4696-9e92-e4d79da7463"
CometChat.callExtension(slug: "polls", type: .get, endPoint: "v2/results?id=\(pollId)", body: nil, onSuccess: { (response) in
         // Poll results
      }) { (error) in
         // Error occured
      }
```

***

## Stickers

Load and send stickers in conversations.

### Loading Stickers

```swift theme={null}
CometChat.callExtension(slug: "stickers", type: .get, endPoint: "v1/fetch", body: nil, onSuccess: { (response) in
  print("Success",response)
}) { (error) in
  print("Error",error?.errorCode, error?.errorDescription)
}
```

***

## Stipop

Access Stipop's sticker platform.

### Get Trending Stickers

```swift theme={null}
let lang = "en"
let limit = 20
let pageNumber = 1
let countryCode = "US"
CometChat.callExtension(slug: "stickers-stipop", type: .get, endPoint: "v1/trending?lang=\(lang)&limit=\(limit)&pageNumber=\(pageNumber)&countryCode=\(countryCode)", body: nil, onSuccess: { (response) in
        // Stickers in response
      }) { (error) in
        // Some error occured
      }
```

### Search for Stickers

```swift theme={null}
let lang = "en"
let limit = 20
let pageNumber = 1
let query = "happy"
CometChat.callExtension(slug: "stickers-stipop", type: .get, endPoint: "v1/search?lang=\(lang)&limit=\(limit)&pageNumber=\(pageNumber)&query=\(query)", body: nil, onSuccess: { (response) in
        // Stickers in response
      }) { (error) in
        // Some error occured
      }
```

***

## Reminders

Set reminders for messages or custom events.

### Set Message Reminders

```swift theme={null}
CometChat.callExtension(slug: "reminders", type: .post, endPoint: "v1/reminder", body: ["about": 1, "isCustom": false, "timeInMS": 1638351344989] as [String : Any], onSuccess: { (response) in
        // Reminder created successfully
      }) { (error) in
        // Some error occured
      }
```

### Set Personal Reminders

```swift theme={null}
CometChat.callExtension(slug: "reminders", type: .post, endPoint: "v1/reminder", body: ["about": "Drinking water", "isCustom": true, "timeInMS": 1638351344989] as [String : Any], onSuccess: { (response) in
        // Personal reminder created successfully
      }) { (error) in
        // Some error occured
      }
```

### List Reminders

```swift theme={null}
CometChat.callExtension(slug: "reminders", type: .get, endPoint: "v1/fetch", body: nil, onSuccess: { (response) in
        // Reminders list
      }) { (error) in
        // Some error occured
      }
```

### Delete Reminders

```swift theme={null}
CometChat.callExtension(slug: "reminders", type: .delete, endPoint: "v1/reminder", body: ["reminderId": "e9cda52a-3839-4fd5-a010-b70db136f0f1"] as [String : Any], onSuccess: { (response) in
        // Reminder deleted successfully
      }) { (error) in
        // Some error occured
      }
```
