I have a headache
A very common alternative, literally meaning 'My head hurts me'. It uses the verb 'doler' (to hurt), which is essential for talking about pain.
A conversational phrase meaning 'I'm walking around with a headache', used to describe a current, ongoing state of having a headache.
I can't go to the party. I have a headache.
Can you speak more quietly, please? My head hurts.
I need a pill. I have a very strong headache.
I'm not going to work today. I have a headache.
'Tengo dolor de cabeza' and 'Me duele la cabeza' are the standard, universally understood phrases across all of Latin America.
The phrases are identical to those used in Latin America. There is no significant regional difference for this expression.
In addition to the standard phrases, people might say 'Tengo jaqueca' (ha-KEH-kah), which technically means 'migraine' but is often used informally for any bad headache.
A very informal, slang way to say this is 'Tengo un dolor de bocha'. 'Bocha' is a colloquial term for 'head'. This is not for formal situations.
Yo tengo dolor de cabeza. — While not grammatically wrong, Spanish speakers usually drop the pronoun 'yo' (I) because the verb 'tengo' already makes it clear who has the headache. Saying 'Tengo dolor de cabeza' sounds more natural.
Mi cabeza duele. — This is a direct translation from English. The verb 'doler' (to hurt) works differently. You must use the structure 'Me duele la cabeza', which literally means 'The head hurts me'.
Tengo un dolor de la cabeza. — The phrase 'dolor de cabeza' is a set expression. You should not add the article 'la' before 'cabeza'. The correct form is 'Tengo dolor de cabeza' or 'Tengo un dolor de cabeza' if you want to emphasize 'a' headache.