Any organization authorized to access the GARR network can request domain names from the GARR NIC
Before initiating a request for a new .eu domain, it is necessary to read the service description, and, in case of doubts, contact the GARR NIC
REQUEST PROCEDURE
To register a new ".eu" domain name, you need to:
- Read the documentation available in the Forms Section
- To download the registration form for the Request and Maintenance of a domain.
- The completed form with the registration request must be sent by email to This email address is being protected from spambots. You need JavaScript enabled to view it. and copied to This email address is being protected from spambots. You need JavaScript enabled to view it..
Fill in by indicating:
- Organization
- Contact Person: First Name, Last Name
- Phone
- address
- Valid Email Address. A valid email address is important, being the only means through which to contact you: it will be used as a communication tool. EURid reserves the right to revoke a domain name if not accompanied by a valid email address.
- Registrations are made on a "first come, first served" basis, meaning that the Registry processes the registration of a domain name based on the first request received. The registration of a .eu domain name lasts for one year. Unless otherwise notified in advance by EURid through GARR-NIC, the domain name will be renewed upon its expiry.
- A domain name must be unique. To check the availability of a name, use the WHOIS search tool .
- Domain names must meet certain technical requirements:
- at least 2 characters between 'a' and 'z'
- numbers from '0' to '9' and the hyphen '-'
- a maximum of 63 characters
- must not begin or end with a hyphen
- cannot contain a hyphen '-' in the third and fourth position.
In accordance with EU Regulation 733/2002 and CE Regulation 874/2004, certain names cannot be registered, and others are reserved for use by EU institutions or the governments of member states, EEA countries, and candidate countries.
The ability to use special Latin characters, as well as characters from the Greek and Cyrillic alphabets (without mixing different alphabets) for registering domain names under the .eu extension in Latin was introduced in December 2009. In 2016, EURid introduced the .eu extension in Cyrillic (.ею), and in 2019, the .eu extension in Greek (.ευ). With the introduction of these two new extensions, a rule was implemented stating that the alphabet used for the .eu extension must match the alphabet used for the domain name (latin.latin, cyrillic.cyrillic, and greek.greek).
For more information about .eu IDN domains, please visit these links:
EURid's Timeline
Domain names (IDNs)
TERMS AND CONDITIONS FOR REGISTRATION
At the time of registering a domain name, it is necessary to consent to the terms and conditions for end-users. This includes being bound to an extrajudicial resolution of disputes if a third-party claimant with recognized rights to the domain name alleges that your registration was made for speculative or abusive purposes. GARR-NIC will submit these conditions to you at the time of registration for formal signature. Non-compliance with these conditions may result in the loss of the domain name.
UPDATE OF THE NAME SERVER
our domain name will be active only after the EURid name server is updated. The update is performed five times a day. Of course, this will be possible only if GARR-NIC has also made the necessary changes.
WHOIS
Once registered, your domain name will be immediately stored in the WHOIS database. Some of your data will be publicly available through the WHOIS lookup function, which allows interested parties to find out who owns a specific domain name or associated website. Of course, the WHOIS database will be subject to restrictions to prevent misuse and comply with data protection requirements. Anyone accessing information through WHOIS will be subject to a disclaimer, which essentially states that the information cannot be used for commercial purposes.
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
*/
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.container {
max-width: 1400px;
margin: 0 auto;
}
.header {
text-align: center;
margin-bottom: 30px;
color: white;
}
.header h1 {
font-size: 2.8rem;
margin-bottom: 10px;
text-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.header p {
font-size: 1.2rem;
opacity: 0.9;
margin-bottom: 20px;
}
.charts-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 30px;
margin-bottom: 30px;
}
@media (max-width: 768px) {
.charts-grid {
grid-template-columns: 1fr;
}
}
.chart-card {
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
border-radius: 20px;
padding: 30px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
border: 1px solid rgba(255, 255, 255, 0.2);
transition: all 0.3s ease;
}
.chart-card:hover {
transform: translateY(-5px);
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
}
.chart-header {
margin-bottom: 25px;
}
.chart-title {
font-size: 1.6rem;
color: #2d3748;
margin-bottom: 10px;
font-weight: 600;
}
.chart-subtitle {
color: #114693;
font-size: 1rem;
line-height: 1.5;
margin-top: 10px;
}
.chart-container {
position: relative;
height: 350px;
margin-bottom: 25px;
}
.pie-chart {
height: 400px;
}
.controls {
display: flex;
gap: 12px;
justify-content: center;
flex-wrap: wrap;
}
.period-btn, .download-btn, .year-selector {
padding: 10px 18px;
border: none;
border-radius: 25px;
cursor: pointer;
font-size: 0.95rem;
font-weight: 500;
transition: all 0.3s ease;
}
.year-selector {
background: linear-gradient(45deg, #667eea, #764ba2);
color: white;
border: none;
}
.year-selector:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
}
.period-btn {
background: linear-gradient(45deg, #667eea, #764ba2);
color: white;
}
.period-btn:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
}
.period-btn.active {
background: linear-gradient(45deg, #4c63d2, #5a4291);
box-shadow: 0 4px 12px rgba(102, 126, 234, 0.6);
}
.download-btn {
background: #0f6e37;
color: white;
}
.download-btn:hover {
background: #38a169;
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(72, 187, 120, 0.4);
}
.stats-summary {
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
border-radius: 20px;
padding: 30px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
border: 1px solid rgba(255, 255, 255, 0.2);
}
.stats-title {
text-align: center;
font-size: 1.8rem;
color: #2d3748;
margin-bottom: 25px;
font-weight: 600;
}
.stats-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
}
.stat-item {
text-align: center;
padding: 20px;
background: linear-gradient(135deg, #f7fafc 0%, #edf2f7 100%);
border-radius: 15px;
border: 1px solid #e2e8f0;
transition: all 0.3s ease;
}
.stat-item:hover {
transform: translateY(-3px);
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
}
.stat-number {
font-size: 2rem;
font-weight: 700;
color: #667eea;
margin-bottom: 8px;
}
.stat-label {
font-size: 0.95rem;
color: #4a5568;
font-weight: 500;
}
.highlight-stat {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
.highlight-stat .stat-number {
color: white;
}
.highlight-stat .stat-label {
color: rgba(255, 255, 255, 0.9);
}
2019-2024
2014-2018
📊 Download Chart
Select year:
2024
2023
📊 Download Chart
// Color palette
const colors = {
primary: [
'#667eea', '#764ba2', '#f093fb', '#f5576c',
'#4facfe', '#00f2fe', '#43e97b', '#38f9d7',
'#ffecd2', '#fcb69f', '#a8edea', '#fed6e3'
]
};
// Chart.js default options
const defaultOptions = {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
labels: {
font: { size: 13, weight: '500' },
color: '#4a5568',
padding: 20
}
},
tooltip: {
backgroundColor: 'rgba(0, 0, 0, 0.8)',
titleColor: 'white',
bodyColor: 'white',
borderColor: 'rgba(255, 255, 255, 0.2)',
borderWidth: 1,
cornerRadius: 8,
padding: 12
}
}
};
// Data definitions
const domainsData = {
period1: {
labels: ['2019', '2020', '2021', '2022', '2023', '2024'],
datasets: [
{ label: '.it', data: [117, 92, 122, 105, 98, 127] },
{ label: '.eu', data: [119, 87, 110, 95, 107, 91] }
]
},
period2: {
labels: ['2014', '2015', '2016', '2017', '2018'],
datasets: [
{ label: '.it', data: [96, 98, 103, 136, 164] },
{ label: '.eu', data: [70, 81, 79, 118, 90] }
]
}
};
const domainsByOrgData = {
2024: {
'Universities': 120,
'CNR': 64,
'Other organizations': 21,
'INFN': 7,
'Other': 6
},
2023: {
'Universities': 102,
'CNR': 69,
'Other organizations': 24,
'INFN': 6,
'Other': 6
}
};
// Chart instances
let domainsChart, domainsByOrgChart;
// Initialize Domains Timeline Chart
function createDomainsChart(period = 'period1') {
const ctx = document.getElementById('domainsChart').getContext('2d');
const data = domainsData[period];
if (domainsChart) {
domainsChart.destroy();
}
const datasets = data.datasets.map((dataset, index) => ({
label: dataset.label,
data: dataset.data,
backgroundColor: colors.primary[index],
borderColor: colors.primary[index],
borderWidth: 2,
borderRadius: 8,
borderSkipped: false
}));
domainsChart = new Chart(ctx, {
type: 'bar',
data: {
labels: data.labels,
datasets: datasets
},
options: {
...defaultOptions,
scales: {
y: {
beginAtZero: true,
title: {
display: true,
text: 'Operations',
font: { size: 13, weight: '500' },
color: '#4a5568'
},
grid: {
color: 'rgba(0, 0, 0, 0.1)'
},
ticks: {
color: '#4a5568',
font: { size: 12 }
}
},
x: {
title: {
display: true,
text: 'Year',
font: { size: 13, weight: '500' },
color: '#4a5568'
},
grid: {
display: false
},
ticks: {
color: '#4a5568',
font: { size: 12 }
}
}
}
}
});
// Update button states
document.querySelectorAll('.period-btn').forEach(btn => btn.classList.remove('active'));
document.getElementById(`domainsPeriod${period === 'period1' ? '1' : '2'}`).classList.add('active');
}
// Initialize Domains by Organization Chart
function createDomainsByOrgChart(year = '2024') {
const ctx = document.getElementById('domainsByOrgChart').getContext('2d');
const data = domainsByOrgData[year];
if (domainsByOrgChart) {
domainsByOrgChart.destroy();
}
domainsByOrgChart = new Chart(ctx, {
type: 'doughnut',
data: {
labels: Object.keys(data),
datasets: [{
data: Object.values(data),
backgroundColor: colors.primary,
borderWidth: 3,
borderColor: '#ffffff',
hoverBorderWidth: 4,
hoverOffset: 15
}]
},
options: {
...defaultOptions,
cutout: '55%',
plugins: {
...defaultOptions.plugins,
tooltip: {
...defaultOptions.plugins.tooltip,
callbacks: {
label: function(context) {
const total = context.dataset.data.reduce((a, b) => a + b, 0);
const percentage = ((context.parsed * 100) / total).toFixed(1);
return `${context.label}: ${context.parsed.toLocaleString()} (${percentage}%)`;
}
}
}
}
}
});
}
// Event Listeners
document.getElementById('domainsPeriod1').addEventListener('click', () => {
createDomainsChart('period1');
updateStats();
});
document.getElementById('domainsPeriod2').addEventListener('click', () => {
createDomainsChart('period2');
updateStats();
});
document.getElementById('domainsOrgYear').addEventListener('change', () => {
const year = document.getElementById('domainsOrgYear').value;
createDomainsByOrgChart(year);
updateStats();
});
// Download handlers
document.getElementById('downloadDomains').addEventListener('click', () => {
const period = document.querySelector('.period-btn.active').textContent;
const link = document.createElement('a');
link.download = `registered-domains-${period}.png`;
link.href = domainsChart.toBase64Image();
link.click();
});
document.getElementById('downloadDomainsByOrg').addEventListener('click', () => {
const year = document.getElementById('domainsOrgYear').value;
const link = document.createElement('a');
link.download = `domains-by-organization-${year}.png`;
link.href = domainsByOrgChart.toBase64Image();
link.click();
});
// Calculate statistics
function calculateStats() {
const currentPeriod = document.querySelector('.period-btn.active').textContent;
const periodData = currentPeriod === '2019-2024' ? domainsData.period1 : domainsData.period2;
const selectedOrgYear = document.getElementById('domainsOrgYear').value;
// Calculations for current period
const itData = periodData.datasets[0].data;
const euData = periodData.datasets[1].data;
const totalIt = itData.reduce((a, b) => a + b, 0);
const totalEu = euData.reduce((a, b) => a + b, 0);
const totalDomains = totalIt + totalEu;
const lastYearIt = itData[itData.length - 1];
const lastYearEu = euData[euData.length - 1];
const lastYearTotal = lastYearIt + lastYearEu;
const avgPerYear = (totalDomains / periodData.labels.length).toFixed(0);
// Calculations for organizations
const orgData = domainsByOrgData[selectedOrgYear];
const totalOrgDomains = Object.values(orgData).reduce((a, b) => a + b, 0);
const topOrg = Object.entries(orgData).sort((a, b) => b[1] - a[1])[0];
const topOrgPercentage = ((topOrg[1] / totalOrgDomains) * 100).toFixed(1);
return {
currentPeriod,
selectedOrgYear,
totalDomains,
totalIt,
totalEu,
lastYearTotal,
lastYearIt,
lastYearEu,
avgPerYear,
totalOrgDomains,
topOrg: topOrg[0],
topOrgCount: topOrg[1],
topOrgPercentage
};
}
// Update stats
function updateStats() {
const stats = calculateStats();
const statsData = [
{
label: `Total domains (${stats.currentPeriod})`,
value: stats.totalDomains.toLocaleString(),
highlight: true
},
{
label: `.it Domains (${stats.currentPeriod})`,
value: stats.totalIt.toLocaleString()
},
{
label: `.eu Domains (${stats.currentPeriod})`,
value: stats.totalEu.toLocaleString()
},
{
label: `Annual average (${stats.currentPeriod})`,
value: stats.avgPerYear
},
{
label: `Total domains by organization (${stats.selectedOrgYear})`,
value: stats.totalOrgDomains.toLocaleString(),
highlight: true
},
{
label: `Top: ${stats.topOrg}`,
value: `${stats.topOrgCount} (${stats.topOrgPercentage}%)`
},
{
label: `Last year .it (${stats.currentPeriod.slice(-4)})`,
value: stats.lastYearIt.toString()
},
{
label: `Last year .eu (${stats.currentPeriod.slice(-4)})`,
value: stats.lastYearEu.toString()
}
];
document.getElementById('statsGrid').innerHTML = statsData.map(stat =>
`
${stat.value}
${stat.label}
`
).join('');
}
// Initialize charts and stats
createDomainsChart();
createDomainsByOrgChart();
updateStats();
// Add hover effects
document.querySelectorAll('.chart-card').forEach(card => {
card.addEventListener('mouseenter', function() {
this.style.transform = 'translateY(-8px)';
});
card.addEventListener('mouseleave', function() {
this.style.transform = 'translateY(0)';
});
});