400 очень общий, так что для валидации данных больше подходит 422, но конкретно для "какое-либо поле уже существует" очень подходит 409
Но на самом деле, статус код это больше про конкретные соглашения между сторонами и они могу отличаться от общепринятых.
ЗЫ у меня есть проект, где ошибки реально размазаны по 4XX кода, там я никогда не помню какую когда ставить и всегда открываю специальный док с описанием, а есть, где просто выдается ошибка 400 с {'error': 'текстовое описание ошибки'}