diff --git a/smore/apispec/core.py b/smore/apispec/core.py
index <HASH>..<HASH> 100644
--- a/smore/apispec/core.py
+++ b/smore/apispec/core.py
@@ -18,6 +18,8 @@ class APISpec(object):
         ret = {}
         if properties:
             ret['properties'] = properties
+        for func in self._definition_helpers:
+            ret.update(func(name, **kwargs))
         ret.update(kwargs)
         self._definitions[name] = ret
 
diff --git a/tests/test_api_spec.py b/tests/test_api_spec.py
index <HASH>..<HASH> 100644
--- a/tests/test_api_spec.py
+++ b/tests/test_api_spec.py
@@ -64,3 +64,16 @@ class TestExtensions:
             pass
         spec.register_definition_helper(my_definition_helper)
         assert my_definition_helper in spec._definition_helpers
+
+
+class TestDefinitionHelpers:
+
+    def test_definition_helpers_are_used(self, spec):
+        properties = {'properties': {'name': {'type': 'string'}}}
+
+        def definition_helper(name, **kwargs):
+            return properties
+        spec.register_definition_helper(definition_helper)
+        spec.definition('Pet', {})
+        assert spec._definitions['Pet'] == properties
+
Use definition helpers in APISpec#definition