Valsts nosaukums “Latvija” veidots no etnonīma jeb tautas vai cilts nosaukuma. Latīņu valodas etnonīma formas Lethi, Letthi, Leththi un Letti, reģistrētas 13. gs. dokumentos, apzīmēja gan letgaļu ciltis (Lethos, qui proprie dicuntur Lethigalli; Lethi vel Letthigalli, 1224/1226), gan krievu hronikās visus baltus. Senākais zināmais etnonīma “latvis” (Latwis) lietojums datējams ar 1648. gadu, kas vēlāk tika plaši lietots romantisma dzejā. Mūsdienu etnonīma variants “latvietis”, kas darināts ar piedēkli no minētās formas “latvis”, lietots vismaz jau ar 1625. gadu datētajā “Linaudēju šrāgā” – Rīgas linaudēju amata statūtos. 17. gs. beigās Kristofora Fīrekera latviešu-vācu vārdnīcas manuskriptā atrodama acīmredzot kļūdaina forma Latweesis, kādā citā anonīmas vārdnīcas (Manuale Lettico-Germanicum) rokrakstā – Latweetis. Etnonīma “latvis” izcelsme ir senāka nekā valsts vai teritorijas nosaukums; tā darināšana nav īsti skaidra. Iespējams, etnonīms radies no senākām vārda formām *latuvis (*šeit un turpmāk rekonstruēta forma, kas reāli valodā nav konstatēta) vai *latavis, kas savukārt atvasinātas no īpašvārdiem (hidronīmiem) *Latuva vai *Latava. Visdrīzāk tas ir hidronīmiskas cilmes etnonīms: salīdzinājumam latviešu nosaukumi upēm – Late, Latupe, lietuviešu ‒ Latavà, Latuvà, kā arī Lãtupis, kam savukārt cilme ir radniecīga ar sengrieķu “λάταξ” ‘piliens’, īru “lathach” ‘dūņas, dubļi’, senaugšvācu “letto” ‘māls’ u. c., kas radušies no indoeiropiešu pirmvalodas saknes *lat- ar sākotnējo nozīmi ‘mitrs, šķidrs; purvs, peļķe, staignājs’, salīdzinājumam arī indoeiropiešu pirmvalodas *lat-, *let-, *lot- (‘tecēt’). Par šīs upes un Latvas teritorijas atrašanās vietu joprojām tiek diskutēts. Valodnieki min pretrunīgas upes atrašanās vietas: Jēkabs Lange – A-Vidzemi, Jānis Endzelīns – Lejasciemu; Ojārs Bušs – kā Gaujas pieteku Gulbenes rajonā, Kazimiers Būga – Viļņas apkaimi. Lietuvā, piemēram, arī Šventājā pie tagadējās Latvijas robežas, ir daudzas upes, kuru nosaukumā ir šī sakne. Etnonīms varbūt sākotnēji nozīmējis ‘ļaudis, kas dzīvo pie Latas/Latavas upes’, savukārt upes nosaukums pēc pirmatnējās nozīmes varētu būt analogs nosaukumam Mālupe vai Dubļupe.
Eksistē arī citas etnonīma “latvis” hipotēzes. Lietuviešu valodnieks Sims Karaļūns (Simas Karaliūnas) uzskatījis, ka etnonīma pamatā varētu būt šīs pašas etimoloģiskās ligzdas vārds ar nozīmi ‘zeme’, salīdzinājumam lietuviešu latãkas ‘purvs; zemes strēmele’, latviešu valodas apvidvārdu “lata” ‘zemes strēmele; lauks’, “late” ‘lauks; tīruma gabals’ (lai gan šie vārdi tiek uzskatīti par ģermānismiem, turklāt tie ir izplatīti ļoti šaurā areālā).
Ir bijuši vairāki nezinātniski skaidrojumi par etnonīma “latvis”/”latvietis” izcelsmi: mēģināts to saistīt ar latīņu latus ‘plašs’ un Itālijas novada nosaukumu Lacio (latīņu Latium), atvedināt no latviešu verba “līst” (mežu), kā arī no latviešu apvidvārda “lāt” ‘saderīgi dzīvot’ un citi.
No vārda “latvis” cēlies arī latviešu tautas nosaukums citās valodās, piemēram, lietuviešu lãtvis, krievu латыш, poļu lotysz, vācu Lette, angļu Lett (mūsdienās Latvian), igauņu läti un somu lätti (mūsdienās latvialainen). Lai gan vēl 1923. gadā Latvijas Republikas (LR) Ministru kabinetā (MK) tika pieņemts rīkojums, saskaņā ar kuru LR nosaukums romāņu valodās ir Lettonie, ģermāņu valodās – Lettland (bet angļu – Latvia), tomēr mūsdienās tiek lietoti dažādi nosaukuma varianti.