diff --git a/arkindex/documents/api/entities.py b/arkindex/documents/api/entities.py
index cdd2a1fa7ed51d29511c1347eae4bccca1a3bf46..bc94fd03f65369dde228c8a50537854c19a9066c 100644
--- a/arkindex/documents/api/entities.py
+++ b/arkindex/documents/api/entities.py
@@ -7,13 +7,7 @@ from django.shortcuts import get_object_or_404
 from drf_spectacular.utils import OpenApiExample, OpenApiParameter, extend_schema, extend_schema_view
 from rest_framework import permissions, serializers, status
 from rest_framework.exceptions import NotFound, PermissionDenied
-from rest_framework.generics import (
-    CreateAPIView,
-    ListAPIView,
-    ListCreateAPIView,
-    RetrieveAPIView,
-    RetrieveUpdateDestroyAPIView,
-)
+from rest_framework.generics import CreateAPIView, ListAPIView, ListCreateAPIView, RetrieveUpdateDestroyAPIView
 from rest_framework.response import Response
 
 from arkindex.documents.models import (
@@ -38,7 +32,7 @@ from arkindex.documents.serializers.entities import (
     TranscriptionEntitySerializer,
 )
 from arkindex.process.models import WorkerVersion
-from arkindex.project.mixins import ACLMixin, CorpusACLMixin, DeprecatedMixin
+from arkindex.project.mixins import ACLMixin, CorpusACLMixin
 from arkindex.project.openapi import UUID_OR_FALSE
 from arkindex.project.permissions import IsVerified, IsVerifiedOrReadOnly
 from arkindex.users.models import Role
@@ -323,27 +317,6 @@ class TranscriptionEntities(ListAPIView):
         )
 
 
-@extend_schema_view(
-    get=extend_schema(
-        operation_id='ListElementEntities',
-        tags=['entities'],
-        deprecated=True,
-        parameters=[
-            OpenApiParameter(
-                'worker_version',
-                type=UUID,
-                description='Only include entities created by a specific worker version',
-                required=False,
-            )
-        ]
-    )
-)
-class ElementEntities(DeprecatedMixin, RetrieveAPIView):
-    """
-    List all entities linked to an element's transcriptions and metadata
-    """
-
-
 @extend_schema_view(
     get=extend_schema(
         operation_id='ListCorpusEntities',
diff --git a/arkindex/documents/serializers/elements.py b/arkindex/documents/serializers/elements.py
index 47969aa2791d9e26c2eb16b5857c135854657a92..fd05dc4e5bf0da81ae368aa4ad3edd9ba91522ce 100644
--- a/arkindex/documents/serializers/elements.py
+++ b/arkindex/documents/serializers/elements.py
@@ -2,30 +2,18 @@ import math
 import uuid
 from collections import defaultdict
 from textwrap import dedent
-from uuid import UUID
 
 from django.conf import settings
 from django.contrib.gis.geos import LinearRing
 from django.core.exceptions import ValidationError as DjangoValidationError
 from django.core.validators import URLValidator
 from django.db import transaction
-from django.utils.functional import cached_property
 from drf_spectacular.utils import extend_schema_field
 from rest_framework import serializers
 from rest_framework.exceptions import ValidationError
 
-from arkindex.documents.models import (
-    Corpus,
-    Element,
-    ElementPath,
-    ElementType,
-    Entity,
-    MetaData,
-    MetaType,
-    Transcription,
-    TranscriptionEntity,
-)
-from arkindex.documents.serializers.entities import BaseEntitySerializer, TranscriptionEntityDetailsSerializer
+from arkindex.documents.models import Corpus, Element, ElementPath, ElementType, Entity, MetaData, MetaType
+from arkindex.documents.serializers.entities import BaseEntitySerializer
 from arkindex.documents.serializers.light import (
     CorpusLightSerializer,
     ElementLightSerializer,
@@ -852,71 +840,6 @@ class ElementCreateSerializer(ElementLightSerializer):
         return ElementSerializer(instance, context=self.context).data
 
 
-class ElementEntitiesSerializer(ElementLightSerializer):
-    """
-    Serialize an element with its entities
-    Entities are split into two types, those extracted
-    from metadata and those extracted from element transcriptions
-    """
-    metadata = MetaDataSerializer(many=True)
-    transcriptions = TranscriptionEntityDetailsSerializer(many=True)
-
-    def __init__(self, *args, **kwargs):
-        super().__init__(*args, **kwargs)
-        if not self.context.get('request'):
-            # Keep original fields so OpenAPI can build its schemas
-            return
-        self.fields['transcriptions'] = serializers.SerializerMethodField()
-        self.fields['metadata'] = serializers.SerializerMethodField()
-
-    @cached_property
-    def worker_version_id(self):
-        if 'worker_version' not in self.context['request'].query_params:
-            return
-
-        try:
-            worker_version_id = UUID(self.context['request'].query_params['worker_version'])
-        except (TypeError, ValueError):
-            raise ValidationError({'worker_version': ['Invalid UUID']})
-
-        if not WorkerVersion.objects.filter(id=worker_version_id).exists():
-            raise ValidationError({'worker_version': ['This worker version does not exist.']})
-
-        return worker_version_id
-
-    def get_transcriptions(self, element):
-        filters = {
-            'transcription__in': Transcription.objects.filter(element_id=element.id),
-        }
-        if self.worker_version_id:
-            filters['entity__worker_version_id'] = self.worker_version_id
-
-        transcription_entities = TranscriptionEntity.objects \
-            .filter(**filters) \
-            .prefetch_related('entity') \
-            .order_by('offset')
-
-        return TranscriptionEntityDetailsSerializer(transcription_entities, many=True).data
-
-    @extend_schema_field(MetaDataSerializer(many=True))
-    def get_metadata(self, obj):
-        if self.worker_version_id:
-            # entity__isnull is not needed here as this will already do an INNER JOIN and exclude nulls
-            filters = {'entity__worker_version_id': self.worker_version_id}
-        else:
-            filters = {'entity__isnull': False}
-
-        metadata = obj.metadatas \
-            .filter(**filters) \
-            .prefetch_related('entity')
-
-        return MetaDataSerializer(metadata, many=True).data
-
-    class Meta:
-        model = Element
-        fields = ('transcriptions', 'metadata')
-
-
 class ElementTypeSerializer(ElementTypeLightSerializer):
     """
     Serialize an element type with its corpus
diff --git a/arkindex/documents/tests/test_entities_api.py b/arkindex/documents/tests/test_entities_api.py
index 5e6c74a1cace13b04773684f2cd5b36760a44f64..a3513bec62df12928564f1f74f7524535333a2db 100644
--- a/arkindex/documents/tests/test_entities_api.py
+++ b/arkindex/documents/tests/test_entities_api.py
@@ -1158,15 +1158,6 @@ class TestEntitiesAPI(FixtureAPITestCase):
             ]
         })
 
-    def test_list_element_entities_deprecated(self):
-        """
-        The ListElementEntities endpoint has been deprecated
-        """
-        with self.assertNumQueries(0):
-            response = self.client.get(reverse('api:element-entities', kwargs={'pk': str(self.element.id)}))
-        self.assertEqual(response.status_code, status.HTTP_410_GONE)
-        self.assertDictEqual(response.json(), {'detail': 'This endpoint has been deprecated.'})
-
     def test_delete_entity(self):
         self.client.force_login(self.user)
         response = self.client.delete(reverse('api:entity-details', kwargs={'pk': str(self.entity.id)}))
diff --git a/arkindex/project/api_v1.py b/arkindex/project/api_v1.py
index a0e2ead42af3ff0da6bf15ec44ab00e3a920eac8..5d32d1ae397127c6cb17b0a52eea24d79cdd79b5 100644
--- a/arkindex/project/api_v1.py
+++ b/arkindex/project/api_v1.py
@@ -30,7 +30,6 @@ from arkindex.documents.api.elements import (
 from arkindex.documents.api.entities import (
     CorpusEntities,
     CorpusRoles,
-    ElementEntities,
     ElementLinks,
     EntityCreate,
     EntityDetails,
@@ -137,7 +136,6 @@ api = [
     path('element/<uuid:pk>/children/bulk/', ElementBulkCreate.as_view(), name='elements-bulk-create'),
     path('element/<uuid:pk>/metadata/', ElementMetadata.as_view(), name='element-metadata'),
     path('element/<uuid:pk>/metadata/bulk/', ElementMetadataBulk.as_view(), name='element-metadata-bulk'),
-    path('element/<uuid:pk>/entities/', ElementEntities.as_view(), name='element-entities'),
     path('element/<uuid:pk>/links/', ElementLinks.as_view(), name='element-links'),
     path('element/<uuid:pk>/transcription/', TranscriptionCreate.as_view(), name='transcription-create'),
     path('element/<uuid:pk>/transcriptions/', ElementTranscriptions.as_view(), name='element-transcriptions'),