GIPHY
DESIGN · FILES & DOCS
GIF, sticker and emoji search, trending feeds, and uploads on their own key.
Acts as the person, not as itself
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Credentials never touch the agent
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Every call on the record
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
giphy_get_v1_channels_channel_idREADFetch one GIPHY channel's record by its numeric id -- the detail behind a `giphy_get_v1_channels_search` hit. ⚠ GIPHY publishes no Request Parameters block for this route. It is shipped on measurement: a real channel id answers 200 with that channel's record and an invented one answers 404 `Invalid Channel Slug: ...`, which is the positive discrimination the research could not make without a key.
giphy_get_v1_channels_searchREADSearch GIPHY's channels -- the accounts that publish content -- rather than the content itself.
giphy_get_v1_clips_searchREADSearch GIPHY Clips -- short video with sound, as opposed to silent GIFs. GIPHY gates the Clips endpoints behind a manual approval: its Clips documentation says "Access to Clips endpoints is only available upon approval. Please reach out to clips@giphy.com to request permission." Measured 2026-09-19 this key answers 403 Forbidden here while answering 200 on twenty other routes in the same minute, and a BOGUS key on this same path answers 401 -- so the 403 is the entitlement, not the credential. The tool ships because an approved account can call it.
giphy_get_v1_clips_trendingREADList the Clips trending on GIPHY's network. GIPHY gates the Clips endpoints behind a manual approval: its Clips documentation says "Access to Clips endpoints is only available upon approval. Please reach out to clips@giphy.com to request permission." Measured 2026-09-19 this key answers 403 Forbidden here while answering 200 on twenty other routes in the same minute, and a BOGUS key on this same path answers 401 -- so the 403 is the entitlement, not the credential. The tool ships because an approved account can call it.
giphy_get_v1_contentREADFetch several pieces of GIPHY content by comma-separated id, whatever their type. The generalised form of `giphy_get_v1_gifs`. Not in any research artifact -- GIPHY documents it on its Clips page.
giphy_get_v1_content_content_idREADFetch one piece of GIPHY content by id, whatever its type. The generalised form of `giphy_get_v1_gifs_gif_id`: it answers for GIFs, Stickers and Clips alike, and the response's `type` says which came back. Not in any research artifact -- GIPHY documents it on its Clips page.
giphy_get_v1_gifsREADFetch metadata for up to 100 GIFs in one call, by comma-separated id. The batch form of `giphy_get_v1_gifs_gif_id`.
giphy_get_v1_gifs_categoriesREADList GIPHY's GIF categories and their subcategories -- the browse tree behind the apps, not a search.
giphy_get_v1_gifs_gif_idREADFetch a single GIF's metadata by its GIPHY id. ⚠ The id is an opaque STRING (`zcLcgT7NKQAFy`), not a number: the research ledger types this parameter as `integer/int32`, which is wrong and would answer 422 for every real id before GIPHY was contacted (measured 2026-09-19 -- the string id answers 200). When rating is supplied and the GIF exceeds it, GIPHY answers an empty data member with a 4xx code in the meta object rather than an HTTP error.
giphy_get_v1_gifs_randomREADReturn a single random GIF, optionally narrowed by tag. Two calls with the same arguments legitimately return different objects; that is the endpoint working.
giphy_get_v1_gifs_searchREADSearch GIPHY's GIF library by word or phrase. ⚠ GIPHY's integration guidelines ask that search results be shown in the order returned and not reordered, filtered, or mixed with another provider's content.
giphy_get_v1_gifs_search_tagsREADComplete a partial tag into valid GIPHY search terms. This is the autocomplete behind a search box; it returns terms, not GIFs.
giphy_get_v1_gifs_translateREADTurn a word or phrase into the single best-matching GIF using GIPHY's translate algorithm. Returns ONE object rather than a list -- reach for search when you want a set to choose from.
giphy_get_v1_gifs_trendingREADList the GIFs GIPHY is currently featuring, newest and most engaging first. The feed is continuously updated, so two calls a minute apart legitimately differ. ⚠ GIPHY's integration guidelines ask that trending results be shown in the order returned and not reordered, filtered, or mixed with another provider's content.
giphy_get_v1_randomidREADMint a random, non-identifying id to use as `customer_id` on every other tool. GIPHY uses that value to personalise a single end user's results without being told who they are; use one id per end user, consistently.
giphy_get_v1_stickers_packsREADList GIPHY's curated sticker packs -- the grouping above individual stickers. ⚠ GIPHY publishes no Request Parameters block for this route; `limit` is shipped because it was observed to change the answer.
giphy_get_v1_stickers_randomREADReturn a single random Sticker, optionally narrowed by tag. Two calls with the same arguments legitimately return different objects; that is the endpoint working.
giphy_get_v1_stickers_searchREADSearch GIPHY's Sticker library by word or phrase. ⚠ GIPHY's integration guidelines ask that search results be shown in the order returned and not reordered, filtered, or mixed with another provider's content.
giphy_get_v1_stickers_translateREADTurn a word or phrase into the single best-matching Sticker using GIPHY's translate algorithm. Returns ONE object rather than a list -- reach for search when you want a set to choose from.
giphy_get_v1_stickers_trendingREADList the Stickers GIPHY is currently featuring, newest and most engaging first. The feed is continuously updated, so two calls a minute apart legitimately differ. ⚠ GIPHY's integration guidelines ask that trending results be shown in the order returned and not reordered, filtered, or mixed with another provider's content.
giphy_get_v1_tags_related_termREADList the tag terms GIPHY relates to the one given -- query expansion rather than completion, so it answers 'what else would this user mean' instead of 'how does this word end'.
giphy_get_v1_text_searchREADSearch GIPHY's animated-text content. ⚠ GIPHY publishes no Request Parameters block for this route -- its documentation says animated text is "available exclusively on the GIPHY SDK" -- so `q` and `limit` are shipped because each was observed to change the answer, and nothing else is offered.
giphy_get_v1_trending_searchesREADList the search terms most popular on GIPHY's network right now. Returns a plain array of strings.
giphy_get_v1_videos_searchREADSearch GIPHY's video content. Returns objects whose `type` is `video`, the same shape the Clips endpoints return -- and unlike `giphy_get_v1_clips_search` this route is NOT behind GIPHY's Clips approval: measured 2026-09-19 it answers 200 on the same key that gets 403 from /v1/clips/search. ⚠ GIPHY publishes no Request Parameters block for this route; `q` and `limit` are shipped because each was observed to change the answer.
giphy_get_v2_emojiREADList GIPHY's animated emoji library. An object whose `variation_count` is greater than 0 has stylings or skin tones, fetched with `giphy_get_v2_emoji_gif_id_variations`. Note the v2 prefix: this is the one family on this API that is not under /v1.
giphy_get_v2_emoji_gif_id_variationsREADList the stylings and skin-tone variations of one GIPHY emoji. Only worth calling when that emoji's `variation_count` is greater than 0.
giphy_post_v1_gifs_uploadWRITEUpload content to GIPHY.com from a URL. ⚠ THIS IS A PUBLISHING ACTION on a public service and it is served by a DIFFERENT HOST (upload.giphy.com); the api host answers 404 for it. Only the `source_image_url` form is offered: GIPHY also accepts a binary multipart `file`, which cannot survive the MCP argument hop, so an upload here must name a URL GIPHY can fetch. ⚠ A rate-limited beta key cannot attach a GIPHY channel `username` and is capped at 10 uploads per day; both limits are lifted by a production key approved from the dashboard.
Often connected alongside
Put GIPHY behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.