diff --git a/geomagio/api/secure/metadata.py b/geomagio/api/secure/metadata.py
index 875aad441a58e33b40539cd67d12b395eabf450b..3592e48b98eb90e99d56f3b9a82edbd12b6ff56e 100644
--- a/geomagio/api/secure/metadata.py
+++ b/geomagio/api/secure/metadata.py
@@ -35,8 +35,9 @@ async def create_metadata(
     metadata: Metadata,
     user: User = Depends(require_user()),
 ):
-    metadata = await metadata_table.create_metadata(metadata)
-    return Response(metadata, status_code=201, media_type="application/json")
+    created_metadata = await metadata_table.create_metadata(metadata)
+    print(metadata.to_json())
+    return Response(metadata.to_json(), status_code=201, media_type="application/json")
 
 
 @router.delete("/metadata/{id}")
diff --git a/geomagio/metadata/Metadata.py b/geomagio/metadata/Metadata.py
index ce2ad5211ac07c5023c4821396a8abe1ed1fd4f5..eb8f5b8fd8aa764bd4a8f041badd772cd1f02b33 100644
--- a/geomagio/metadata/Metadata.py
+++ b/geomagio/metadata/Metadata.py
@@ -1,4 +1,5 @@
 from datetime import timezone
+import json
 from typing import Dict
 
 from obspy import UTCDateTime
@@ -87,3 +88,6 @@ class Metadata(BaseModel):
     @validator("created_time")
     def set_default_created_time(cls, created_time: UTCDateTime = None) -> UTCDateTime:
         return created_time or UTCDateTime()
+
+    def to_json(self):
+        return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)