diff --git a/CHANGES.txt b/CHANGES.txt
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,7 @@
 Changelog for Hoogle
 
+4.2.34
+    Add defaultDatabaseLocation
 4.2.33
     Allow WAI-3.0
 4.2.32
diff --git a/hoogle.cabal b/hoogle.cabal
--- a/hoogle.cabal
+++ b/hoogle.cabal
@@ -1,7 +1,7 @@
 cabal-version:      >= 1.10
 build-type:         Simple
 name:               hoogle
-version:            4.2.33
+version:            4.2.34
 license:            BSD3
 license-file:       docs/LICENSE
 category:           Development
diff --git a/src/Hoogle.hs b/src/Hoogle.hs
--- a/src/Hoogle.hs
+++ b/src/Hoogle.hs
@@ -9,6 +9,7 @@
     H.Language(..),
     -- * Database
     Database, loadDatabase, saveDatabase, createDatabase, mergeDatabase, showDatabase,
+    defaultDatabaseLocation,
     -- * Query
     Query, parseQuery, H.renderQuery,
     H.queryDatabases, H.queryPackages, H.querySetPackage,
@@ -25,6 +26,7 @@
 import Hoogle.DataBase2.Type
 import Hoogle.DataBase2.Str
 import System.IO.Unsafe
+import Paths_hoogle
 
 import Hoogle.Type.TagStr
 import qualified Hoogle.DataBase.All as H
@@ -87,6 +89,10 @@
 --   it will probably throw an error.
 loadDatabase :: FilePath -> IO Database
 loadDatabase x = do db <- H.loadDataBase x; return $ Database [(x, db)]
+
+
+defaultDatabaseLocation :: IO FilePath
+defaultDatabaseLocation = getDataDir
 
 
 -- | Create a database from an input definition. Source files for Hoogle databases are usually
