diff --git a/xos/tools/apigen/modelgen b/xos/tools/apigen/modelgen
index e5e4232..a34798f 100755
--- a/xos/tools/apigen/modelgen
+++ b/xos/tools/apigen/modelgen
@@ -77,6 +77,7 @@
 		self.model = m
 		self.props = []
 		self.fields = []
+                self.all_fields = []
 		self.field_dict = []
 		self.refs = []
 		self.plural_name = None
@@ -184,7 +185,8 @@
                                         if (type(f)==ForeignKey):
                                             f.related.model.class_name = f.related.model.__name__
                                         if (f.name not in base_props):
-                                            obj.fields.append(f) 
+                                            obj.fields.append(f)
+                                        obj.all_fields.append(f)
                                         obj.props.append(f.name)
 
 			m2m = obj.model._meta.many_to_many
diff --git a/xos/tools/apigen/protobuf.template.txt b/xos/tools/apigen/protobuf.template.txt
new file mode 100644
index 0000000..ca77283
--- /dev/null
+++ b/xos/tools/apigen/protobuf.template.txt
@@ -0,0 +1,34 @@
+syntax = "proto3";
+
+package xos;
+
+{% for object in generator.all() %}
+
+message {{ object.camel() }} {
+  {%- for field in object.all_fields -%}
+    {%- if (field.get_internal_type() == "CharField") or (field.get_internal_type() == "TextField") or (field.get_internal_type() == "SlugField") %}
+      string {{ field.name }} = {{ loop.index }};
+    {%- elif field.get_internal_type() == "BooleanField" %}
+      bool {{ field.name }} = {{ loop.index }};
+    {%- elif field.get_internal_type() == "ForeignKey" %}
+      int32 {{ field.name }}_id = {{ loop.index }};
+    {%- elif field.get_internal_type() == "DateTimeField" %}
+      int32 {{ field.name }} = {{ loop.index }};
+    {%- elif field.get_internal_type() == "AutoField" %}
+      int32 {{ field.name }} = {{ loop.index }};
+    {%- elif field.get_internal_type() == "IntegerField" %}
+      int32 {{ field.name }} = {{ loop.index }};
+    {%- elif field.get_internal_type() == "PositiveIntegerField" %}
+      uint32 {{ field.name }} = {{ loop.index }};
+    {%- elif field.get_internal_type() == "FloatField" %}
+      float {{ field.name }} = {{ loop.index }};
+    {%- elif field.get_internal_type() == "GenericIPAddressField" %}
+      string {{ field.name }} = {{ loop.index }};
+    {%- else %}
+      UNKNOWN {{ field.get_internal_type() }} {{ field.name }} = {{ loop.index }};
+    {%- endif %}
+  {%- endfor %}
+}
+
+{% endfor %}
+
