Are you a data scientist researching hate speech, or an NGO interested in increased situational awareness? Connect with Hatebase developer Timothy Quinn to discuss maximizing your use of the Hatebase's dataset.

Looking for an easy way to integrate with the Hatebase API? Check out Andrew Welters' handy open source Hatebase PHP wrapper.


Registration & Login
Email from the website may take several minutes to arrive. If you haven't received an email after ten minutes, please check your junk mail folder. If you still haven't received an authorizing email, please try registering again.
If the link is broken, try copying it manually into your browser's address bar.
Obivously, we hope you won't ever want to suspend your account on Hatebase, but if you do wish to sever your relationship with us, please contact us and let us know. We'll terminate your account within 5 business days.

Please note that terminating your account will only prevent future use of Hatebase. Your previous edits or attribution will not be removed.
Although we don't suspend accounts lightly, we won't let users who violate our terms of service negatively impact the experience for all. We're particularly diligent about those who are unable to distinguish between a service ABOUT hate speech (this is us) versus a service FOR hate speech (not us).
The Hatebase API
Please check the error messages returned by the API; often this indicates the exact nature of the problem (e.g. you've surpassed the daily query limit).

If you're unable to diagnose the problem based on the returned error messages, check that the input parameters are correct. Failing to properly specify an input parameter will prevent the API from returning any data at all.

If you're still stuck, let us know.
Queries are initially parsed into XML and then converted to JSON, so you'll get a minor bump in performance if you skip the conversion and consume data in XML format.
Like many popular web services, Hatebase enforces a daily query limit to ensure that the service is equally accessible to all users.

Your daily query limit is on a 24-hour cycle, so there's no specific time of day when the counter goes back to zero.
We *strongly* recommend not querying the Hatebase API in real-time. A better practice when utilizing data from external sources such as Hatebase is to query any external APIs asynchronously (e.g. using a cron job that triggers daily). You can then store that data in your own system where you can query it at will. Not only does this solve the problem of over-taxing external resources (and triggering query limits), but it also improves the performance of your own application by letting users query local data rather than remote data. An additional benefit of this approach is that occasional downtime and service outages at Hatebase won't have direct impact on your own application.
Contributing to the Database
Hate speech is difficult to quantify, but most people would agree with Justice Potter Stewart's famous sentiment: "I know it when I see it." Hatebase defines hate speech as any term which broadly categorizes a specific group of people based on malignant, qualitative and/or subjective attributes -- particularly if those attributes pertain to ethnicity, nationality, religion, sexuality, disability or class.

Further, hate speech must be in the common vernacular -- an anonymous definition on Urban Dictionary, or a word you heard once on Law & Order, does not hate speech make.

If undecided as to whether to add a piece of vocabulary to the database, take this test:

1. Does it refer to a specific group of people or is it a generalized insult? If the latter, it's probably not hate speech.

2. Can it potentially be used with malicious intent? If not, it's probably not hate speech.

3. Are there objective third-party sources online which can be used as citations? If not, it's probably not hate speech.

4. If you were to write a program which monitors hate speech on Twitter, would finding it in a random tweet be potentially meaningful? If not, it's probably not hate speech.
A variant is simply an alternate spelling of another term in the database. A variant is NOT a synonym or translation.
Hatebase is a multilingual platform and accepts all UTF-8 characters (including accented characters), but "latinizes" the main vocabulary field to optimize search performance.

If you're adding a term with an accent, simply repeat the term somewhere in the "meaning" field, which isn't latinized.
At present, Hatebase is architected to display UTF-8 characters only -- basically, the extended Latin alphabet, including accented characters. Further extending Hatebase to logographic character sets is certainly on our roadmap, but may not happen anytime soon unless we hear from our users that it's strongly desired.
Although there may be exceptions to this rule based on circumstance, we recommend that "overheard" denote actually hearing the term used by another person either in your presence or in a live media performance. By this definition, hearing an ethnic slur in a Quentin Tarantino movie would NOT constitute a sighting, but hearing the same term used in a live radio broadcast WOULD constitute a sighting.
Citations should be authoritative, which is always open to interpretation. So while a blog post from a trusted source would be a good citation, a Twitter search link or an Urban Dictionary page would not be.

Because Hatebase is a crowdsourced environment, it's always good to have a supporting citation from a non-crowdsourced environment to further validate usage.
Hatebase editors may occasionally "freeze" a specific piece of vocabulary, thereby temporarily preventing further editing. There may be several reasons for this, but in general, vocabulary is frozen when (a) the system detects two or more users reverting each other's definitions rather than trying to compromise on a fair definition, (b) recent edits have become polarized, political or incendiary, and/or (c) Hatebase administrators wish to defer further debate while sourcing a neutral third-party definition.
When a unit of vocabulary is entered which is not considered hate speech, and compelling citations cannot be provided to support it, the term is usually disabled, meaning that it no longer shows up on the website and cannot be re-added.
Editorial Guidelines
All vocabulary should be entered in the singular.
Please use lowercase unless the word is specifically a proper noun.
To keep Hatebase's index of vocabulary as searchable as possible, avoid using dashes in vocabulary terms. Use a space instead.

Similarly, while quotes are fine within the meaning of a word, avoid using single or double quotes in the term itself, which just makes things more difficult for search.
Our Mission
Ignoring or hiding endemic societal problems has a poor track record. We believe that a more effective strategy is to understand social problems, demythologize them, and try to come up with quantifiable solutions.
Contextual language analysis is an ambitious task for automation and/or crowdsourcing, but it's not entirely off our radar. Our goal at this point is to focus on vocabulary as low-hanging fruit, and over time broaden our focus to encompass a broader perspective on hate speech.

Still can't find what you're looking for? Let us know.