Import batch.md (#710)


diff --git a/docs/batch.md b/docs/batch.md
new file mode 100644
index 0000000..b8b3105
--- /dev/null
+++ b/docs/batch.md
@@ -0,0 +1,94 @@
+# Batch
+
+Each HTTP connection that your application makes results in a certain amount of overhead.
+This library supports batching,
+to allow your application to put several API calls into a single HTTP request.
+Examples of situations when you might want to use batching:
+* You have many small requests to make and would like to minimize HTTP request overhead.
+* A user made changes to data while your application was offline,
+  so your application needs to synchronize its local data with the server
+  by sending a lot of updates and deletes.
+  
+**Note**: You're limited to 1000 calls in a single batch request.
+If you need to make more calls than that, use multiple batch requests.
+
+**Note**: You cannot use a
+[media upload](/api-client-library/python/guide/media_upload)
+object in a batch request.
+
+## Details
+You create batch requests by calling `new_batch_http_request()` on your service
+object, which returns a
+[BatchHttpRequest](https://google.github.io/google-api-python-client/docs/epy/googleapiclient.http.BatchHttpRequest-class.html)
+object, and then calling `add()` for each request you want to execute.
+You may pass in a callback with each request that is called with the response to that request.
+The callback function arguments are:
+a unique request identifier for each API call,
+a response object which contains the API call response,
+and an exception object which may be set to an exception raised by the API call.
+After you've added the requests, you call `execute()` to make the requests.
+The `execute()` function blocks until all callbacks have been called.
+
+In the following code snippet,
+two API requests are batched to a single HTTP request,
+and each API request is supplied a callback:
+  <pre class="prettyprint">
+See below</pre>
+You can also supply a single callback that gets called for each response:
+
+  <pre class="prettyprint">See below</pre>
+
+The
+[add()](https://google.github.io/google-api-python-client/docs/epy/googleapiclient.http.BatchHttpRequest-class.html#add)
+method also allows you to supply a <code>request_id</code> parameter for each request.
+These IDs are provided to the callbacks.
+If you don't supply one, the library creates one for you.
+The IDs must be unique for each API request,
+otherwise `add()` raises an exception.
+
+If you supply a callback to both `new_batch_http_request()` and `add()`, they both get called.
+ 
+
+---
+
+```python
+def list_animals(request_id, response, exception):
+  if exception is not None:
+    # Do something with the exception
+    pass
+  else:
+    # Do something with the response
+    pass
+
+def list_farmers(request_id, response):
+  """Do something with the farmers list response."""
+  pass
+
+service = build('farm', 'v2')
+
+batch = service.new_batch_http_request()
+
+batch.add(service.animals().list(), callback=list_animals)
+batch.add(service.farmers().list(), callback=list_farmers)
+batch.execute(http=http)
+```
+
+```python
+
+def insert_animal(request_id, response, exception):
+  if exception is not None:
+    # Do something with the exception
+    pass
+  else:
+    # Do something with the response
+    pass
+
+service = build('farm', 'v2')
+
+batch = service.new_batch_http_request(callback=insert_animal)
+
+batch.add(service.animals().insert(name="sheep"))
+batch.add(service.animals().insert(name="pig"))
+batch.add(service.animals().insert(name="llama"))
+batch.execute(http=http)
+```