diff --git a/docs/API.md b/docs/API.md
index 4915023..bd4fa51 100644
--- a/docs/API.md
+++ b/docs/API.md
@@ -385,15 +385,173 @@ main = do
### putObject :: Bucket -> Object -> C.Producer Minio ByteString -> Maybe Int64 -> Minio ()
+Uploads an object to a bucket in the service, from the given input
+byte stream of optionally supplied length
+
+__Parameters__
+
+In the expression `putObject bucketName objectName inputSrc` the parameters
+are:
+
+|Param |Type |Description |
+|:---|:---| :---|
+| `bucketName` | _Bucket_ (alias for `Text`) | Name of the bucket |
+| `objectName` | _Object_ (alias for `Text`) | Name of the object |
+| `inputSrc` | _C.Producer Minio ByteString_ | A Conduit Producer of `ByteString` values |
+
+__Example__
+
+```haskell
+{-# Language OverloadedStrings #-}
+import Network.Minio
+import qualified Data.Conduit.Combinators as CC
+
+main :: IO ()
+main = do
+ let
+ bucket = "mybucket"
+ object = "myobject"
+ kb15 = 15 * 1024
+
+ res <- runResourceT $ runMinio minioPlayCI $ do
+ putObject bucket object (CC.repeat "a") (Just kb15)
+
+ case res of
+ Left e -> putStrLn $ "Failed to putObject " ++ show bucket ++ "/" ++ show object
+ Right _ -> putStrLn "PutObject was successful"
+```
### fGetObject :: Bucket -> Object -> FilePath -> Minio ()
+Downloads an object from a bucket in the service, to the given file
+
+__Parameters__
+
+In the expression `fGetObject bucketName objectName inputFile` the parameters
+are:
+
+|Param |Type |Description |
+|:---|:---| :---|
+| `bucketName` | _Bucket_ (alias for `Text`) | Name of the bucket |
+| `objectName` | _Object_ (alias for `Text`) | Name of the object |
+| `inputFile` | _FilePath_ | Path to the file to be uploaded |
+
+``` haskell
+
+{-# Language OverloadedStrings #-}
+import Network.Minio
+
+import Data.Conduit (($$+-))
+import Data.Conduit.Binary (sinkLbs)
+import Prelude
+
+-- | The following example uses minio's play server at
+-- https://play.minio.io:9000. The endpoint and associated
+-- credentials are provided via the libary constant,
+--
+-- > minioPlayCI :: ConnectInfo
+--
+
+main :: IO ()
+main = do
+ let
+ bucket = "my-bucket"
+ object = "my-object"
+ localFile = "/etc/lsb-release"
+
+ res <- runResourceT $ runMinio minioPlayCI $ do
+ src <- fGetObject bucket object localFile
+ (src $$+- sinkLbs)
+
+ case res of
+ Left e -> putStrLn $ "fGetObject failed." ++ (show e)
+ Right _ -> putStrLn "fGetObject succeeded."
+```
### fPutObject :: Bucket -> Object -> FilePath -> Minio ()
+Uploads an object to a bucket in the service, from the given file
+
+__Parameters__
+
+In the expression `fPutObject bucketName objectName inputFile` the parameters
+are:
+
+|Param |Type |Description |
+|:---|:---| :---|
+| `bucketName` | _Bucket_ (alias for `Text`) | Name of the bucket |
+| `objectName` | _Object_ (alias for `Text`) | Name of the object |
+| `inputFile` | _FilePath_ | Path to the file to be uploaded |
+
+__Example__
+
+```haskell
+{-# Language OverloadedStrings #-}
+import Network.Minio
+import qualified Data.Conduit.Combinators as CC
+
+main :: IO ()
+main = do
+ let
+ bucket = "mybucket"
+ object = "myobject"
+ localFile = "/etc/lsb-release"
+
+ res <- runResourceT $ runMinio minioPlayCI $ do
+ fPutObject bucket object localFile
+
+ case res of
+ Left e -> putStrLn $ "Failed to fPutObject " ++ show bucket ++ "/" ++ show object
+ Right _ -> putStrLn "fPutObject was successful"
+```
### copyObject :: Bucket -> Object -> CopyPartSource -> Minio ()
+Copies content of an object from the service to another
+
+__Parameters__
+
+In the expression `copyObject bucketName objectName cps` the parameters
+are:
+
+|Param |Type |Description |
+|:---|:---| :---|
+| `bucketName` | _Bucket_ (alias for `Text`) | Name of the bucket |
+| `objectName` | _Object_ (alias for `Text`) | Name of the object |
+| `cps` | _CopyPartSource_ | A value representing properties of the source object |
+
+
+__CopyPartSource record type__
+
+|Field |Type |Description |
+|:---|:---| :---|
+| `cpSource` | `Text`| Name of source object formatted as "/srcBucket/srcObject" |
+| `cpSourceRange` | `Maybe (Int64, Int64)` | Represents the byte range of source object. (0, 9) represents first ten bytes of source object|
+| `cpSourceIfMatch` | `Maybe Text` | (Optional) ETag source object should match |
+| `cpSourceIfNoneMatch` | `Maybe Text` | (Optional) ETag source object shouldn't match |
+| `cpSourceIfUnmodifiedSince` | `Maybe UTCTime` | (Optional) Time since source object wasn't modified |
+| `cpSourceIfModifiedSince` | `Maybe UTCTime` | (Optional) Time since source object was modified |
+
+__Example__
+
+```haskell
+{-# Language OverloadedStrings #-}
+import Network.Minio
+
+main :: IO ()
+main = do
+ let
+ bucket = "mybucket"
+ object = "myobject"
+ srcObject = "/mybucket/srcObject"
+
+ res <- runResourceT $ runMinio minioPlayCI $ do
+ copyObject bucket object def { cpSource = srcObject }
+
+ case res of
+ Left e -> putStrLn $ "Failed to copyObject " ++ show srcObject"
+ Right _ -> putStrLn "copyObject was successful"
+```
### removeObject :: Bucket -> Object -> Minio ()