Tenor
| Tenor | |
Tenor's homepage, picturing GIFs of memes. | |
| URL | https://tenor.com/ |
| Status | Endangered (website) Closing (API) |
| Archiving status | Upcoming...[1] |
| Archiving type | DPoS |
| IRC channel | #losttenure (on hackint) |
| Language(s) | English, Multilingual |
Tenor (originally Riffsy)[2] is a GIF sharing site that was acquired by Google in 2018.[3] Its API is notably used by Discord and Twitter.
API
The current API is hosted on https://tenor.googleapis.com/v2/, and endpoints are documented at https://developers.google.com/tenor/guides/endpoints[IA•Wcite•.today].
Using the API requires an API key from the Google Cloud Console; key generation was disabled on 2026-01-13.[4]
Shutdown
Google announced through e-mail and Tenor's FAQ page that the Tenor API will be "decommissioned" and throw errors on 2026-06-30.[4]
Website
GIFs can be browsed on https://tenor.com[IA•Wcite•.today], which hotlinks media from media1.tenor.com for GIFs and media.tenor.com for MP4s, previews, and "stickers".
Discovery
Tenor has the homepage, GIF pages, user pages, and search pages. These all display "suggested GIFs", and the first batch of JSON is inside the HTML as <script id="store-cache" type="text/x-cache" nonce="">.
- On the homepage,
store-cache.gifs.featured.resultsis an array with metadata for max 50 GIFs. - On GIF pages,
store-cache.gifs.byId.<id>.results[0]is the GIF's own metadata andstore-cache.gifs.related.<id>.resultsis an array with metadata of max 20 GIFs. - On user pages,
store-cache.{gifs,memes,stickers}.searchByUsername.<username>-<type>-profile-public.resultsare all arrays with metadata for max 50 GIFs. - On search pages,
store-cache.universal.search.<query>-low-all.resultsis an array with metadata for max 50 GIFs.
GIF metadata includes "tags", which can be used in search to discover more GIFs. For non-GIF pages, Tenor fetches more GIFs using the API after the batch has been scrolled past.
Media
Tenor appears to host media on at least three subdomains, which take a media ID and a filename (changing the filename gives the same media and does not change the format). These are:
media1.tenor.com. The second directory is the media's ID, e.g.https://media1.tenor.com/m/DEBMsntBV9gAAAAC/umi-miho-gxg-meme-construction-umi-miho.gif.- In browsers, media1.tenor.com URLs return HTML instead of the media. This does not happen if the requested filename ends in .mp4 or .webm.
media.tenor.com. Lacks the /m/ of media1.tenor.com, e.g.https://media.tenor.com/DEBMsntBV9gAAAAC/umi-miho-gxg-meme-construction-umi-miho.gif.c.tenor.com. Seen in media1.tenor.com's HTML pages, where it uses the filename "tenor.gif", e.g.https://c.tenor.com/DEBMsntBV9gAAAAC/tenor.gif.
Observed media IDs end in AAAXX, where "XX" are letters corresponding to the desired media format type[IA•Wcite•.today]. These are:
AD: "preview" type, .pngAe: "gifpreview" type, .png (the API returns the gifpreview URL ending in .png even though it is actually a GIF)AC: "gif" type, .gifAd: "mediumgif" type, .gifAM: "tinygif" type, .gifAS: "nanogif" type, .gifPo: "mp4" type, .mp4Pw: "loopedmp4" type, .mp4P1: "tinymp4" type, .mp4P2: "nanomp4" type, .mp4Ps: "webm" type, .webmP3: "tinywebm" type, .webmP4: "nanowebm" type, .webmAx: "webp" type, .webpA1: "tinywebp" type, .webpA2: "nanowebp" type, .webpA3: "tinywebppreview" type, .webpA4: "nanowebppreview" type, .webpA5: "webppreview" type, .webpAl: "webp_transparent" type, .webp, stickers onlyAm: "tinywebp_transparent" type, .webp, stickers onlyAn: "nanowebp_transparent" type, .webp, stickers onlyAt: "webppreview_transparent" type, .webp, stickers onlyAu: "tinywebppreview_transparent" type, .webp, stickers onlyAv: "nanowebppreview_transparent" type, .webp, stickers onlyAi: "gif_transparent" type, .gif, stickers onlyAj: "tinygif_transparent" type, .gif, stickers onlyAk: "nanogif_transparent" type, .gif, stickers only
Due to serving an HTML page, media1.tenor.com in the browser may give 200s that others do not: transparent types for non-stickers and nonexistent media with image types are examples of this.
References
- ↑ https://irclogs.archivete.am/archiveteam-bs/2026-01-14#lb60a6cf8[IA•Wcite•.today]
- ↑ https://techcrunch.com/2016/08/09/gif-keyboard-maker-riffsy-gets-a-new-name-tenor-and-opens-up-an-sdk/[IA•Wcite•.today]
- ↑ https://blog.tenor.com/google-acquires-tenor-77fdc1be737c
- ↑ 4.0 4.1 https://support.google.com/tenor/answer/10455265#whatll-happen-to-the-tenor-api&zippy=%2Cwhatll-happen-to-the-tenor-api[IA•Wcite•.today]