diff --git a/r2/r2/controllers/api.py b/r2/r2/controllers/api.py
index b4055bb36..aef7ea9a1 100644
--- a/r2/r2/controllers/api.py
+++ b/r2/r2/controllers/api.py
@@ -1938,6 +1938,23 @@ class ApiController(RedditController):
jquery('input[name="css_class"]').data('saved', css_class)
form.set_html('.status', _('saved'))
+ @validatedForm(VFlairManager(),
+ VModhash(),
+ user = VExistingUname("name", allow_deleted=True))
+ def POST_deleteflair(self, form, jquery, user):
+ # Check validation.
+ if form.has_errors('name', errors.USER_DOESNT_EXIST, errors.NO_USER):
+ return
+ c.site.remove_flair(user)
+ setattr(user, 'flair_%s_text' % c.site._id, None)
+ setattr(user, 'flair_%s_css_class' % c.site._id, None)
+ user._commit()
+
+ jquery('#flairrow_%s' % user._id36).remove()
+ unflair = WrappedUser(
+ user, include_flair_selector=True).render(style='html')
+ jquery('.tagline .id-%s' % user._fullname).parent().html(unflair)
+
@validate(VFlairManager(),
VModhash(),
flair_csv = nop('flair_csv'))
diff --git a/r2/r2/templates/flairlistrow.html b/r2/r2/templates/flairlistrow.html
index 8fe53d157..ee763a155 100644
--- a/r2/r2/templates/flairlistrow.html
+++ b/r2/r2/templates/flairlistrow.html
@@ -42,6 +42,7 @@ from r2.lib.pages import WrappedUser
${utils.error_field(('BAD_CSS_NAME', 'flair_css_class'), 'name')}
${utils.error_field(('TOO_MUCH_FLAIR_CSS', 'flair_css_class'), 'name')}
+ X