giphy-api: Giphy HTTP API wrapper and CLI search tool.

[ bsd3, library, web ] [ Propose Tags ]

Please see

[Skip to Readme]




Manual Flags


Build the sample application.


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,,,,,,,,,,,,,
Change log
Dependencies aeson, base (>=4.7 && <5), containers, http-api-data, http-client, http-client-tls, microlens, microlens-th, mtl, network-uri, servant (>=0.9), servant-client (>=0.9), text, transformers [details]
License BSD-3-Clause
Author Pascal Hartig
Maintainer Pascal Hartig <>
Category Web
Home page
Uploaded by passy at 2016-11-28T17:49:08Z
Reverse Dependencies 1 direct, 0 indirect [details]
Executables giphy-search
Downloads 9751 total (32 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2016-11-28 [all 1 reports]

Readme for giphy-api-

[back to package description]


Build Status Hackage Stackage 6 Stackage 7 Stackage Nightly

A Haskell wrapper for the Giphy HTTP API using servant-client.


The module provides a Giphy monad which can be run with runGiphy to lift it into IO. Here's a simple usage example:

{-# LANGUAGE OverloadedStrings #-}

import qualified Data.Text as T
import qualified Web.Giphy as Giphy

apiKey :: Giphy.Key
apiKey = Giphy.Key "dc6zaTOxFJmzC"

sample :: IO ()
sample = do
  let config = Giphy.GiphyConfig apiKey
  resp <- Giphy.runGiphy (app "puppies") config
  print resp

    app :: T.Text -> Giphy.Giphy [Giphy.Gif]
    app q = do
      resp <- $ Giphy.Query q
      return $ Giphy._searchItems resp

For a slightly more complex example, check out the sample app, which also features the use of lenses.


Use stack to build this library.

$ stack setup
$ stack test
# Drop the flag if you don't want the sample app to be built.
$ stack build --flag=giphy-api:buildSample
# To install the sample tool
$ stack install

Sample CLI Tool Usage

$ giphy-search --help

Usage: giphy-search ([-s|--search ARG] | [-t|--translate ARG] | [RANDOM_TAG])
  Find GIFs on the command line.

Available options:
  -h,--help                Show this help text
  -s,--search ARG          Use search to find a matching GIF.
  -t,--translate ARG       Use translate to find a matching GIF.
  -V,--version             Show version information
$ giphy-search puppies
$ giphy-search --translate superman
$ giphy-search "1C4D539A-B787-497F-B1DC-8FCF8D2C026D"

Missing features

  • There is no compiler flag at the moment to disable lenses if those aren't needed. The library, however, uses microlens so the overhead should be minimal.

  • The "Stickers" API endpoints are currently not covered. If you need them, let me know. PRs obviously very welcome.

  • Some fields are currently not exposed. Again, if you need them, open an issue. For example, I have never seen a type value other than "gif" so I decided to skip it.