Giphy

GIF search and sharing API

developers.giphy.com/docs/api ↗
Version
1.0
OpenAPI
3.0.0
Endpoints
10
Schemas
15
Updated
3 days ago
Media media gifs search
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.giphy.com/v1

Authentication

apiKey

Endpoints

Clear filters

Gifs 6 endpoints

GET /gifs

A multiget version of the get GIF by ID endpoint.

operationId: Gifs_getByIds

Parameters

Name In Required Type Description
optional

Responses

200
400
403
404
429
GET /gifs
GET /gifs/random

Returns a random GIF, limited by tag. Excluding the tag parameter will return a random GIF from the GIPHY catalog.

operationId: Gifs_getRandomGif

Parameters

Name In Required Type Description
optional
optional

Responses

200
400
403
404
429
GET /gifs/random
GET /gifs/search

Search all GIPHY GIFs for a word or phrase. Punctuation will be stripped and ignored. Use a plus or url encode for phrases. Example paul+rudd, ryan+gosling or american+psycho.

operationId: Gifs_searchGifs

Parameters

Name In Required Type Description
optional
optional
optional
optional
optional

Responses

200 Search results
400
403
404
429
GET /gifs/search
GET /gifs/translate

The translate API draws on search, but uses the GIPHY `special sauce` to handle translating from one vocabulary to another. In this case, words and phrases to GIF

operationId: Gifs_translatePhraseGif

Parameters

Name In Required Type Description
optional

Responses

200
400
403
404
429
GET /gifs/translate
GET /gifs/trending

Fetch GIFs currently trending online. Hand curated by the GIPHY editorial team. The data returned mirrors the GIFs showcased on the GIPHY homepage. Returns 25 results by default.

operationId: Gifs_getTrendingGifs

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200
400
403
404
429
GET /gifs/trending
GET /gifs/{gifId}

Returns a GIF given that GIF's unique ID

operationId: Gifs_getById

Parameters

Name In Required Type Description
optional

Responses

200
400
403
404
429
GET /gifs/{gifId}

Stickers 4 endpoints

GET /stickers/random

Returns a random GIF, limited by tag. Excluding the tag parameter will return a random GIF from the GIPHY catalog.

operationId: Stickers_getRandom

Parameters

Name In Required Type Description
optional
optional

Responses

200
400
403
404
429
GET /stickers/random
GET /stickers/search

Replicates the functionality and requirements of the classic GIPHY search, but returns animated stickers rather than GIFs.

operationId: Stickers_findAnimatedStickers

Parameters

Name In Required Type Description
optional
optional
optional
optional
optional

Responses

200 Search results
400
403
404
429
GET /stickers/search
GET /stickers/translate

The translate API draws on search, but uses the GIPHY `special sauce` to handle translating from one vocabulary to another. In this case, words and phrases to GIFs.

operationId: Stickers_translatePhraseToSticker

Parameters

Name In Required Type Description
optional

Responses

200
400
403
404
429
GET /stickers/translate
GET /stickers/trending

Fetch Stickers currently trending online. Hand curated by the GIPHY editorial team. Returns 25 results by default.

operationId: Stickers_getTrending

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200
400
403
404
429
GET /stickers/trending

Schemas

object Gif
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "YsTs5ltWtEhnq",
      "description": "This GIF's unique ID"
    },
    "url": {
      "type": "string",
      "example": "http://giphy.com/gifs/confused-flying-YsTs5ltWtEhnq",
      "description": "The unique URL for this GIF"
    },
    "slug": {
      "type": "string",
      "example": "confused-flying-YsTs5ltWtEhnq",
      "description": "The unique slug used in this GIF's URL"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "Tag name"
      },
      "description": "An array of tags for this GIF (Note: Not available when using the Public Beta Key)\n"
    },
    "type": {
      "enum": [
        "gif"
      ],
      "type": "string",
      "default": "gif",
      "description": "Type of the gif. By default, this is almost always gif"
    },
    "user": {
      "$ref": "#/components/schemas/User"
    },
    "images": {
      "type": "object",
      "properties": {
        "looping": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding a version of this GIF set to loop for 15 seconds."
            }
          ]
        },
        "preview": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding a version of this GIF in .MP4 format limited to 50kb that displays the first 1-2 seconds of the GIF."
            }
          ]
        },
        "original": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding the original version of this GIF. Good for desktop use."
            }
          ]
        },
        "downsized": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding a version of this GIF downsized to be under 2mb."
            }
          ]
        },
        "fixed_width": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding versions of this GIF with a fixed width of 200 pixels. Good for mobile use."
            }
          ]
        },
        "preview_gif": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding a version of this GIF limited to 50kb that displays the first 1-2 seconds of the GIF."
            }
          ]
        },
        "fixed_height": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding versions of this GIF with a fixed height of 200 pixels. Good for mobile use."
            }
          ]
        },
        "original_still": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding a static preview image of the original GIF."
            }
          ]
        },
        "downsized_large": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding a version of this GIF downsized to be under 8mb."
            }
          ]
        },
        "downsized_small": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding a version of this GIF downsized to be under 200kb."
            }
          ]
        },
        "downsized_still": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding a static preview image of the downsized version of this GIF."
            }
          ]
        },
        "downsized_medium": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding a version of this GIF downsized to be under 5mb."
            }
          ]
        },
        "fixed_width_small": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding versions of this GIF with a fixed width of 100 pixels. Good for mobile keyboards."
            }
          ]
        },
        "fixed_width_still": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding a static image of this GIF with a fixed width of 200 pixels."
            }
          ]
        },
        "fixed_height_small": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding versions of this GIF with a fixed height of 100 pixels. Good for mobile keyboards."
            }
          ]
        },
        "fixed_height_still": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding a static image of this GIF with a fixed height of 200 pixels."
            }
          ]
        },
        "fixed_width_downsampled": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding versions of this GIF with a fixed width of 200 pixels and the number of frames reduced to 6."
            }
          ]
        },
        "fixed_width_small_still": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding a static image of this GIF with a fixed width of 100 pixels."
            }
          ]
        },
        "fixed_height_downsampled": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding versions of this GIF with a fixed height of 200 pixels and the number of frames reduced to 6."
            }
          ]
        },
        "fixed_height_small_still": {
          "allOf": [
            {
              "$ref": "#/components/schemas/Image"
            },
            {
              "description": "Data surrounding a static image of this GIF with a fixed height of 100 pixels."
            }
          ]
        }
      },
      "description": "An object containing data for various available formats and sizes of this GIF."
    },
    "rating": {
      "type": "string",
      "example": "g",
      "description": "The MPAA-style rating for this content. Examples include Y, G, PG, PG-13 and R"
    },
    "source": {
      "type": "string",
      "example": "http://www.reddit.com/r/reactiongifs/comments/1xpyaa/superman_goes_to_hollywood/",
      "description": "The page on which this GIF was found"
    },
    "username": {
      "type": "string",
      "example": "JoeCool4000",
      "description": "The username this GIF is attached to, if applicable"
    },
    "bitly_url": {
      "type": "string",
      "example": "http://gph.is/1gsWDcL",
      "description": "The unique bit.ly URL for this GIF"
    },
    "embded_url": {
      "type": "string",
      "example": "http://giphy.com/embed/YsTs5ltWtEhnq",
      "description": "A URL used for embedding this GIF"
    },
    "source_tld": {
      "type": "string",
      "example": "cheezburger.com",
      "description": "The top level domain of the source URL."
    },
    "content_url": {
      "type": "string",
      "description": "Currently unused"
    },
    "featured_tags": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "Tag name"
      },
      "description": "An array of featured tags for this GIF (Note: Not available when using the Public Beta Key)\n"
    },
    "create_datetime": {
      "type": "string",
      "format": "date-time",
      "example": "2013-08-01T12:41:48.000Z",
      "description": "The date this GIF was added to the GIPHY database."
    },
    "import_datetime": {
      "type": "string",
      "format": "date-time",
      "example": "2013-08-01T12:41:48.000Z",
      "description": "The creation or upload date from this GIF's source."
    },
    "source_post_url": {
      "type": "string",
      "example": "http://cheezburger.com/5282328320",
      "description": "The URL of the webpage on which this GIF was found."
    },
    "update_datetime": {
      "type": "string",
      "format": "date-time",
      "example": "2013-08-01T12:41:48.000Z",
      "description": "The date on which this GIF was last updated."
    },
    "trending_datetime": {
      "type": "string",
      "format": "date-time",
      "example": "2013-08-01T12:41:48.000Z",
      "description": "The date on which this gif was marked trending, if applicable."
    }
  }
}
object GifsGetByIdResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Gif"
    },
    "meta": {
      "$ref": "#/components/schemas/Meta"
    }
  }
}
object GifsGetByIdsResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Gif"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/Meta"
    },
    "pagination": {
      "$ref": "#/components/schemas/Pagination"
    }
  }
}
object GifsGetRandomGifResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Gif"
    },
    "meta": {
      "$ref": "#/components/schemas/Meta"
    }
  }
}
object GifsGetTrendingGifsResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Gif"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/Meta"
    },
    "pagination": {
      "$ref": "#/components/schemas/Pagination"
    }
  }
}
object GifsSearchGifsResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Gif"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/Meta"
    },
    "pagination": {
      "$ref": "#/components/schemas/Pagination"
    }
  }
}
object GifsTranslatePhraseGifResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Gif"
    },
    "meta": {
      "$ref": "#/components/schemas/Meta"
    }
  }
}
object Image
{
  "type": "object",
  "properties": {
    "mp4": {
      "type": "string",
      "example": "https://media1.giphy.com/media/cZ7rmKfFYOvYI/giphy.mp4",
      "description": "The URL for this GIF in .MP4 format."
    },
    "url": {
      "type": "string",
      "example": "https://media1.giphy.com/media/cZ7rmKfFYOvYI/200.gif",
      "description": "The publicly-accessible direct URL for this GIF."
    },
    "size": {
      "type": "string",
      "example": "32381",
      "description": "The size of this GIF in bytes."
    },
    "webp": {
      "type": "string",
      "example": "https://media1.giphy.com/media/cZ7rmKfFYOvYI/giphy.webp",
      "description": "The URL for this GIF in .webp format."
    },
    "width": {
      "type": "string",
      "example": "320",
      "description": "The width of this GIF in pixels."
    },
    "frames": {
      "type": "string",
      "example": "15",
      "description": "The number of frames in this GIF."
    },
    "height": {
      "type": "string",
      "example": "200",
      "description": "The height of this GIF in pixels."
    },
    "mp4_size": {
      "type": "string",
      "example": "25123",
      "description": "The size in bytes of the .MP4 file corresponding to this GIF."
    },
    "webp_size": {
      "type": "string",
      "example": "12321",
      "description": "The size in bytes of the .webp file corresponding to this GIF."
    }
  }
}
object Meta
{
  "type": "object",
  "properties": {
    "msg": {
      "type": "string",
      "example": "OK",
      "description": "HTTP Response Message"
    },
    "status": {
      "type": "integer",
      "format": "int32",
      "example": 200,
      "description": "HTTP Response Code"
    },
    "response_id": {
      "type": "string",
      "example": "57eea03c72381f86e05c35d2",
      "description": "A unique ID paired with this response from the API."
    }
  },
  "description": "The Meta Object contains basic information regarding the request, whether it was successful, and the response given by the API.  Check `responses` to see a description of types of response codes the API might give you under different cirumstances.\n"
}
object Pagination
{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "format": "int32",
      "example": 25,
      "description": "Total number of items returned."
    },
    "offset": {
      "type": "integer",
      "format": "int32",
      "example": 75,
      "description": "Position in pagination."
    },
    "total_count": {
      "type": "integer",
      "format": "int32",
      "example": 250,
      "description": "Total number of items available."
    }
  },
  "description": "The Pagination Object contains information relating to the number of total results available as well as the number of results fetched and their relative positions.\n"
}
object StickersFindAnimatedStickersResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Gif"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/Meta"
    },
    "pagination": {
      "$ref": "#/components/schemas/Pagination"
    }
  }
}
object StickersGetRandomResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Gif"
    },
    "meta": {
      "$ref": "#/components/schemas/Meta"
    }
  }
}
object StickersGetTrendingResponse
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Gif"
      }
    },
    "meta": {
      "$ref": "#/components/schemas/Meta"
    },
    "pagination": {
      "$ref": "#/components/schemas/Pagination"
    }
  }
}
object StickersTranslatePhraseToStickerResponse
{
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/Gif"
    },
    "meta": {
      "$ref": "#/components/schemas/Meta"
    }
  }
}
object User
{
  "type": "object",
  "properties": {
    "twitter": {
      "type": "string",
      "example": "@joecool4000",
      "description": "The Twitter username associated with this user, if applicable."
    },
    "username": {
      "type": "string",
      "example": "joecool4000",
      "description": "The username associated with this user."
    },
    "avatar_url": {
      "type": "string",
      "example": "https://media1.giphy.com/avatars/election2016/XwYrZi5H87o6.gif",
      "description": "The URL for this user's avatar image."
    },
    "banner_url": {
      "type": "string",
      "example": "https://media4.giphy.com/avatars/cheezburger/XkuejOhoGLE6.jpg",
      "description": "The URL for the banner image that appears atop this user's profile page."
    },
    "profile_url": {
      "type": "string",
      "example": "https://giphy.com/cheezburger/",
      "description": "The URL for this user's profile."
    },
    "display_name": {
      "type": "string",
      "example": "JoeCool4000",
      "description": "The display name associated with this user (contains formatting the base username might not)."
    }
  },
  "description": "The User Object contains information about the user associated with a GIF and URLs to assets such as that user's avatar image, profile, and more."
}