Create Project API returns HTTP 500
## Details
I want to create a project with API v3 but it is giving me 500 Internal Error.

I have tried the example here: https://docs.readthedocs.io/en/stable/api/v3.html#project-create

* Read the Docs project URL: -
* Build URL (if applicable): -
* Read the Docs username (if applicable): limonkufu

## Expected Result

Successfully created project

## Actual Result

HTTP 500 Internal Server Error: Fail. Check back in a bit!


diff --git a/readthedocs/api/v3/serializers.py b/readthedocs/api/v3/serializers.py
index 7ca6226ec..99fb848bc 100644
--- a/readthedocs/api/v3/serializers.py
+++ b/readthedocs/api/v3/serializers.py
@@ -11,6 +11,7 @@ from rest_flex_fields.serializers import FlexFieldsSerializerMixin
 from rest_framework import serializers
 
 from readthedocs.builds.models import Build, Version
+from readthedocs.core.utils import slugify
 from readthedocs.projects.constants import (
     LANGUAGES,
     PROGRAMMING_LANGUAGES,
@@ -420,6 +421,14 @@ class ProjectCreateSerializer(FlexFieldsModelSerializer):
             'homepage',
         )
 
+    def validate_name(self, value):
+        potential_slug = slugify(value)
+        if Project.objects.filter(slug=potential_slug).exists():
+            raise serializers.ValidationError(
+                _('Project with slug "{0}" already exists.').format(potential_slug),
+            )
+        return value
+
 
 class ProjectUpdateSerializer(FlexFieldsModelSerializer):
 
diff --git a/readthedocs/api/v3/tests/test_projects.py b/readthedocs/api/v3/tests/test_projects.py
index 915477823..d9998d320 100644
--- a/readthedocs/api/v3/tests/test_projects.py
+++ b/readthedocs/api/v3/tests/test_projects.py
@@ -1,8 +1,10 @@
-from .mixins import APIEndpointMixin
+import django_dynamic_fixture as fixture
 from django.urls import reverse
 
 from readthedocs.projects.models import Project
 
+from .mixins import APIEndpointMixin
+
 
 class ProjectsEndpointTests(APIEndpointMixin):
 
@@ -143,6 +145,26 @@ class ProjectsEndpointTests(APIEndpointMixin):
             self._get_response_dict('projects-list_POST'),
         )
 
+    def test_import_existing_project(self):
+        fixture.get(
+            Project,
+            slug='test-project',
+            name='Test Project',
+        )
+        data = {
+            'name': 'Test Project',
+            'repository': {
+                'url': 'https://github.com/rtfd/template',
+                'type': 'git',
+            },
+            'homepage': 'http://template.readthedocs.io/',
+            'programming_language': 'py',
+        }
+
+        self.client.credentials(HTTP_AUTHORIZATION=f'Token {self.token.key}')
+        response = self.client.post(reverse('projects-list'), data)
+        self.assertContains(response, 'Project with slug \\\\"test-project\\\\" already exists.', status_code=400)
+
     def test_import_project_with_extra_fields(self):
         data = {
             'name': 'Test Project',
['readthedocs/api/v3/serializers.py', 'readthedocs/api/v3/tests/test_projects.py']