diff --git a/src/Yesod/Transloadit.hs b/src/Yesod/Transloadit.hs
--- a/src/Yesod/Transloadit.hs
+++ b/src/Yesod/Transloadit.hs
@@ -35,6 +35,8 @@
     module Data.Time
   ) where
 
+import           Codec.MIME.Parse
+import           Codec.MIME.Type
 import           Control.Applicative
 import           Control.Lens
 import           Control.Monad
@@ -85,7 +87,7 @@
   _name      :: Text,
   _baseName  :: Text,
   _extension :: Text,
-  _mime      :: Text,
+  _mime      :: Maybe Type,
   _field     :: Text,
   _url       :: Text,
   _sslUrl    :: Text
@@ -172,7 +174,7 @@
                  <*> v "name"
                  <*> v "basename"
                  <*> v "ext"
-                 <*> v "mime"
+                 <*> (parseMIMEType <$> v "mime")
                  <*> v "field"
                  <*> v "url"
                  <*> v "ssl_url"
diff --git a/test/Tests.hs b/test/Tests.hs
--- a/test/Tests.hs
+++ b/test/Tests.hs
@@ -6,6 +6,7 @@
 
 module Main where
 
+import           Codec.MIME.Parse
 import           Data.Aeson
 import           Data.Map
 import           Data.Maybe
@@ -60,7 +61,7 @@
 sampleDict :: Map Text (Map Text [Map Text Text])
 sampleDict = fromList [("results", results)]
              where results = fromList [("foo", stepResults)]
-                   stepResults = [fromList [("id","<id>"), ("name", "n"), ("basename", "b"), ("ext", "e"), ("mime", "m"), ("field", "f"), ("url", "u"), ("ssl_url", "<ssl_url>")]]
+                   stepResults = [fromList [("id","<id>"), ("name", "n"), ("basename", "b"), ("ext", "e"), ("mime", "text/plain"), ("field", "f"), ("url", "u"), ("ssl_url", "<ssl_url>")]]
 
 sampleResult = fromJust $ nthStepResult 0 "foo" (return $ encode sampleDict)
 
@@ -85,7 +86,7 @@
     yit "grabs name" $ assertEqual "name" (sampleResult ^. name) ("n" :: Text)
     yit "grabs basename" $ assertEqual "basename" (sampleResult ^. baseName) ("b" :: Text)
     yit "grabs extension" $ assertEqual "ext" (sampleResult ^. extension) ("e" :: Text)
-    yit "grabs mime" $ assertEqual "mime" (sampleResult ^. mime) ("m" :: Text)
+    yit "grabs mime" $ assertEqual "mime" (sampleResult ^. mime) (parseMIMEType "text/plain")
     yit "grabs field" $ assertEqual "field" (sampleResult ^. field) ("f" :: Text)
     yit "grabs url" $ assertEqual "url" (sampleResult ^. url) ("u" :: Text)
 
diff --git a/yesod-transloadit.cabal b/yesod-transloadit.cabal
--- a/yesod-transloadit.cabal
+++ b/yesod-transloadit.cabal
@@ -1,5 +1,5 @@
 name:                yesod-transloadit
-version:             0.4.3.0
+version:             0.5.0.0
 synopsis:            Transloadit support for Yesod
 description:         Drop in Transloadit capabilites for Yesod web apps
 license:             MIT
@@ -35,6 +35,7 @@
                        , shakespeare
                        , lens-aeson
                        , unordered-containers
+                       , mime
 
   hs-source-dirs:      src
   default-language:    Haskell2010
@@ -54,6 +55,7 @@
                        old-locale,
                        text,
                        aeson,
-                       containers
+                       containers,
+                       mime
 
   default-language:    Haskell2010
