diff --git a/arkindex/documents/api/ml.py b/arkindex/documents/api/ml.py
index 132d2604ac57bf6d15fbf7fc979435079c615966..ac68ac281e57a22762a070e087a3f9849683be0a 100644
--- a/arkindex/documents/api/ml.py
+++ b/arkindex/documents/api/ml.py
@@ -14,8 +14,8 @@ from arkindex_common.ml_tool import MLToolType
 from arkindex_common.enums import EntityType
 from arkindex.documents.serializers.ml import (
     ClassificationsSerializer, ClassificationCreateSerializer, ClassificationSerializer,
-    TranscriptionsSerializer, TranscriptionCreateSerializer, DataSourceStatsSerializer,
-    ClassificationsSelectionSerializer, ClassificationMode,
+    TranscriptionsSerializer, TranscriptionSerializer, TranscriptionCreateSerializer,
+    DataSourceStatsSerializer, ClassificationsSelectionSerializer, ClassificationMode,
     CountMLClassSerializer, MLClassSerializer
 )
 from arkindex.documents.pagexml import PageXmlParser
@@ -86,7 +86,11 @@ class TranscriptionCreate(CreateAPIView):
         serializer.is_valid(raise_exception=True)
         obj = self.perform_create(serializer)
         headers = self.get_success_headers(serializer.data)
-        return Response({'id': obj.id}, status=status.HTTP_201_CREATED, headers=headers)
+        return Response(
+            # Use a single transcription serializer for the response
+            TranscriptionSerializer(obj).data,
+            status=status.HTTP_201_CREATED, headers=headers
+        )
 
 
 class TranscriptionBulk(CreateAPIView, UpdateAPIView):
diff --git a/arkindex/documents/tests/test_transcription_create.py b/arkindex/documents/tests/test_transcription_create.py
index 27e9bce25637a375b09140e9b6b13f5e6660c764..53202d6937fbdf3ab144758b199b9bb432dd4582 100644
--- a/arkindex/documents/tests/test_transcription_create.py
+++ b/arkindex/documents/tests/test_transcription_create.py
@@ -102,6 +102,22 @@ class TestTranscriptionCreate(FixtureAPITestCase):
                 }
             )
         self.assertEqual(response.status_code, status.HTTP_201_CREATED)
+        tr = Transcription.objects.get(text='A perfect day in a perfect place')
+        self.assertDictEqual(response.json(), {
+            'id': str(tr.id),
+            'score': None,
+            'source': {
+                'id': str(tr.source.id),
+                'internal': False,
+                'name': '',
+                'revision': '',
+                'slug': 'manual',
+                'type': 'recognizer'
+            },
+            'text': 'A perfect day in a perfect place',
+            'type': 'line',
+            'zone': None
+        })
 
         new_ts = Transcription.objects.get(text='A perfect day in a perfect place', type=TranscriptionType.Line)
         self.assertIsNone(new_ts.zone)