diff --git a/UltiSnips/xml_api.snippets b/UltiSnips/xml_api.snippets
new file mode 100644
index 0000000..3fc3c7f
--- /dev/null
+++ b/UltiSnips/xml_api.snippets
@@ -0,0 +1,38 @@
+snippet function "api <function> block"
+<function>${1:name}
+	<return>${3:type}
+		<doxygen><return>${4:description}</return></doxygen></return>$0
+	<doxygen><brief>${2:description}</brief></doxygen>
+</function>
+endsnippet
+snippet param "api <param> block"
+<param>${1:variable}<type>${2:type>}</type>
+	<doxygen><param form="${3:[in|out|inout]}">${4:description}</param></doxygen></param>$0
+endsnippet
+
+snippet struct "api <struct> block"
+<struct>${1:name}<scope>
+		<member>${1:name}<type>${2:type}</type>
+			<doxygen><brief>${3:description}</brief></doxygen></member>$0
+	</scope>
+	<doxygen><brief>${2:description}</brief></doxygen>
+</struct>
+endsnippet
+snippet member "api struct <member> block"
+<member>${1:name}<type>${2:type}</type>
+	<doxygen><brief>${3:description}</brief></doxygen></member>
+endsnippet
+
+snippet enum "api <enum> block"
+<typedef>${1:name}<type>
+		<enum>$1<scope>
+				<constant>${3:name}${4:<value>${5:value}</value>}
+					<doxygen><brief>${6:description}</brief></doxygen></constant>$0
+	</scope></enum></type>
+	<doxygen><brief>${2:description}</brief></doxygen>
+</typedef>
+endsnippet
+snippet constant "api enum <constant> block"
+<constant>${1:name}${2:<value>${3:value}</value>}
+	<doxygen><brief>${4:description}</brief></doxygen></constant>$0
+endsnippet