diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index b7bc823..7ae6a8a 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -68,7 +68,7 @@
           http=None,
           discoveryServiceUrl=DISCOVERY_URI,
           developerKey=None,
-          model=JsonModel(),
+          model=None,
           requestBuilder=HttpRequest):
   """Construct a Resource for interacting with an API.
 
@@ -125,7 +125,7 @@
     future=None,
     http=None,
     developerKey=None,
-    model=JsonModel(),
+    model=None,
     requestBuilder=HttpRequest):
   """Create a Resource for interacting with an API.
 
@@ -160,6 +160,8 @@
     future = {}
     auth_discovery = {}
 
+  if model is None:
+    model = JsonModel('dataWrapper' in service.get('features', []))
   resource = createResource(http, base, model, requestBuilder, developerKey,
                        service, future)
 
diff --git a/apiclient/http.py b/apiclient/http.py
index f713ec8..094271f 100644
--- a/apiclient/http.py
+++ b/apiclient/http.py
@@ -150,7 +150,7 @@
       resp, content = self.responses[methodId]
       return HttpRequestMock(resp, content, postproc)
     else:
-      model = JsonModel()
+      model = JsonModel(False)
       return HttpRequestMock(None, '{}', model.response)
 
 
diff --git a/apiclient/model.py b/apiclient/model.py
index 58cd624..55bcc94 100644
--- a/apiclient/model.py
+++ b/apiclient/model.py
@@ -73,6 +73,14 @@
   object representation of HTTP request and response bodies.
   """
 
+  def __init__(self, data_wrapper):
+    """Construct a JsonModel
+
+    Args:
+      data_wrapper: boolean, wrap requests and responses in a data wrapper
+    """
+    self._data_wrapper = data_wrapper
+
   def request(self, headers, path_params, query_params, body_value):
     """Updates outgoing requests with JSON bodies.
 
@@ -97,6 +105,10 @@
     else:
       headers['user-agent'] = ''
     headers['user-agent'] += 'google-api-python-client/1.0'
+
+    if (isinstance(body_value, dict) and 'data' not in body_value and
+        self._data_wrapper):
+      body_value = {'data': body_value}
     if body_value is None:
       return (headers, path_params, query, None)
     else:
diff --git a/tests/test_json_model.py b/tests/test_json_model.py
index 084e0a9..fa7ad05 100644
--- a/tests/test_json_model.py
+++ b/tests/test_json_model.py
@@ -36,7 +36,7 @@
 
 class Model(unittest.TestCase):
   def test_json_no_body(self):
-    model = JsonModel()
+    model = JsonModel(data_wrapper=False)
 
     headers = {}
     path_params = {}
@@ -51,7 +51,7 @@
     self.assertEqual(body, None)
 
   def test_json_body(self):
-    model = JsonModel()
+    model = JsonModel(data_wrapper=False)
 
     headers = {}
     path_params = {}
@@ -65,9 +65,24 @@
     self.assertNotEqual(query, '')
     self.assertEqual(body, '{}')
 
+  def test_json_body_data_wrapper(self):
+    model = JsonModel(data_wrapper=True)
+
+    headers = {}
+    path_params = {}
+    query_params = {}
+    body = {}
+
+    headers, params, query, body = model.request(headers, path_params, query_params, body)
+
+    self.assertEqual(headers['accept'], 'application/json')
+    self.assertEqual(headers['content-type'], 'application/json')
+    self.assertNotEqual(query, '')
+    self.assertEqual(body, '{"data": {}}')
+
   def test_json_body_default_data(self):
     """Test that a 'data' wrapper doesn't get added if one is already present."""
-    model = JsonModel()
+    model = JsonModel(data_wrapper=True)
 
     headers = {}
     path_params = {}
@@ -82,7 +97,7 @@
     self.assertEqual(body, '{"data": "foo"}')
 
   def test_json_build_query(self):
-    model = JsonModel()
+    model = JsonModel(data_wrapper=False)
 
     headers = {}
     path_params = {}
@@ -100,7 +115,7 @@
     self.assertEqual(body, '{}')
 
   def test_user_agent(self):
-    model = JsonModel()
+    model = JsonModel(data_wrapper=False)
 
     headers = {'user-agent': 'my-test-app/1.23.4'}
     path_params = {}
@@ -112,7 +127,7 @@
     self.assertEqual(headers['user-agent'], 'my-test-app/1.23.4 google-api-python-client/1.0')
 
   def test_bad_response(self):
-    model = JsonModel()
+    model = JsonModel(data_wrapper=False)
     resp = httplib2.Response({'status': '401'})
     resp.reason = 'Unauthorized'
     content = '{"error": {"message": "not authorized"}}'
@@ -133,7 +148,7 @@
 
 
   def test_good_response(self):
-    model = JsonModel()
+    model = JsonModel(data_wrapper=True)
     resp = httplib2.Response({'status': '200'})
     resp.reason = 'OK'
     content = '{"data": "is good"}'
@@ -142,7 +157,7 @@
     self.assertEqual(content, 'is good')
 
   def test_good_response_wo_data(self):
-    model = JsonModel()
+    model = JsonModel(data_wrapper=False)
     resp = httplib2.Response({'status': '200'})
     resp.reason = 'OK'
     content = '{"foo": "is good"}'
@@ -151,7 +166,7 @@
     self.assertEqual(content, {'foo': 'is good'})
 
   def test_good_response_wo_data_str(self):
-    model = JsonModel()
+    model = JsonModel(data_wrapper=False)
     resp = httplib2.Response({'status': '200'})
     resp.reason = 'OK'
     content = '"data goes here"'
