KLIPY API | GIF API & Stickers API Access KLIPY’s GIF API and stickers API to integrate high-quality GIFs, stickers, and memes into your platform for enhanced engagement. ## Sections • [Getting Started](https://docs.klipy.com/getting-started.md): Follow simple, hands-on guides to quickly integrate APIs into your apps. Access detailed documentation and your API key at KLIPY Docs. • [Integration Requirements](https://docs.klipy.com/integration-requirements.md): These requirements apply to integrations using the KLIPY API or displaying content delivered by KLIPY. For custom implementations - including server-side requests, proxying, media caching, or combining KLIPY content with other sources - contact developers@klipy.com for prior approval and implementation guidance. Standard Integration Requirements Preserve KLIPY URLs and delivery data - Use media URLs returned by the KLIPY API as provided. Do not remove, alter, replace, or reconstruct URL parameters, content identifiers, tracking information, or other data required for delivery, reporting, moderation, attribution, or monetization. Load KLIPY media directly - Media must be loaded directly from the URLs included in the API response. Do not store, mirror, re-host, rewrite, or retain copies of KLIPY media unless KLIPY has approved a different delivery method in writing. Send requests from the end-user client - API requests and media loads must originate from the user’s mobile app, desktop app, or web browser. Do not route requests through partner-operated servers, proxies, CDNs, or other intermediaries without prior written approval from KLIPY. Preserve Search and Trending results - Display content returned by KLIPY’s Search and Trending endpoints in the sequence and overall composition provided. Do not independently reorder, insert, remove, suppress, replace, or filter returned results. Any approved filtering must be configured through the KLIPY Partner Panel. Keep content sources separate - KLIPY content must appear in a dedicated grid, feed, tab, or result section. Do not blend our media with content from another provider in the same result set unless KLIPY has approved the presentation in writing. Do not interfere with KLIPY functionality - KLIPY content must not be presented or delivered in a way that interferes with ranking, measurement, moderation, attribution, reporting, or monetization. Use the KLIPY Partner Panel for content filtering - The KLIPY Partner Panel allows partners to: Block specific search terms globally or in selected countries. Block content containing specific keywords globally or in selected countries. Contact developers@klipy.com if your integration requires additional moderation or filtering controls. Requirements for Approved Caching Integrations Standard integrations must load KLIPY media directly and must not create a partner-operated media cache. KLIPY may approve a custom caching architecture for certain integrations. Approval must be obtained before the caching layer is developed or deployed. Approved caching implementations must: Follow the caching and revalidation specifications provided by KLIPY. Confirm that cached media remains active and permitted before serving it to users. Support expiration, revalidation, invalidation, and purge instructions required by KLIPY. Prevent removed, expired, disabled, or restricted content from continuing to appear through the partner’s cache. Partners must not implement KLIPY media caching independently. Contact developers@klipy.com for approval and technical guidance. • [Network Requirements](https://docs.klipy.com/network-requirements.md): If any software on your network filters or restricts outbound traffic, allowlist the following domains to ensure KLIPY works as expected: Title Description Domain Purpose klipy.com Core platform api.klipy.com API endpoint static.klipy.com Media delivery (GIFs, stickers, thumbnails) static1.klipy.com Media delivery (GIFs, stickers, thumbnails) static2.klipy.com Media delivery (GIFs, stickers, thumbnails) All domains are served over HTTPS (port 443). Need help? Reach us anytime at developers@klipy.com • [GIF API](https://docs.klipy.com/gifs-api.md): Discover how to integrate KLIPY's GIF API into your apps. Enrich your projects with KLIPY's vibrant GIFs. Access fast and easy documentation. • [GIF - Trending API](https://docs.klipy.com/gifs-api/gifs-trending-api.md): Use this endpoint to fetch the most popular and viral GIFs of the moment, automatically tailored to your user’s language and location. Trending content is updated throughout the day and optimized for engagement across social, messaging, and keyboard experiences. To monetize this feature, check out the Advertisements section See our Demo App Source Code for an example of Trending API integration. • [GIF - Search API](https://docs.klipy.com/gifs-api/gifs-search-api.md): Use this endpoint to search KLIPY’s full GIF library by keyword or phrase. Results are ranked by relevance, popularity, and language context to ensure highly engaging, localized results. The search engine supports fuzzy matching, custom pagination, and optional content filters to help you deliver the right result in every user flow. Looking to monetize your search results? See the Advertisements section • [GIF - Categories API](https://docs.klipy.com/gifs-api/gifs-categories-api.md): Use this endpoint to retrieve a list of curated categories that group KLIPY GIFs by common themes, moods, and reactions. Categories can be shown as buttons, filters, or tabs in your UI, and are fully compatible with the Search API to help users discover content faster. See our Demo App Source Code for an example of category-based integration. • [GIF - Recent Items API [per user]](https://docs.klipy.com/gifs-api/gifs-recent-items-api-per-user.md): Use this endpoint to retrieve a list of GIFs recently used by a specific user. It’s ideal for implementing “Recently Used” sections in keyboards, messaging apps, or content pickers. Pass a unique customer_id to fetch per-user history without storing content manually. To include ads alongside recents, see the Advertisements section • [GIF - Items API](https://docs.klipy.com/gifs-api/gifs-items-api.md): Use this endpoint to retrieve one or more specific GIFs by their slugs. Ideal for restoring saved content, displaying favorites, or loading shared links. Provide the Slugs parameter - each as a comma-separated list - to fetch multiple items in a single request. • [GIF - Hide from Recent](https://docs.klipy.com/gifs-api/gifs-hide-from-recent.md): Use this endpoint to remove a specific GIF from a user’s Recent list. Helpful for clearing sensitive content, handling undo actions, or improving personalization. Pass the user’s customer_id and the slug of the GIF to be hidden. • [GIF - Share Trigger API](https://docs.klipy.com/gifs-api/gifs-share-trigger-api.md): Use this endpoint to log when a user shares a specific GIF. This improves personalization and helps surface more relevant content based on sharing behavior. No personal data is collected. Just pass a stable customer_id (e.g. a hash or UUID) to associate the event with the user anonymously. • [GIF - Report API](https://docs.klipy.com/gifs-api/gifs-report-api.md): Use this endpoint to report a GIF that was flagged by a user on your platform. This helps KLIPY detect and review inappropriate or unwanted content to keep the experience safe and high quality. Include a stable customer_id and a short reason string (e.g., "nsfw", "spam", "offensive"). Title Description Reason Description `nudity` Nudity or sexually explicit content. `violence` Graphic violence or violent behavior. `hate_speech` Racist, homophobic, or hateful content. `harassment` Bullying, personal attacks, or targeted harassment. `spam` Repetitive, irrelevant, or misleading content. `misinformation` False claims, misleading text, or manipulated media. `copyright` Content believed to infringe on intellectual property rights. `offensive` Generally offensive or culturally inappropriate material. `illegal` Content that promotes or depicts illegal activity. `broken` Content doesn’t load, is corrupted, or is unplayable. `low_quality` Extremely low resolution or unreadable content. `not_relevant` Content doesn’t match the tag/query or is miscategorized. `impersonation` Fake identity, misleading branding, or impersonation. `other` Other issues not listed above. Free-text description recommended. • [GIF Format Sizes](https://docs.klipy.com/gifs-api/gifs-format-sizes.md): The file size for each content format depends on the dimensions and duration of the specific GIF selected. Therefore, the mean and median values shown in the following table should be considered general guidelines rather than strict values. Size File format Mean file size (KB) Median file size (KB) hd gif 3874 2578 hd webp 755 288 hd webm 136 94 hd mp4 492 295 hd jpg 19 16 xs gif 101 64 xs webp 51 35 xs webm 45 37 xs mp4 37 31 xs jpg 2 2 sm gif 330 206 sm webp 178 117 sm webm 74 60 sm mp4 98 85 sm jpg 7 6 md gif 2263 1405 md webp 988 636 md webm 136 94 md mp4 444 257 md jpg 20 19 • [Sticker API](https://docs.klipy.com/stickers-api.md): Learn how to integrate the Sticker API using KLIPY's API key. Explore our documentation to easily integrate our collection of stickers into your apps. • [Sticker - Trending API](https://docs.klipy.com/stickers-api/stickers-trending-api.md): Use this endpoint to fetch the most popular and high-performing Stickers of the moment, personalized by user language and location. Trending results are refreshed throughout the day to boost engagement in keyboards, messaging apps, and social features. To monetize trending stickers with ads, see the Advertisements section See our Demo App Source Code for an example of Trending API integration. • [Sticker - Search API](https://docs.klipy.com/stickers-api/stickers-search-api.md): Use this endpoint to search KLIPY’s entire sticker library by keyword or phrase. Results are ranked by relevance, popularity, and language to deliver highly engaging and localized stickers. Supports pagination, content filtering, and region-based boosting. Looking to monetize search results? See the Advertisements section • [Sticker - Categories API](https://docs.klipy.com/stickers-api/stickers-categories-api.md): Use this endpoint to retrieve a list of curated sticker categories, organized by emotion, action, or reaction. These categories can be paired with the Search API to create filterable sticker experiences in your app. See our Demo App Source Code for an example of category-based integration. • [Sticker - Recent Items API [per user]](https://docs.klipy.com/stickers-api/stickers-recent-items-api-per-user.md): Use this endpoint to fetch stickers recently used by a specific user. Ideal for building a “Recently Used” section in messaging apps, keyboards, or sticker pickers. Just pass a stable customer_id to personalize results per user. Want to include monetized stickers in recent results? See the Advertisements section • [Sticker - Items API](https://docs.klipy.com/stickers-api/stickers-items-api.md): Use this endpoint to retrieve one or more specific Stickers by their slugs. Ideal for restoring saved content, displaying favorites, or loading shared links. Provide the Slugs parameter - each as a comma-separated list - to fetch multiple items in a single request. • [Sticker - Hide from recent](https://docs.klipy.com/stickers-api/stickers-hide-from-recent.md): Use this endpoint to remove a specific sticker from a user’s Recent list. Useful for clearing sensitive content, improving personalization, or handling “undo” actions. Pass the user’s customer_id and the slug of the sticker you want to hide. • [Sticker - Share Trigger API](https://docs.klipy.com/stickers-api/stickers-share-trigger-api.md): Use this endpoint to track when a user shares a specific sticker. This helps KLIPY improve recommendations and personalize content delivery. Pass a stable customer_id (e.g., UUID or hash) to associate the event with the user. • [Sticker - Report API](https://docs.klipy.com/stickers-api/stickers-report-api.md): Use this endpoint to report a sticker that has been flagged by a user. This helps KLIPY review and remove inappropriate content to keep the platform safe and high quality. Include a customer_id and a short reason string (e.g., "nsfw", "spam", "offensive"). Title Description Reason Description `nudity` Nudity or sexually explicit content. `violence` Graphic violence or violent behavior. `hate_speech` Racist, homophobic, or hateful content. `harassment` Bullying, personal attacks, or targeted harassment. `spam` Repetitive, irrelevant, or misleading content. `misinformation` False claims, misleading text, or manipulated media. `copyright` Content believed to infringe on intellectual property rights. `offensive` Generally offensive or culturally inappropriate material. `illegal` Content that promotes or depicts illegal activity. `broken` Content doesn’t load, is corrupted, or is unplayable. `low_quality` Extremely low resolution or unreadable content. `not_relevant` Content doesn’t match the tag/query or is miscategorized. `impersonation` Fake identity, misleading branding, or impersonation. `other` Other issues not listed above. Free-text description recommended. • [Sticker Format Sizes](https://docs.klipy.com/stickers-api/stickers-format-sizes.md): The file size for each content format depends on the dimensions and duration of the specific Sticker selected. Therefore, the mean and median values shown in the following table should be considered general guidelines rather than strict values. Size File format Mean file size (KB) Median file size (KB) hd gif 813 257 hd webp 247 111 hd webm 881 348 hd png 23 15 md gif 795 256 md webp 257 129 md webm 881 348 md png 23 15 sm gif 159 98 sm webp 97 58 sm webm 250 134 sm png 6 5 xs gif 41 31 xs webp 37 25 xs webm 72 44 xs png 2 2 • [Clip API](https://docs.klipy.com/clips-api.md): Access KLIPY's Clips API - Enhance your projects with our Clips collection. Find detailed documentation for fast and easy integration. • [Clip - Trending API](https://docs.klipy.com/clips-api/clips-trending-api.md): Use this endpoint to fetch the most popular Clips currently trending on KLIPY. Results are automatically localized by language and region, updating throughout the day to reflect what’s performing best. Ideal for short-form content features in messaging, social, or meme-based apps. Want to monetize Clips? See the Advertisements section See our Demo App Source Code for an example of Trending API integration. • [Clip - Search API](https://docs.klipy.com/clips-api/clips-search-api.md): Use this endpoint to search KLIPY’s full Clip library by keyword or phrase. Results are ranked by relevance, recency, and user language for a personalized experience. Supports pagination, content filtering, and locale-specific ranking. Looking to monetize search results? See the Advertisements section • [Clip - Categories API](https://docs.klipy.com/clips-api/clips-categories-api.md): Use this API to retrieve the full list of Clip categories available in KLIPY. These can be used to filter content or enhance the Search API by surfacing results within specific emotional or thematic categories. Categories like funny , sad , or angry can be used for mood-based discovery or custom UI organization. See our Demo App Source Code for an example of category-based integration. • [Clip - Recent Items API [per user]](https://docs.klipy.com/clips-api/clips-recent-items-api-per-user.md): This API fetches the list of Clips a user has recently interacted with. It enables platforms to power user-centric features like "Recently Used" or "Recents" view. Requires a persistent customer_id to personalize history per user. To monetize Recents feature, check out the Advertisements section • [Clip - Items API](https://docs.klipy.com/clips-api/clips-items-api.md): Use this endpoint to retrieve one or more specific Clips by their slugs. Ideal for restoring saved content, displaying favorites, or loading shared links. Provide the Slugs parameter - each as a comma-separated list - to fetch multiple items in a single request. • [Clip - Hide from Recent](https://docs.klipy.com/clips-api/clips-hide-from-recent.md): Use this endpoint to remove a specific clip from a user’s Recent list. Useful for clearing sensitive content, improving personalization, or handling “undo” actions. Pass the user’s customer_id and the slug of the clip you want to hide. • [Clip - Share trigger API](https://docs.klipy.com/clips-api/clips-share-trigger-api.md): Use this endpoint to log when a user shares a specific Clip. This helps KLIPY improve personalization and suggest more relevant content based on user sharing behavior. Pass the user’s customer_id (a stable, anonymous identifier such as a hash or UUID) along with the slug of the shared Clip. • [Clip - Report API](https://docs.klipy.com/clips-api/clips-report-api.md): Use this endpoint to report a Clip that has been flagged by a user. Reporting helps KLIPY maintain a safe and respectful platform by allowing us to review inappropriate or unwanted content. Include a stable customer_id and a short reason string (e.g., "nsfw", "spam", "offensive"). Title Description Reason Description `nudity` Nudity or sexually explicit content. `violence` Graphic violence or violent behavior. `hate_speech` Racist, homophobic, or hateful content. `harassment` Bullying, personal attacks, or targeted harassment. `spam` Repetitive, irrelevant, or misleading content. `misinformation` False claims, misleading text, or manipulated media. `copyright` Content believed to infringe on intellectual property rights. `offensive` Generally offensive or culturally inappropriate material. `illegal` Content that promotes or depicts illegal activity. `broken` Content doesn’t load, is corrupted, or is unplayable. `low_quality` Extremely low resolution or unreadable content. `not_relevant` Content doesn’t match the tag/query or is miscategorized. `impersonation` Fake identity, misleading branding, or impersonation. `other` Other issues not listed above. Free-text description recommended. • [Meme API](https://docs.klipy.com/memes-api.md): Discover KLIPY's Meme API - Access a wide variety of memes for your content. Learn how to integrate our API, and find out our instructions. • [Meme - Trending API](https://docs.klipy.com/memes-api/memes-trending-api.md): Use this endpoint to retrieve trending Memes tailored to the user's language and time of day. This helps surface relevant, high-engagement content. Include a customer_id to improve personalization and pass locale for language-aware ranking. To request an Ad alongside the results, refer to the Advertisements section See our Demo App Source Code for an example of Trending API integration. • [Meme - Search API](https://docs.klipy.com/memes-api/memes-search-api.md): Use this endpoint to search for Memes in KLIPY's database based on a keyword query. You can personalize results by passing a stable customer_id , localize them with the locale parameter, and apply content filters for safe browsing. To display an ad with search results, refer to the Advertisements section • [Meme - Categories API](https://docs.klipy.com/memes-api/memes-categories-api.md): Use this endpoint to fetch all available Meme categories from KLIPY. These categories can be used to power UI filters, improve discovery, or be paired with the Meme Search API for contextual queries. See our Demo App Source Code for an example of category-based integration. • [Meme - Recent Items API [per user]](https://docs.klipy.com/memes-api/memes-recent-items-api-per-user.md): Use this endpoint to retrieve a list of Memes recently used by a specific user. This helps power "Recents" sections in your UI or enables re-engagement with previously shared or viewed content. Pass the customer_id of the user and optional pagination params to fetch results. To request an advertisement, check out the Advertisements section • [Meme - Items API](https://docs.klipy.com/memes-api/memes-items-api.md): Use this endpoint to retrieve one or more specific Memes by their slugs. Ideal for restoring saved content, displaying favorites, or loading shared links. Provide the Slugs parameter - each as a comma-separated list - to fetch multiple items in a single request. • [Meme - Hide from Recent](https://docs.klipy.com/memes-api/memes-hide-from-recent.md): Use this endpoint to hide a specific Meme from a user's "Recently Used" list. This can be useful when a user deletes, retracts, or prefers not to see a previously used item in their recent history. To remove the item, provide the user’s stable customer_id and the Meme slug . • [Meme - Share trigger API](https://docs.klipy.com/memes-api/memes-share-trigger-api.md): Use this endpoint to log when a user shares a specific Meme. This allows KLIPY to enhance future recommendations and better understand user engagement patterns. Just pass a stable customer_id (such as a hashed or randomly generated string) that remains consistent for the user. • [Meme - Report API](https://docs.klipy.com/memes-api/memes-report-api.md): This API lets you report a Meme that a user has flagged as inappropriate or offensive. KLIPY uses these reports to review and, if necessary, take action against the content to keep the experience safe and respectful for everyone. Include a stable customer_id and a short reason string (e.g., "nsfw", "spam", "offensive"). Title Description Reason Description `nudity` Nudity or sexually explicit content. `violence` Graphic violence or violent behavior. `hate_speech` Racist, homophobic, or hateful content. `harassment` Bullying, personal attacks, or targeted harassment. `spam` Repetitive, irrelevant, or misleading content. `misinformation` False claims, misleading text, or manipulated media. `copyright` Content believed to infringe on intellectual property rights. `offensive` Generally offensive or culturally inappropriate material. `illegal` Content that promotes or depicts illegal activity. `broken` Content doesn’t load, is corrupted, or is unplayable. `low_quality` Extremely low resolution or unreadable content. `not_relevant` Content doesn’t match the tag/query or is miscategorized. `impersonation` Fake identity, misleading branding, or impersonation. • [Memes Format Sizes](https://docs.klipy.com/memes-api/memes-format-sizes.md): The file size for each content format depends on the dimensions and duration of the specific Meme selected. Therefore, the mean and median values shown in the following table should be considered general guidelines rather than strict values. Size File format Mean file size (KB) Median file size (KB) webp hd 29 24 png hd 76 69 webp sm 10 9 png sm 27 25 webp md 30 26 png md 90 89 webp xs 3 2 png xs 6 5 • [AI Emoji API](https://docs.klipy.com/ai-emoji-api.md): Discover KLIPY's AI Emoji API - Access a wide variety of emojis for your content. Learn how to integrate our API, and find out our instructions. • [AI Emoji Generation](https://docs.klipy.com/ai-emoji-api/ai-emojis-generation.md): KLIPY AI Emoji Generation API allows you to leverage powerful AI using simple text prompts to generate unique Emojis. You can generate up to 20 AI Emojis per day. To request a limit increase, please contact Developer Support at developers@klipy.com This feature ensures rapid initial response times while efficiently handling generation requests. Upon request, the API instantly returns a unique ID , allowing you to track the request without delay. You have two primary options for receiving the final generated AI Emoji: Webhook (Callback-based Asynchronous Processing): Mechanism: Provide an optional callback URL in your request. Our server will automatically push the final Emoji result to this URL once processing is complete. Benefit: This is the most efficient and scalable method, as it eliminates unnecessary polling requests and improves reliability. Polling (Job-based Asynchronous Processing): Mechanism: Receive the generation ID and periodically check the generation status using the dedicated status endpoint until the result is ready. Availability: The final result will be available via the status endpoint up to 24 hours after completion. We recommend using Webhook delivery to ensure better reliability at scale. • [AI Emoji - Generate API](https://docs.klipy.com/ai-emoji-api/ai-emojis-generation/ai-emojis-generate-api.md): Use this endpoint to generate AI Emojis by providing a text prompt. The API immediately returns a unique generation ID and processes the request asynchronously. • [AI Emoji - Status Check API](https://docs.klipy.com/ai-emoji-api/ai-emojis-generation/ai-emojis-status-check.md): Use this endpoint to retrieve the status and result of an AI Emoji generation request using its unique ID. It returns the current status ( processing , success , or failed ) and includes the generated Emoji data when the status is success . If the status is not success , the result will be null . • [AI Emoji - Trending API](https://docs.klipy.com/ai-emoji-api/ai-emojis-trending-api.md): Use this endpoint to retrieve trending AI Emojis tailored to the user's language and time of day. This helps surface relevant, high-engagement content. Include a customer_id to improve personalization and pass locale for language-aware ranking. To request an Ad alongside the results, refer to the Advertisements section See our Demo App Source Code for an example of Trending API integration. • [AI Emoji - Search API](https://docs.klipy.com/ai-emoji-api/ai-emojis-search-api.md): Use this endpoint to search for AI Emojis in KLIPY's database based on a keyword query. You can personalize results by passing a stable customer_id , localize them with the locale parameter, and apply content filters for safe browsing. To display an ad with search results, refer to the Advertisements section • [AI Emoji - Categories API](https://docs.klipy.com/ai-emoji-api/ai-emojis-categories-api.md): Use this endpoint to fetch all available AI Emoji categories from KLIPY. These categories can be used to power UI filters, improve discovery, or be paired with the AI Emoji Search API for contextual queries. See our Demo App Source Code for an example of category-based integration. • [AI Emoji - Recent Items API [per user]](https://docs.klipy.com/ai-emoji-api/ai-emojis-recent-items-api-per-user.md): Use this endpoint to retrieve a list of AI Emojis recently used by a specific user. This helps power "Recents" sections in your UI or enables re-engagement with previously shared or viewed content. Pass the customer_id of the user and optional pagination params to fetch results. To request an advertisement, check out the Advertisements section • [AI Emoji - Items API](https://docs.klipy.com/ai-emoji-api/ai-emojis-items-api.md): Use this endpoint to retrieve one or more specific AI Emojis by their slugs. Ideal for restoring saved content, displaying favorites, or loading shared links. Provide the Slugs parameter - each as a comma-separated list - to fetch multiple items in a single request. • [AI Emoji - Hide from Recent](https://docs.klipy.com/ai-emoji-api/ai-emojis-hide-from-recent.md): Use this endpoint to hide a specific AI Emoji from a user's "Recently Used" list. This can be useful when a user deletes, retracts, or prefers not to see a previously used item in their recent history. To remove the item, provide the user’s stable customer_id and the AI Emoji slug . • [AI Emoji - Share trigger API](https://docs.klipy.com/ai-emoji-api/ai-emojis-share-trigger-api.md): Use this endpoint to log when a user shares a specific AI Emoji. This allows KLIPY to enhance future recommendations and better understand user engagement patterns. Just pass a stable customer_id (such as a hashed or randomly generated string) that remains consistent for the user. • [AI Emoji - Report API](https://docs.klipy.com/ai-emoji-api/ai-emojis-report-api.md): This API lets you report a AI Emoji that a user has flagged as inappropriate or offensive. KLIPY uses these reports to review and, if necessary, take action against the content to keep the experience safe and respectful for everyone. Include a stable customer_id and a short reason string (e.g., "nsfw", "spam", "offensive"). Title Description Reason Description `nudity` Nudity or sexually explicit content. `violence` Graphic violence or violent behavior. `hate_speech` Racist, homophobic, or hateful content. `harassment` Bullying, personal attacks, or targeted harassment. `spam` Repetitive, irrelevant, or misleading content. `misinformation` False claims, misleading text, or manipulated media. `copyright` Content believed to infringe on intellectual property rights. `offensive` Generally offensive or culturally inappropriate material. `illegal` Content that promotes or depicts illegal activity. `broken` Content doesn’t load, is corrupted, or is unplayable. `low_quality` Extremely low resolution or unreadable content. `not_relevant` Content doesn’t match the tag/query or is miscategorized. `impersonation` Fake identity, misleading branding, or impersonation. • [AI Emoji Format Sizes](https://docs.klipy.com/ai-emoji-api/ai-emojis-format-sizes.md): The file size for each content format depends on the dimensions and duration of the specific AI Emoji selected. Therefore, the mean and median values shown in the following table should be considered general guidelines rather than strict values. Size File format Mean file size (KB) Median file size (KB) webp hd 29 24 png hd 76 69 webp sm 10 9 png sm 27 25 webp md 30 26 png md 90 89 webp xs 3 2 png xs 6 5 • [Search Suggestions & Autocomplete](https://docs.klipy.com/search-suggestions-and-autocomplete.md): Discover KLIPY's Meme API - Access a wide variety of memes for your content. Learn how to integrate our API, and find out our instructions. • [Search Suggestions](https://docs.klipy.com/search-suggestions-and-autocomplete/search-suggestions.md): Get a JSON object containing a list of related or alternative search terms for a given search term. Search Suggestions guide users toward more accurate or relevant results by offering alternatives based on historical search behavior. Suggestions are ranked in order of likelihood to improve engagement. • [Autocomplete](https://docs.klipy.com/search-suggestions-and-autocomplete/autocomplete.md): Get a JSON object containing a list of completed search terms for a partial search query. Autocomplete reduces typing effort and speeds up discovery by predicting full search terms as the user types. Results are ordered by confidence, with fewer completions shown as certainty increases. • [Advertisements](https://docs.klipy.com/advertisements.md): Explore KLIPY Advertisements API to monetize your GIFs, stickers, and clips. Integrate ads seamlessly and boost revenue while enhancing user engagement. • [Receiving an Advertisement](https://docs.klipy.com/advertisements/receiving-an-ad.md): Advertisements may appear in the Trending , Search , and Recent endpoints across KLIPY’s GIFs, Clips, Stickers, and Memes products. To maximize ad delivery and revenue potential: Always include all required parameters Whenever possible, also include recommended parameters We strongly advise specifying ad dimensions using ad-min-width , ad-max-width , ad-min-height , and ad-max-height . Supported ad sizes range from 50x50 to a maximum of device width × 250px height , covering the most popular mobile ad formats. Ad fetching is influenced by the User-Agent header in your API request. Please refer to the "Get Proper User Agent" section for implementation guidance. Title Description Title Required parameters Description Example customer_id Unique ID of user in your system “5429ce1c-3412-4953-9a86-9af8d7f9117b” ad-min-width Minimum width ( RECOMMENDED: 50 ) 50 ad-max-width Maximum width ( RECOMMENDED: device-width ) 401 ad-min-height Minimum height ( RECOMMENDED: 50 ) 50 ad-max-height Maximum height ( RECOMMENDED: 250 ) 250 Title Description Title Recommended parameters Description Example ad-app-version The version of the app being used by the user when making the request. “10.9.3” ad-os Device: operating system (e.g: ios; android etc) “ios” ad-osv Device: operating system version (e.g: 14.4; 11 etc) “18.0” ad-hwv Device: hardware version of the device (11, xs, 6s) “15 pro” ad-make Device: make (e.g: apple; samsung; huawei etc) “apple” ad-model Device: model (e.g: iphone; galaxy; pixel 5 etc) “iphone” ad-ifa Device: ID sanctioned for advertiser use in the clear (unhashed). IDFA for iOS, GPID for Android, RIDA for Roku, DPID for Samsung, and so on “F1B2C3D4-E5F6-7890-ABCD-EF1234567890” ad-device-h Physical height of the screen in pixels 720 ad-device-w Physical width of the screen in pixels 480 ad-ppi Screen size as pixels per linear inch 326 ad-pxratio The ratio of physical pixels to device independent pixels 2.0 ad-language Language using ISO-639-1-alpha-2 “EN” ad-carrier Carrier or ISP "VERIZON" ad-mccmnc Mobile carrier as the concatenated MCC-MNC code "310-005" ad-connection-type Connection type: 0 => unknown, 1 => ethernet 2 => WI-FI, 3 => cellular(unknown), 4 => cellular(2G), 5 => cellular(3G), 6 => cellular(4G), 7 => cellular(5G) 6 ad-didsha1 Hardware device ID (e.g., IMEI); hashed via SHA1 “880438c9afa4b2b82a6058c69421937734e71932” ad-didmd5 Hardware device ID (e.g., IMEI); hashed via MD5 “d273bb625a4381dd60333fc876efc4a2” ad-dpidsha1 Platform device ID (e.g., Android ID); hashed via SHA1 “3d85ebeff68624801146d7bc5feb7e33568ec849” ad-dpidmd5 Platform device ID (e.g., Android ID); hashed via MD5 “853065e7c7cd53375220ee51705ca65e” ad-macsha1 MAC address of the device; hashed via SHA1 “1766ceec159e25346548162ed017ba5cdd166b0e” ad-macmd5 MAC address of the device; hashed via MD5 “c76a1c9db754b3dae86fdd5d5a9c2f53” ad-yob User: year of birth as a 4-digit integer 2001 ad-gender User: gender, where “M” = male, “F” = female, “O” = known to be other “M” Title Description Title Optional parameters Description Example ad-position This field is intended to predefine the advertisement position in the response. Here is how the ad-position works when all other required parameters for the advertisement are present: If you include ad-position (an integer starting from 0 ) in the request, KLIPY will attempt to use that number when placing the advertisement in the response. If it is absent, KLIPY will attempt to use the predefined ad-position for the specific client . Otherwise, it will default to a random number between 0 and 2 . 0 ad-iframe 1 or 0 (default: 0) 1 means that instead of advertisement content, you'll receive an URL for an iframe that should be displayed in a WebView. 1 • [Get Proper User Agent](https://docs.klipy.com/advertisements/receiving-an-ad/browser-like-user-agent.md): Advertisement delivery is only supported on mobile devices . To ensure ads are served correctly, you must include a browser-like User-Agent in all requests, not an application-level one. For example, instead of: APP_NAME/1 CFNetwork/1474 Darwin/23.1.0 Use: Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 💡 Retrieve this User-Agent from the device’s WebView : iOS: Use WKWebView Android: Use WebView.getSettings().getUserAgentString() (See code examples on the right.) • [Displaying an Advertisement](https://docs.klipy.com/advertisements/displaying-an-ad.md): When an Ad is returned, its content field contains an HTML string that must be rendered in your app. In mobile apps , display this content using a WebView . To make implementation easier, KLIPY provides ready-to-use SDKs for iOS and Android, please refer to our Demo App Source Code . Note: Even with correct parameters, ad delivery is not guaranteed . It depends on demand, user targeting, and supported sizes (e.g., width/height availability). • [Demo App](https://docs.klipy.com/advertisements/demo-app.md): The KLIPY Demo App Source Code provides a reference implementation showcasing how to integrate the KLIPY API smoothly into a mobile application. It demonstrates how to: Retrieve GIFs, Clips, Stickers, and Memes from KLIPY’s content library Handle API interactions efficiently Display media content within a clean, user-friendly interface Optionally support ads with minimal setup While this demo is recommended as a starting point, integration is flexible. Developers are encouraged to adapt the codebase to meet their app’s specific needs and design requirements. • [iOS WebView SDK](https://docs.klipy.com/advertisements/ios-webview-sdk.md): The KlipyAds SDK is accessible through CocoaPods ( https://cocoapods.org/pods/KlipyAds ) To install the SDK, add the following line to your Podfile: pod 'KlipyAds' After successfully installing KlipyAds , import it into your code with: import KlipyAds You can now utilize the KlipyWebView class, which extends UIView , in your application. This class provides two public methods, giving you the flexibility to choose the appropriate one for your use case: public func loadURL(url: URL) public func loadHTMLString(htmlString: String) Select the method that aligns with your requirements for seamless integration with the KlipyAds SDK. Example ViewController using KlipyWebView : Plain text import UIKit import KlipyAds class ViewController: UIViewController { private lazy var wrapperView: UIView = { return UIView(frame: .zero) }() private lazy var klipyWebview: KlipyWebView = { return KlipyWebView() }() override func viewDidLoad() { super.viewDidLoad() setup() layout() loadHTML() } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) } private func setup() { view.addSubview(wrapperView) wrapperView.addSubview(klipyWebview) } private func layout() { wrapperView.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ wrapperView.centerXAnchor.constraint(equalTo: view.centerXAnchor), wrapperView.centerYAnchor.constraint(equalTo: view.centerYAnchor), wrapperView.widthAnchor.constraint(equalToConstant: 300), wrapperView.heightAnchor.constraint(equalToConstant: 200) ]) klipyWebview.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ klipyWebview.topAnchor.constraint(equalTo: wrapperView.topAnchor), klipyWebview.bottomAnchor.constraint(equalTo: wrapperView.bottomAnchor), klipyWebview.leadingAnchor.constraint(equalTo: wrapperView.leadingAnchor), klipyWebview.trailingAnchor.constraint(equalTo: wrapperView.trailingAnchor) ]) } private func loadHTML() { klipyWebview.loadHTMLString(htmlString: "<h1>Hello, World!</h1><script>document.querySelector('h1').innerHTML = 'Hello, Klipy!';</script>") } } • [Android WebView SDK](https://docs.klipy.com/advertisements/android-webview-sdk.md): How to install Android WebView SDK Add this in your root build.gradle at the end of repositories: Plain text dependencyResolutionManagement { ... repositories { ... maven { url 'https://jitpack.io' } } } Add the dependency: Plain text dependencies { implementation 'com.gitlab.kikliko:ads-android:{latest-release-number}' // See the latest release number here: https://jitpack.io/#com.gitlab.kikliko/ads-android } Don't Forget to add Internet permission in your Manifest.xml Plain text <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.INTERNET"/> How to use Android WebView SDK Get content UI Component and add UI component in XML: Plain text <co.kikliko.android.ads_sdk.GIFWebView android:id="@+id/gifContent" android:layout_width="wrap_content" android:layout_height="wrap_content" tools:layout_height="200dp" tools:layout_width="200dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <co.kikliko.android.ads_sdk.GIFWebView android:id="@+id/gifContent" android:layout_width="wrap_content" android:layout_height="wrap_content" tools:layout_height="200dp" tools:layout_width="200dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> Create the Data Model component with customizable fields: Plain text val klipyContent = KlipyContent( isWebView = true, content = "<h1>Hello, World!</h1><script>document.querySelector('h1').innerHTML = 'Hello, Klipy!';</script>", width = 200, height = 110 ) Set data for the Component View: Plain text binding.gifContent.loadContent(klipyContent) • [API Usage & Attribution Guidelines](https://docs.klipy.com/attribution.md): To ensure a consistent and high-quality experience across all platforms, applications using the KLIPY API must include clear attribution. • [Content filtering](https://docs.klipy.com/content-filtering.md): KLIPY provides content filtering tools that allow developers to control the types of media shown to users based on MPA-style ratings. These filters help ensure a safe and family-friendly user experience by excluding sensitive material such as explicit nudity, violence, or substance use. You can configure filters globally or by country using the Partner Dashboard . If you come across content that should be filtered but isn’t, please contact us at support@klipy.com so we can review and address it promptly. Filter Categories: In the tables below, you'll find what types of content are allowed for each ContentFilter option Profanity Violence Sexual content Substance use Miscellaneous • [Migrate from Tenor](https://docs.klipy.com/migrate-from-tenor.md): Migrating from Tenor? The switch is seamless. Simply replace the base URL tenor.googleapis.com with api.klipy.com in your codebase and plug in your KLIPY API key. Your GIF experience will continue to run smoothly. Here's the full guide: 1 Generate your Key Visit the Partner Panel , navigate to API Keys and create your platform. 2 Swap URL Replace your existing base URLs with KLIPY's endpoints. 3 Add Attribution Incorporate KLIPY branding into your interface. 4 Go Live Once complete, request production access via Partner Panel . For a more detailed look at our endpoints, review the technical specifications for each API below. • [Search](https://docs.klipy.com/migrate-from-tenor/search.md): This endpoint provides a JSON object containing the most relevant GIFs based on your specific search terms, categories, or emoji inputs. You can use any combination of these filters. To retrieve stickers instead of GIFs, include the searchfilter=sticker parameter in your request. When this filter is active, the response objects will provide transparent formats within the media_formats field. You can also include the random=true parameter to receive results in a randomized order rather than having them sorted by relevance. Best practices Authentication: Provide your API key to identify your integration. Search Queries: Pass the user's search exactly as typed, including all punctuation and special characters. Optimization: Use the Register Share endpoint when a user selects a GIF, Sticker, or any type. Pagination: Use the limit and pos parameters to manage result volume and optimize loading performance. For example, set limit to 10 for an initial request to provide a quick preview for users. To fetch the next set of results, repeat the API call using the next field value from the previous response as the new pos parameter. This pagination pattern enables a smooth experience, significantly reducing bandwidth consumption and improving client-side response times. Safety: Use the ContentFilter parameter to manage content ratings (default value is off ). Efficiency: Use media_filter to limit return formats, which can reduce the Response Object size by over 70%. • [Featured](https://docs.klipy.com/migrate-from-tenor/features.md): This endpoint returns a JSON object of current global featured GIFs, updated regularly throughout the day. Include the searchfilter=sticker parameter to receive stickers instead of GIFs. When this filter is active, the media field in the Response Objects will include transparent formats . Best practices Authentication: Provide your API key to identify your integration. Optimization: Use the Register Share endpoint when a user selects a GIF, Sticker, or any type. Pagination: Use the limit and pos parameters to manage result volume and optimize loading performance. For example, set limit to 10 for an initial request to provide a quick preview for users. To fetch the next set of results, repeat the API call using the next field value from the previous response as the new pos parameter. This pagination pattern enables a smooth experience, significantly reducing bandwidth consumption and improving client-side response times. Safety: Use the ContentFilter parameter to manage content ratings (default value is off ). Efficiency: Use media_filter to limit return formats, which can reduce the Response Object size by over 70%. • [Categories](https://docs.klipy.com/migrate-from-tenor/categories.md): This endpoint returns a JSON object of GIF categories based on the specified type. Each category includes a search URL that preserves the parameters from the original request. Supported types: featured (default): Featured emotional or reaction-based categories, including a preview GIF for each. trending: Current trending search terms, including a preview GIF for each. Best practices Authentication: Provide your API key to identify your integration. Use the locale parameter (default en_US ) to convert category names to the user's language. Pagination: Use the limit and pos parameters to manage result volume and optimize loading performance. For example, set limit to 10 for an initial request to provide a quick preview for users. To fetch the next set of results, repeat the API call using the next field value from the previous response as the new pos parameter. This pagination pattern enables a smooth experience, significantly reducing bandwidth consumption and improving client-side response times. Safety: Use the ContentFilter parameter to manage content ratings (default value is off ). Efficiency: Use media_filter to limit return formats, which can reduce the Response Object size by over 70%. • [Search Suggestions](https://docs.klipy.com/migrate-from-tenor/search-suggestions.md): This endpoint returns a JSON object of alternative search terms related to the user's search. Suggestions are ordered by their likelihood to drive a share, based on historical search and share behavior. Best practices Authentication: Provide your API key to identify your integration. Ordering: Display results in the order returned by the response. • [Autocomplete](https://docs.klipy.com/migrate-from-tenor/migrate-from-tenor-autocomplete.md): This endpoint provides real-time autocomplete suggestions to help users discover content faster, which directly improves engagement and retention. Suggestions are ordered by their likelihood to drive a share, based on historical search and share behavior. Best practices Authentication: Provide your API key to identify your integration. Use the locale parameter (default en_US ) to convert category names to the user's language. Ordering: Display results in the order returned by the response. • [Trending Search Terms](https://docs.klipy.com/migrate-from-tenor/trending-search-terms.md): This endpoint returns a JSON object containing the current trending search terms. Best practices Authentication: Provide your API key to identify your integration. Ordering: Display results in the order returned by the response. • [Register Share](https://docs.klipy.com/migrate-from-tenor/register-share.md): This endpoint registers when a user shares a GIF or sticker. Best practices Authentication: Provide your API key to identify your integration. Search term: Provide the search term. locale: Use the locale parameter (default en_US ) to convert category names to the user's language. • [Posts](https://docs.klipy.com/migrate-from-tenor/posts.md): Retrieve specific GIFs, stickers, or a combination of both by providing their IDs. Best practices Authentication: Provide your API key to identify your integration. Efficiency: Use media_filter to limit return formats, which can reduce the Response Object size by over 70%. • [Response Objects](https://docs.klipy.com/migrate-from-tenor/response-objects.md): This page details the various JSON response and error objects used by the KLIPY API. • [Response Object](https://docs.klipy.com/migrate-from-tenor/response-objects/response-object.md): The following table details the properties for Response Objects: Properties created float A Unix timestamp that represents when this post was created. hasaudio boolean Returns true if this post contains audio. id string KLIPY result identifier. media_formats { CONTENT_FORMAT : MEDIA_OBJECT } A dictionary with a content format as the key and a Media Object as the value. tags string[] An array of tags for the post. title string The title of the post. content_description string A textual description of the content. We recommend that you use content_description for user accessibility features. itemurl string The full URL to view the post on Klipy.com . hascaption boolean Returns true if this post contains captions. flags string Comma-separated list to signify whether the content is a sticker or static image, has audio, or is any combination of these. If sticker and static aren't present, then the content is a GIF. A blank flags field signifies a GIF without audio. bg_color string The most common background pixel color of the content. url string A short URL to view the post on Klipy.com . • [Category Object](https://docs.klipy.com/migrate-from-tenor/response-objects/category-object.md): The following table details the properties for Category Objects: Properties searchterm string The search term that corresponds to the category. The search term is translated to match the locale of the corresponding request. path string The search URL to request if the user selects the category. image string A URL to the media source for the category's example GIF. name string Category name to overlay over the image. The name is translated to match the locale of the corresponding request. • [Media Object](https://docs.klipy.com/migrate-from-tenor/response-objects/media-object.md): The following table details the properties for Media Objects: Properties url string A URL to the media source. dims int[] Width and height of the media in pixels. duration float Represents the time in seconds for one loop of the content. If the content is static, the duration is set to 0 . size int Size of the file in bytes. • [Content Formats](https://docs.klipy.com/migrate-from-tenor/response-objects/content-formats.md): The KLIPY API provides five base media formats in various sizes: GIF: Plays on a continuous loop. MP4 & WebM: Plays the clip once (except loopedmp4 , which repeats several times). Transparent WebP & Transparent GIF: Exclusively for sticker content; these are not available in GIF search results. Format Types The following table details the media format types available for KLIPY: Format Types preview Resolution and size: High quality single frame GIF format; smaller in size than the GIF format. Dimensions: Original upload dimensions (no limits). Usage notes: Make this the first frame of the content. It's intended for use as a thumbnail preview. This format is supported for GIFs and stickers. gif Resolution and size: High-quality GIF format; largest file size available. Dimensions: Original upload dimensions (no limits). Usage notes: Use this size for GIF shares on desktop. This format is supported for GIFs and stickers. mediumgif Resolution and size: Small reduction in size of the GIF format. Dimensions: Original upload dimensions (no limits), but with a much higher compression rate. Usage notes: Use this size for GIF previews on desktop. This format is supported for GIFs and stickers. tinygif Resolution and size: Reduced size of the GIF format. Dimensions: Up to 220 pixels wide. Height scaled to preserve the aspect ratio. Usage notes: Use this size for GIF previews and shares on mobile. This format is supported for GIFs and stickers. nanogif Resolution and size: Smallest size of the GIF format. Dimensions: Up to 90 pixels tall. Width scaled to preserve the aspect ratio. Usage notes: Use this size for GIF previews on mobile. This format is supported for GIFs and stickers. mp4 Resolution and size: Highest quality video format; largest of the video formats, but smaller than GIF. Dimensions: Similar to GIF but padded to fit video container specifications, which are usually 8-pixel increments. Usage notes: Use this size for MP4 previews and shares on desktop. This format is supported for GIFs and stickers. loopedmp4 Resolution and size: Highest quality video format; larger in size than MP4. Dimensions: Similar to GIF but padded to fit video container specifications, which are usually 8-pixel increments. Usage notes: Use this size for MP4 shares when you want the video clip to run a few times rather than only once. This format is supported for GIFs and stickers. tinymp4 Resolution and size: Reduced size of the MP4 format. Dimensions: Variable width and height, with a maximum bounding box of 320 x 320 pixels. Usage notes: Use this size for MP4 previews and shares on mobile. This format is supported for GIFs and stickers. nanomp4 Resolution and size: Smallest size of the MP4 format. Dimensions: Variable width and height, with a maximum bounding box of 150 x 150 pixels. Usage notes: Use this size for MP4 previews on mobile. This format is supported for GIFs and stickers. webm Resolution and size: Lower quality video format; smaller in size than MP4. Dimensions: Similar to GIF but padded to fit video container specifications, which are usually 8-pixel increments. Usage notes: Use this size for WebM previews and shares on desktop. This format is supported for GIFs and stickers. tinywebm Resolution and size: Reduced size of the WebM format. Dimensions: Variable width and height, with a maximum bounding box of 320 x 320 pixels. Usage notes: Use this size for GIF shares on mobile. This format is supported for GIFs and stickers. nanowebm Resolution and size: Smallest size of the WebM format. Dimensions: Variable width and height, with a maximum bounding box of 150 x 150 pixels. Usage notes: Use this size for GIF previews on mobile. This format is supported for GIFs and stickers. webp_transparent Resolution and size: High-quality WebP sticker format; largest file size available. Dimensions: Original upload dimensions (no limits). Usage notes: Use this size for sticker shares for high-bandwidth users. This format is supported for stickers. tinywebp_transparent Resolution and size: Reduced size of the WebP sticker format; maximum size of 500 KB. Dimensions: Up to 220 x 220 pixels, height scaled to preserve the aspect ratio. Usage notes: Use this size for sticker previews for high-bandwidth users and shares for low-bandwidth users. This format is supported for stickers. nanowebp_transparent Resolution and size: Smallest size of the WebP sticker format; maximum size of 100 KB. Dimensions: Up to 90 x 90 pixels, with the width scaled to preserve the aspect ratio. Usage notes: Use this size for sticker previews for low-bandwidth users. This format is supported for stickers. gif_transparent Resolution and size: High-quality GIF sticker format; largest file size available. Dimensions: Original upload dimensions (no limits). Usage notes: Use this size for sticker shares for high-bandwidth users. This format is supported for stickers. tinygif_transparent Resolution and size: Reduced size of the GIF sticker format; maximum size of 500 KB. Dimensions: Up to 220 x 220 pixels, with the height scaled to preserve the aspect ratio. Usage notes: Use this size for sticker previews for high-bandwidth users and shares for low-bandwidth users. This format is supported for stickers. nanogif_transparent Resolution and size: Smallest size of the GIF sticker format; maximum size of 100 KB. Dimensions: Up to 90 x 90 pixels, with the width scaled to preserve the aspect ratio. Usage notes: Use this size for sticker previews for low-bandwidth users. This format is supported for stickers. Best Practices For mobile integrations, use nano or tiny formats for previews and tiny formats for sharing. It is a highly recommended practice to use the media_filter parameter to request only necessary formats, as this can reduce the API response size by 70%. Format Sizes File sizes vary based on the dimensions and length of each GIF. Treat the means and medians in the following table as general guidelines rather than fixed values. File Format Mean File Size (KB) Median File Size (KB) gif 3,356 956 mediumgif 2,548 574 tinygif 521 101 nanogif 175 56 mp4 207 91 loopedmp4 515 228 tinymp4 84 81 nanomp4 37 28 webm 76 61 tinywebm 57 45 nanowebm 35 25 webp_transparent 530 95 tinywebp_transparent 249 60 nanowebp_transparent 107 25 gif_transparent 643 35 tinygif_transparent 349 20 nanogif_transparent 116 10 Response codes The following table details the HTTP status codes for successful requests: HTTP Status Code 200 or 202 OK or accepted • [Localization](https://docs.klipy.com/migrate-from-tenor/localization.md): KLIPY supports localization across search , category , and autocomplete endpoints, offering region-specific content for many global languages. The search endpoint automatically localizes results based on the language of the provided query. For the category and autocomplete endpoints, use the locale parameter to retrieve localized data. The following table lists the supported languages for each endpoint. Language Supported Search Language Supported Category Translation Supported Autocomplete Language Albanian (sq) ✔ ✔ ✔ Arabic (ar) ✔ ✔ ✔ Belarusian (be) ✔ ✔ ✔ Bengali (bn) ✔ ✔ ✔ Bosnian (bs) ✔ ✔ ✘ Cantonese (zh_HK) ✔ ✔ ✔ Catalan (ca) ✔ ✔ ✔ Chinese - Simplified (zh_CN) ✔ ✔ ✔ Chinese - Traditional (zh_TW) ✔ ✔ ✔ Croatian (hr) ✔ ✔ ✔ Czech (cs) ✔ ✔ ✔ Danish (da) ✔ ✔ ✔ Dutch (nl) ✔ ✔ ✔ English (en) ✔ ✔ ✔ Farsi (fa) ✔ ✔ ✔ Filipino (fil) ✘ ✔ ✔ Finnish (fi) ✔ ✔ ✔ French (fr) ✔ ✔ ✔ German (de) ✔ ✔ ✔ Greek (el) ✔ ✔ ✔ Hebrew (he) * ✔ ✔ ✔ Hindi (hi) ✔ ✔ ✔ Hungarian (hu) ✔ ✔ ✔ Indonesian (id) † ✔ ✔ ✔ Italian (it) ✔ ✔ ✔ Japanese (ja) ✔ ✔ ✔ Korean (ko) ✔ ✔ ✔ Laos (lo) ✔ ✔ ✘ Malay (ms) ✔ ✔ ✔ Mongolian (mn) ✔ ✔ ✘ Norwegian Bokmal (no) ✔ ✔ ✔ Norwegian Nynorsk (nn) ✔ ✘ ✔ Polish (pl) ✔ ✔ ✔ Portuguese (pt) ✔ ✔ ✔ Romanian (ro) ✔ ✔ ✔ Russian (ru) ✔ ✔ ✔ Serbian (sr) ✔ ✔ ✘ Slovak (sk) ✔ ✔ ✔ Spanish (es) ✔ ✔ ✔ Swedish (sv) ✔ ✔ ✔ Tagalog (tl) ✔ ✘ ✘ Thai (th) ✔ ✔ ✔ Turkish (tr) ✔ ✔ ✔ Ukrainian (uk) ✔ ✔ ✔ Urdu (ur) ✔ ✔ ✔ Vietnamese (vi) ✔ ✔ ✔ • [Content Filtering](https://docs.klipy.com/migrate-from-tenor/content-filtering.md): KLIPY provides content filtering tools that allow developers to control the types of media shown to users based on MPA-style ratings. These filters help ensure a safe and family-friendly user experience by excluding sensitive material such as explicit nudity, violence, or substance use. You can configure filters globally or by country using the Partner Panel. If you come across content that should be filtered but isn’t, please contact us at support@klipy.com so we can review and address it promptly. Filter Categories: In the tables below, you'll find what types of content are allowed for each ContentFilter option Profanity Violence Sexual content Substance use Miscellaneous