swagger: '2.0'
schemes:
  - https
host: api.giphy.com
basePath: /v1
info:
  contact:
    email: support@giphy.com
  description: Giphy API phantom change
  termsOfService: 'https://developers.giphy.com/'
  title: Giphy
  version: '1.0'
externalDocs:
  description: Giphy Documentation
  url: 'https://developers.giphy.com/docs/'
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  api_key:
    in: query
    name: api_key
    type: apiKey
security:
  - api_key: []
parameters:
  gifId:
    description: Filters results by specified GIF ID.
    format: int32
    in: path
    name: gifId
    required: true
    type: integer
  gifIds:
    description: 'Filters results by specified GIF IDs, separated by commas.'
    in: query
    name: ids
    type: string
  lang:
    description: Specify default language for regional content; use a 2-letter ISO 639-1 language code.
    in: query
    name: lang
    type: string
  limit:
    default: 25
    description: The maximum number of records to return.
    format: int32
    in: query
    name: limit
    type: integer
  offset:
    default: 0
    description: An optional results offset.
    format: int32
    in: query
    name: offset
    type: integer
  query:
    description: Search query term or prhase.
    in: query
    name: q
    required: true
    type: string
  rating:
    description: Filters results by specified rating.
    in: query
    name: rating
    type: string
  tag:
    description: Filters results by specified tag.
    in: query
    name: tag
    type: string
  term:
    description: Search term.
    in: query
    name: s
    required: true
    type: string
responses:
  BadRequest:
    description: Your request was formatted incorrectly or missing required parameters.
  Forbidden:
    description: "You weren't authorized to make your request; most likely this indicates an issue with your API Key."
  NotFound:
    description: 'The particular GIF you are requesting was not found. This occurs, for example, if you request a GIF by an id that does not exist.'
  TooManyRequests:
    description: |
      Your API Key is making too many requests. Read about [requesting a Production Key](https://developers.giphy.com/docs/#access) to upgrade your API Key rate limits.
tags:
  - name: gifs
  - name: stickers
paths:
  /gifs:
    get:
      description: |
        A multiget version of the get GIF by ID endpoint.
      operationId: getGifsById
      parameters:
        - $ref: '#/parameters/gifIds'
      responses:
        '200':
          description: ''
          schema:
            properties:
              data:
                items:
                  $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data'
                type: array
              meta:
                type: object
                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.
                properties:
                  msg:
                    description: HTTP Response Message
                    example: OK
                    type: string
                  response_id:
                    description: A unique ID paired with this response from the API.
                    example: 57eea03c72381f86e05c35d2
                    type: string
                  status:
                    description: HTTP Response Code
                    example: 200
                    format: int32
                    type: integer
              pagination:
                type: object
                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.
                properties:
                  count:
                    description: Total number of items returned.
                    example: 25
                    format: int32
                    type: integer
                  offset:
                    description: Position in pagination.
                    example: 75
                    format: int32
                    type: integer
                  total_count:
                    description: Total number of items available.
                    example: 250
                    format: int32
                    type: integer
            type: object
        '400':
          $ref: '#/responses/BadRequest'
        '403':
          $ref: '#/responses/Forbidden'
        '404':
          $ref: '#/responses/NotFound'
        '429':
          $ref: '#/responses/TooManyRequests'
      summary: Get GIFs by ID
      tags:
        - gifs
  /gifs/random:
    get:
      description: |
        Returns a random GIF, limited by tag. Excluding the tag parameter will return a random GIF from the GIPHY catalog.
      operationId: randomGif
      parameters:
        - $ref: '#/parameters/tag'
        - $ref: '#/parameters/rating'
      responses:
        '200':
          description: ''
          schema:
            properties:
              data:
                type: object
                properties:
                  bitly_url:
                    description: The unique bit.ly URL for this GIF
                    example: 'http://gph.is/1gsWDcL'
                    type: string
                  content_url:
                    description: Currently unused
                    type: string
                  create_datetime:
                    description: The date this GIF was added to the GIPHY database.
                    example: '2013-08-01 12:41:48'
                    format: date-time
                    type: string
                  embded_url:
                    description: A URL used for embedding this GIF
                    example: 'http://giphy.com/embed/YsTs5ltWtEhnq'
                    type: string
                  featured_tags:
                    description: |
                      An array of featured tags for this GIF (Note: Not available when using the Public Beta Key)
                    items:
                      description: Tag name
                      type: string
                    type: array
                  id:
                    description: "This GIF's unique ID"
                    example: YsTs5ltWtEhnq
                    type: string
                  images:
                    description: An object containing data for various available formats and sizes of this GIF.
                    properties:
                      downsized:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding a version of this GIF downsized to be under 2mb.
                      downsized_large:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding a version of this GIF downsized to be under 8mb.
                      downsized_medium:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding a version of this GIF downsized to be under 5mb.
                      downsized_small:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding a version of this GIF downsized to be under 200kb.
                      downsized_still:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding a static preview image of the downsized version of this GIF.
                      fixed_height:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding versions of this GIF with a fixed height of 200 pixels. Good for mobile use.
                      fixed_height_downsampled:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - 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:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding versions of this GIF with a fixed height of 100 pixels. Good for mobile keyboards.
                      fixed_height_small_still:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding a static image of this GIF with a fixed height of 100 pixels.
                      fixed_height_still:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding a static image of this GIF with a fixed height of 200 pixels.
                      fixed_width:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding versions of this GIF with a fixed width of 200 pixels. Good for mobile use.
                      fixed_width_downsampled:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - 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:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding versions of this GIF with a fixed width of 100 pixels. Good for mobile keyboards.
                      fixed_width_small_still:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding a static image of this GIF with a fixed width of 100 pixels.
                      fixed_width_still:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding a static image of this GIF with a fixed width of 200 pixels.
                      looping:
                        allOf:
                          - type: object
                            properties:
                              frames:
                                description: The number of frames in this GIF.
                                example: '15'
                                type: string
                              height:
                                description: The height of this GIF in pixels.
                                example: '200'
                                type: string
                              mp4:
                                description: The URL for this GIF in .MP4 format.
                                example: 'https://media1.giphy.com/media/cZ7rmKfFYOvYI/giphy.mp4'
                                type: string
                              mp4_size:
                                description: The size in bytes of the .MP4 file corresponding to this GIF.
                                example: '25123'
                                type: string
                              size:
                                description: The size of this GIF in bytes.
                                example: '32381'
                                type: string
                              url:
                                description: The publicly-accessible direct URL for this GIF.
                                example: 'https://media1.giphy.com/media/cZ7rmKfFYOvYI/200.gif'
                                type: string
                              webp:
                                description: The URL for this GIF in .webp format.
                                example: 'https://media1.giphy.com/media/cZ7rmKfFYOvYI/giphy.webp'
                                type: string
                              webp_size:
                                description: The size in bytes of the .webp file corresponding to this GIF.
                                example: '12321'
                                type: string
                              width:
                                description: The width of this GIF in pixels.
                                example: '320'
                                type: string
                          - description: Data surrounding a version of this GIF set to loop for 15 seconds.
                      original:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding the original version of this GIF. Good for desktop use.
                      original_still:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding a static preview image of the original GIF.
                      preview:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding a version of this GIF in .MP4 format limited to 50kb that displays the first 1-2 seconds of the GIF.
                      preview_gif:
                        allOf:
                          - $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data/properties/images/properties/looping/allOf/0'
                          - description: Data surrounding a version of this GIF limited to 50kb that displays the first 1-2 seconds of the GIF.
                    type: object
                  import_datetime:
                    description: "The creation or upload date from this GIF's source."
                    example: '2013-08-01 12:41:48'
                    format: date-time
                    type: string
                  rating:
                    description: 'The MPAA-style rating for this content. Examples include Y, G, PG, PG-13 and R'
                    example: g
                    type: string
                  slug:
                    description: "The unique slug used in this GIF's URL"
                    example: confused-flying-YsTs5ltWtEhnq
                    type: string
                  source:
                    description: The page on which this GIF was found
                    example: 'http://www.reddit.com/r/reactiongifs/comments/1xpyaa/superman_goes_to_hollywood/'
                    type: string
                  source_post_url:
                    description: The URL of the webpage on which this GIF was found.
                    example: 'http://cheezburger.com/5282328320'
                    type: string
                  source_tld:
                    description: The top level domain of the source URL.
                    example: cheezburger.com
                    type: string
                  tags:
                    description: |
                      An array of tags for this GIF (Note: Not available when using the Public Beta Key)
                    items:
                      description: Tag name
                      type: string
                    type: array
                  trending_datetime:
                    description: 'The date on which this gif was marked trending, if applicable.'
                    example: '2013-08-01 12:41:48'
                    format: date-time
                    type: string
                  type:
                    default: gif
                    description: 'Type of the gif. By default, this is almost always gif'
                    enum:
                      - gif
                    type: string
                  update_datetime:
                    description: The date on which this GIF was last updated.
                    example: '2013-08-01 12:41:48'
                    format: date-time
                    type: string
                  url:
                    description: The unique URL for this GIF
                    example: 'http://giphy.com/gifs/confused-flying-YsTs5ltWtEhnq'
                    type: string
                  user:
                    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."
                    type: object
                    properties:
                      avatar_url:
                        description: "The URL for this user's avatar image."
                        example: 'https://media1.giphy.com/avatars/election2016/XwYrZi5H87o6.gif'
                        type: string
                      banner_url:
                        description: "The URL for the banner image that appears atop this user's profile page."
                        example: 'https://media4.giphy.com/avatars/cheezburger/XkuejOhoGLE6.jpg'
                        type: string
                      display_name:
                        description: The display name associated with this user (contains formatting the base username might not).
                        example: JoeCool4000
                        type: string
                      profile_url:
                        description: "The URL for this user's profile."
                        example: 'https://giphy.com/cheezburger/'
                        type: string
                      twitter:
                        description: 'The Twitter username associated with this user, if applicable.'
                        example: '@joecool4000'
                        type: string
                      username:
                        description: The username associated with this user.
                        example: joecool4000
                        type: string
                  username:
                    description: 'The username this GIF is attached to, if applicable'
                    example: JoeCool4000
                    type: string
              meta:
                $ref: '#/paths/~1gifs/get/responses/200/schema/properties/meta'
            type: object
        '400':
          $ref: '#/responses/BadRequest'
        '403':
          $ref: '#/responses/Forbidden'
        '404':
          $ref: '#/responses/NotFound'
        '429':
          $ref: '#/responses/TooManyRequests'
      summary: Random GIF
      tags:
        - gifs
  /gifs/search:
    get:
      description: |
        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: searchGifs
      parameters:
        - $ref: '#/parameters/query'
        - $ref: '#/parameters/limit'
        - $ref: '#/parameters/offset'
        - $ref: '#/parameters/rating'
        - $ref: '#/parameters/lang'
      responses:
        '200':
          description: Search results
          schema:
            properties:
              data:
                items:
                  $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data'
                type: array
              meta:
                $ref: '#/paths/~1gifs/get/responses/200/schema/properties/meta'
              pagination:
                $ref: '#/paths/~1gifs/get/responses/200/schema/properties/pagination'
            type: object
        '400':
          $ref: '#/responses/BadRequest'
        '403':
          $ref: '#/responses/Forbidden'
        '404':
          $ref: '#/responses/NotFound'
        '429':
          $ref: '#/responses/TooManyRequests'
      summary: Search GIFs
      tags:
        - gifs
  /gifs/translate:
    get:
      description: |
        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: translateGif
      parameters:
        - $ref: '#/parameters/term'
      responses:
        '200':
          description: ''
          schema:
            properties:
              data:
                $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data'
              meta:
                $ref: '#/paths/~1gifs/get/responses/200/schema/properties/meta'
            type: object
        '400':
          $ref: '#/responses/BadRequest'
        '403':
          $ref: '#/responses/Forbidden'
        '404':
          $ref: '#/responses/NotFound'
        '429':
          $ref: '#/responses/TooManyRequests'
      summary: Translate phrase to GIF
      tags:
        - gifs
  /gifs/trending:
    get:
      description: |
        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: trendingGifs
      parameters:
        - $ref: '#/parameters/limit'
        - $ref: '#/parameters/offset'
        - $ref: '#/parameters/rating'
      responses:
        '200':
          description: ''
          schema:
            properties:
              data:
                items:
                  $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data'
                type: array
              meta:
                $ref: '#/paths/~1gifs/get/responses/200/schema/properties/meta'
              pagination:
                $ref: '#/paths/~1gifs/get/responses/200/schema/properties/pagination'
            type: object
        '400':
          $ref: '#/responses/BadRequest'
        '403':
          $ref: '#/responses/Forbidden'
        '404':
          $ref: '#/responses/NotFound'
        '429':
          $ref: '#/responses/TooManyRequests'
      summary: Trending GIFs
      tags:
        - gifs
  '/gifs/{gifId}':
    get:
      description: |
        Returns a GIF given that GIF's unique ID
      operationId: getGifById
      parameters:
        - $ref: '#/parameters/gifId'
      responses:
        '200':
          description: ''
          schema:
            properties:
              data:
                $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data'
              meta:
                $ref: '#/paths/~1gifs/get/responses/200/schema/properties/meta'
            type: object
        '400':
          $ref: '#/responses/BadRequest'
        '403':
          $ref: '#/responses/Forbidden'
        '404':
          $ref: '#/responses/NotFound'
        '429':
          $ref: '#/responses/TooManyRequests'
      summary: Get GIF by Id
      tags:
        - gifs
  /stickers/random:
    get:
      description: |
        Returns a random GIF, limited by tag. Excluding the tag parameter will return a random GIF from the GIPHY catalog.
      operationId: randomSticker
      parameters:
        - $ref: '#/parameters/tag'
        - $ref: '#/parameters/rating'
      responses:
        '200':
          description: ''
          schema:
            properties:
              data:
                $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data'
              meta:
                $ref: '#/paths/~1gifs/get/responses/200/schema/properties/meta'
            type: object
        '400':
          $ref: '#/responses/BadRequest'
        '403':
          $ref: '#/responses/Forbidden'
        '404':
          $ref: '#/responses/NotFound'
        '429':
          $ref: '#/responses/TooManyRequests'
      summary: Random Sticker
      tags:
        - stickers
  /stickers/search:
    get:
      description: |
        Replicates the functionality and requirements of the classic GIPHY search, but returns animated stickers rather than GIFs.
      operationId: searchStickers
      parameters:
        - $ref: '#/parameters/query'
        - $ref: '#/parameters/limit'
        - $ref: '#/parameters/offset'
        - $ref: '#/parameters/rating'
        - $ref: '#/parameters/lang'
      responses:
        '200':
          description: Search results
          schema:
            properties:
              data:
                items:
                  $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data'
                type: array
              meta:
                $ref: '#/paths/~1gifs/get/responses/200/schema/properties/meta'
              pagination:
                $ref: '#/paths/~1gifs/get/responses/200/schema/properties/pagination'
            type: object
        '400':
          $ref: '#/responses/BadRequest'
        '403':
          $ref: '#/responses/Forbidden'
        '404':
          $ref: '#/responses/NotFound'
        '429':
          $ref: '#/responses/TooManyRequests'
      summary: Search Stickers
      tags:
        - stickers
  /stickers/translate:
    get:
      description: |
        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: translateSticker
      parameters:
        - $ref: '#/parameters/term'
      responses:
        '200':
          description: ''
          schema:
            properties:
              data:
                $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data'
              meta:
                $ref: '#/paths/~1gifs/get/responses/200/schema/properties/meta'
            type: object
        '400':
          $ref: '#/responses/BadRequest'
        '403':
          $ref: '#/responses/Forbidden'
        '404':
          $ref: '#/responses/NotFound'
        '429':
          $ref: '#/responses/TooManyRequests'
      summary: Translate phrase to Sticker
      tags:
        - stickers
  /stickers/trending:
    get:
      description: |
        Fetch Stickers currently trending online. Hand curated by the GIPHY editorial team. Returns 25 results by default.
      operationId: trendingStickers
      parameters:
        - $ref: '#/parameters/limit'
        - $ref: '#/parameters/offset'
        - $ref: '#/parameters/rating'
      responses:
        '200':
          description: ''
          schema:
            properties:
              data:
                items:
                  $ref: '#/paths/~1gifs~1random/get/responses/200/schema/properties/data'
                type: array
              meta:
                $ref: '#/paths/~1gifs/get/responses/200/schema/properties/meta'
              pagination:
                $ref: '#/paths/~1gifs/get/responses/200/schema/properties/pagination'
            type: object
        '400':
          $ref: '#/responses/BadRequest'
        '403':
          $ref: '#/responses/Forbidden'
        '404':
          $ref: '#/responses/NotFound'
        '429':
          $ref: '#/responses/TooManyRequests'
      summary: Trending Stickers
      tags:
        - stickers