Most answers here are "Please don't ask"-answers, so by now you know that inquiring about ethnicity is a very sensitive matter. I won't dig into this.

**Generalize**

To my knowledge, there aren't any complete lists. The reason for this is obvious...*ahem sensitive, remember?* If you are willing to put some time into this, create your own list by doing some research. Definitely try to keep it **short and generalized**.

**When?**

You really shouldn't ask questions like this when users are registering. Even if the field is optional, some people might get offended and will leave instantly.

When should you be asking for this info? If you're doing some calculations where knowing the ethnicity could improve your results. Or before you're sending their data to a doctor.

**How?**

Well, I'd opt for something similar to what LinkedIn is using:

[![LinkedIn extra info][1]][1]  
<sub>(source: [socialstrand.com](http://socialstrand.com/wp-content/uploads/2013/10/LI_Profile-Strength-Improve.png))</sub>  



  [1]: https://i.sstatic.net/46ml9.png

The message should say something like this:

>To improve your results, you can select your etnicity. **Note:** This info will only be used to improve our analysis and will not be disclosed to third parties.


Tips:

* Always explain why you need their sensitive info and what you will be doing with it
* Reassure them their info will be stored confidentially.