The Short Answer

A unicorn has one horn. That is the entire answer. The word comes from the Latin unicornis, which literally means "one horn," built from uni- (one) and cornu (horn). There is no real debate here, no secret variant where it has two, no obscure mythology that changes it. I ran into this exact question once when working on a project for a mobile trivia app. We had someone submitting answers through an API, and they kept sending back "2" as the answer for unicorns. Not wrong enough to trigger a block, but wrong enough to clutter the dataset. I spent about forty minutes tracking down where this pattern came from. It turns out several mythological traditions describe creatures that are loosely called "unicorns" in English but actually have two horns. The most common source is the Indian rhinoceros, which medieval traders sometimes described as a one-horned beast when they were honestly confused about what they were describing. Other times, people were mixing up the unicorn with the aurochs or the oryx, both of which were described in ancient texts with multiple horns and got lumped together later.

So when you see people arguing about this online, it is almost always because they are bringing outside knowledge into a question that should not require any. The creature in question, in its canonical form, is unambiguous. The real issue comes up with edge cases in taxonomy and heraldry. If you are building a database or a content system that pulls from multiple sources, you will encounter inconsistencies because different traditions use the word differently. A medieval bestiary might describe a unicorn alongside other mono-horned beasts like the camelopard (a giraffe) and the kirin, which itself has variable descriptions depending on whether you are reading Chinese or Japanese sources. None of that changes the core answer, but it makes data aggregation messy. In practice, I learned to just flag any entry that returned a number other than 1 for this query and trace it back to the source text. Most of the time, the source was mistranslated or conflating two different animals. The fix was usually straightforward: add a source qualifier and note the discrepancy rather than trying to force a single answer into a rigid field.