diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+# log-elasticsearch-0.13.0.1 (2023-01-31)
+* Add support for OpenSearch.
+
 # log-elasticsearch-0.13.0.0 (2022-09-21)
 * Remove deprecated `elasticSearchLogger`.
 * Use `http-client-openssl` by default instead of `http-client-tls`.
diff --git a/log-elasticsearch.cabal b/log-elasticsearch.cabal
--- a/log-elasticsearch.cabal
+++ b/log-elasticsearch.cabal
@@ -1,5 +1,5 @@
 name:                log-elasticsearch
-version:             0.13.0.0
+version:             0.13.0.1
 synopsis:            Structured logging solution (Elasticsearch back end)
 
 description:         Elasticsearch back end for the 'log' library suite.
@@ -18,7 +18,7 @@
 build-type:          Simple
 cabal-version:       >=1.10
 extra-source-files:  CHANGELOG.md, README.md
-tested-with:         GHC ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.4 || ==9.4.2
+tested-with:         GHC ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.5 || ==9.4.4
 
 Source-repository head
   Type:     git
diff --git a/src/Log/Backend/ElasticSearch/Internal.hs b/src/Log/Backend/ElasticSearch/Internal.hs
--- a/src/Log/Backend/ElasticSearch/Internal.hs
+++ b/src/Log/Backend/ElasticSearch/Internal.hs
@@ -89,9 +89,14 @@
 parseEsVersion js = do
   Object props <- pure js
   Object version <- "version" `AC.lookup` props
-  String number <- "number" `AC.lookup` version
-  [v1, v2, v3] <- mapM (maybeRead . T.unpack) $ T.splitOn "." number
-  pure $ EsVersion v1 v2 v3
+  case "distribution" `AC.lookup` version of
+    Just "opensearch" -> do
+      -- OpenSearch is compatible (so far) with esV7 mappings.
+      pure esV7
+    _ -> do
+      String number <- "number" `AC.lookup` version
+      [v1, v2, v3] <- mapM (maybeRead . T.unpack) $ T.splitOn "." number
+      pure $ EsVersion v1 v2 v3
   where
     maybeRead s = do
       [(v, "")] <- pure $ reads s
