Minecraft API

Безкоштовний API для отримання даних про гравців Minecraft

Наш API дозволяє отримувати інформацію про гравців Minecraft: UUID, скіни, аватарки та історію нікнеймів. Всі ендпоінти безкоштовні та не потребують автентифікації.

https://mc.uwu.org.ua/api/minecraft
GET /api/minecraft/:player

Отримати повну інформацію про гравця: UUID, нікнейм, URL скіна та плаща.

Параметри шляху

player обов'язковий Username або UUID гравця

Приклад запиту

GET /api/minecraft/Hacker_Zaba
GET /api/minecraft/069a79f4-44e9-4726-a5be-fca90e38aaf5

Приклад відповіді

{
  "uuid": "069a79f4-44e9-4726-a5be-fca90e38aaf5",
  "username": "Hacker_Zaba",
  "skin": "https://textures.minecraft.net/texture/...",
  "cape": null,
  "model": "default"
}

Поля відповіді

uuid UUID гравця з дефісами
username Поточний нікнейм гравця
skin URL текстури скіна (Mojang CDN)
cape URL текстури плаща або null
model "default" (Steve) або "slim" (Alex)

JavaScript

fetch('/api/minecraft/Hacker_Zaba')
  .then(res => res.json())
  .then(data => console.log(data.uuid));
GET /api/minecraft/head/:player

Отримати аватарку голови гравця як PNG зображення. Повертає бінарні дані зображення.

Параметри шляху

player обов'язковий Username або UUID гравця

Query параметри

size опціональний Розмір зображення в пікселях (8-512). За замовчуванням: 64
overlay опціональний Показувати шар шапки (true/false). За замовчуванням: true

Приклади запитів

GET /api/minecraft/head/Hacker_Zaba
GET /api/minecraft/head/Hacker_Zaba?size=128
GET /api/minecraft/head/Hacker_Zaba?size=256&overlay=false

Візуальні приклади

Hacker_Zaba avatar ?size=64 з overlay
Hacker_Zaba avatar 128px ?size=128 з overlay
Hacker_Zaba avatar no overlay ?overlay=false без overlay

HTML використання

<img src="https://mc.uwu.org.ua/api/minecraft/head/Hacker_Zaba?size=64" alt="Avatar" />

<!-- Великий аватар без шапки -->
<img src="https://mc.uwu.org.ua/api/minecraft/head/Hacker_Zaba?size=256&overlay=false" alt="Avatar" />
GET /api/minecraft/history/:player

Отримати історію нікнеймів гравця.

Параметри шляху

player обов'язковий Username або UUID гравця

Приклад запиту

GET /api/minecraft/history/Hacker_Zaba

Приклад відповіді

{
  "uuid": "069a79f4-44e9-4726-a5be-fca90e38aaf5",
  "username": "Hacker_Zaba",
  "name_history": [
    { "username": "Hacker_Zaba" },
    { "username": "OldName", "changed_at": "2015-01-15T10:30:00Z" }
  ]
}

Поля відповіді

uuid UUID гравця
username Поточний нікнейм
name_history Масив попередніх нікнеймів з датами зміни
GET /api/minecraft/skin-history/:player

Отримати історію скінів гравця (тільки ті, що були збережені нашим сервером).

Параметри шляху

player обов'язковий Username або UUID гравця

Приклад запиту

GET /api/minecraft/skin-history/Hacker_Zaba

Приклад відповіді

{
  "uuid": "069a79f444e94726a5befca90e38aaf5",
  "count": 3,
  "skins": [
    {
      "timestamp": 1704567890123,
      "date": "06.01.2026, 15:30:45",
      "url": "/api/minecraft/skin-file/069a79f444e94726a5befca90e38aaf5_1704567890123.png"
    },
    {
      "timestamp": 1704456789012,
      "date": "05.01.2026, 10:15:30",
      "url": "/api/minecraft/skin-file/069a79f444e94726a5befca90e38aaf5_1704456789012.png"
    }
  ]
}

Поля відповіді

uuid UUID гравця (без дефісів)
count Кількість збережених скінів
skins Масив скінів від найновішого до найстарішого
skins[].timestamp Unix timestamp (мілісекунди)
skins[].date Дата у форматі UK (dd.mm.yyyy, hh:mm:ss)
skins[].url Шлях до файлу скіна
⚠️ Примітка: Історія скінів накопичується тільки коли гравці використовують наш API. Ми не маємо доступу до повної історії Mojang.
GET /api/minecraft/skin-file/:filename

Отримати конкретний файл скіна з історії. Повертає PNG зображення.

Параметри шляху

filename обов'язковий Назва файлу скіна (отримана з /skin-history)

Приклад запиту

GET /api/minecraft/skin-file/069a79f444e94726a5befca90e38aaf5_1704567890123.png

Відповідь

PNG зображення скіна (64×64 або 64×32 для старих скінів)

HTML використання

<img src="https://mc.uwu.org.ua/api/minecraft/skin-file/uuid_timestamp.png" alt="Skin" />

⚡ Кешування та ліміти

  • Дані гравця кешуються на 60 секунд
  • Історія нікнеймів кешується на 5 хвилин
  • Аватарки кешуються на 5 хвилин
  • Файли скінів кешуються на 1 рік (immutable)
  • Немає обмежень на кількість запитів
  • CORS увімкнено для всіх доменів

📋 Заголовки відповіді

X-Cache HIT — дані з кешу, MISS — свіжі дані
Cache-Control Рекомендований час кешування для клієнта
Access-Control-Allow-Origin * — дозволяє CORS запити

❌ Коди помилок

400 Bad Request Не вказано гравця або невалідні параметри
404 Not Found Гравця або файл не знайдено
500 Internal Error Помилка сервера або Mojang API недоступний

Приклад помилки

{
  "error": "Player not found"
}

💡 Приклади використання

Отримати аватар та ім'я гравця

async function getPlayer(username) {
  const res = await fetch(`/api/minecraft/${username}`);
  const data = await res.json();
  
  return {
    name: data.username,
    avatar: `/api/minecraft/head/${data.uuid}?size=128`,
    isSlim: data.model === 'slim'
  };
}

Показати історію скінів

async function showSkinHistory(username) {
  const res = await fetch(`/api/minecraft/skin-history/${username}`);
  const data = await res.json();
  
  data.skins.forEach(skin => {
    const img = document.createElement('img');
    img.src = skin.url;
    img.title = skin.date;
    container.appendChild(img);
  });
}