Пустая картинка для профиля

API заглушек для аватаров

Бесплатные заглушки для аватаров без ключа — и для разработки, и для продакшена. Укажите URL в теге img и получите аккуратный детерминированный SVG размером в несколько сотен байт. Ни регистрации, ни установки.

https://blankpfp.com/api/avatar

Живые примеры

Все изображения ниже отдаёт в реальном времени эндпоинт, описанный на этой странице.

Быстрый старт

Вставьте URL прямо в тег img. Размеры задаются в пикселях, форма по умолчанию — круг, поэтому дополнительные стили не нужны.

<img src="https://blankpfp.com/api/avatar/seed/alice/200" alt="Alice" width="200" height="200">

Или используйте его как фон в CSS:

.avatar {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background-image: url("https://blankpfp.com/api/avatar/seed/alice/96");
  background-size: cover;
}

В JavaScript соберите URL из того, что идентифицирует пользователя:

avatar.src = 'https://blankpfp.com/api/avatar/seed/' + encodeURIComponent(user.email) + '/200';

Синтаксис URL

Все четыре формы принимают необязательную высоту. Добавьте .json к любой из них, чтобы получить метаданные, описанные ниже, вместо самого изображения.

URL Что вы получите
/api/avatar/{width} Квадратный аватар. Один и тот же URL всегда возвращает одно и то же изображение.
/api/avatar/{width}/{height} Не квадратный холст — удобно для широких баннеров и аватаров сторис.
/api/avatar/seed/{seed}/{width} Детерминированный аватар из любой строки-сида.
/api/avatar/id/{id}/{width} Детерминированный аватар из числового идентификатора, например строки базы данных.

Детерминированные сиды

Сид хешируется в один цвет из палитры из 48 оттенков, поэтому один и тот же сид всегда возвращает один и тот же аватар — без базы данных и без записи на диск. Подойдёт имя пользователя, адрес почты или идентификатор записи. Сиды с пробелами и спецсимволами нужно кодировать в процентах, а /api/avatar/id/ — это сокращение для числовых идентификаторов.

<img src="https://blankpfp.com/api/avatar/seed/alice/200" alt="alice">\n<img src="https://blankpfp.com/api/avatar/seed/bob/200" alt="bob">\n<img src="https://blankpfp.com/api/avatar/id/237/200" alt="record 237">

Параметры запроса

Все параметры необязательны и комбинируются. Нераспознанное значение возвращает 400 с пояснением в JSON вместо битой картинки.

Параметр Допустимые значения По умолчанию Что вы получите
shape circle | rounded | square circle Контур аватара. По умолчанию круг, потому что большинство платформ так кадрируют аватарки.
pattern solid | grid | dots | diagonal | checker solid Текстура поверх фона. Помогает сразу отличить один тип заглушки от другого.
bg #1E3A5F seed Цвет фона. Переопределяет цвет, который выбрал бы сид.
fg #1E3A5F auto Цвет инициалов, линий узора или силуэта; подбирается автоматически по контрасту, если не задан.
initials 1-2 - До двух букв, цифр или символов по центру. Полное имя сокращается до инициалов.
figure 1-15 - id силуэта (1-15) или название, рисуется цветом fg поверх bg. Имеет приоритет над инициалами; голый ?figure убирает его.
outline 0 | 1 0
grayscale 0 | 1 0 Убирает весь цвет. Удобно для приглушённых и отключённых состояний интерфейса.
blur 0-10 0 Радиус размытия по Гауссу. Размытие остаётся внутри фигуры, поэтому края остаются резкими.
random ?random=* - Любое значение. Возвращает разный аватар для каждого значения вместо стабильного.

HEX-цвета можно писать с решёткой и без неё, а трёхзначную запись вида #abc система развернёт. Без bg фон берётся из сида, без fg цвет чернил подбирается автоматически, чтобы текст оставался читаемым. Размытие сверх максимума обрезается до максимума, а не отклоняется, и инициалы никогда не длиннее двух букв.

Силуэты

Те же пятнадцать силуэтов по пояс, что и в генераторе, доступные по id или по названию. fg красит силуэт, а bg — фон, поэтому один и тот же id выглядит по-разному в каждой палитре.

Solid fill

Hollow outline (outline=1)

Попробуйте

Выберите любую аватарку на этой странице, затем поменяйте параметры ниже. Превью и код обновятся сразу, и скопируется ровно то, что отдаёт эндпоинт.

Превью

Фон
Передний план

URL

Форматы ответа

Изображения отдаются в SVG: обычный аватар занимает от 200 до 1000 байт и остаётся чётким при любой плотности пикселей. Добавьте .json к тому же URL, чтобы вместо картинки получить вычисленные цвета — это удобно, чтобы подогнать оформление интерфейса под аватар.

{
  "ok": true,
  "mode": "seed",
  "seed": "alice",
  "width": 200,
  "height": 200,
  "shape": "circle",
  "pattern": "solid",
  "figure": null,
  "background": "#9CA3AF",
  "foreground": "#111827",
  "initials": null,
  "outline": false,
  "grayscale": false,
  "blur": 0,
  "format": "svg",
  "bytes": 266,
  "url": "https://blankpfp.com/api/avatar/seed/alice/200/200.svg",
  "info": "https://blankpfp.com/api/avatar/seed/alice/200/200.json"
}

Некорректные запросы получают 400 и тело в JSON:

{
  "ok": false,
  "error": "invalid_parameters",
  "errors": ["pattern: expected one of solid, grid, dots, diagonal, checker"],
  "docs": "https://blankpfp.com/docs"
}

Кеширование и ограничения

URL с сидом — чистая функция адреса, поэтому отдаются с неизменяемым кеш-заголовком на год и ETag. Поставьте CDN перед приложением, и после первнего запроса картинки будут стоить вам ноль. Ширина и высота — от 16 до 2048 пикселей; большие значения приводятся к пределу, а не отклоняются, и итоговый размер возвращается в JSON. Чтобы показывать новую картинку при каждом запросе, добавьте ?random= с любым значением.

Частые вопросы

Нужен ли ключ API или аккаунт?

Нет. Ни регистрации, ни ключа, ни квот. Все URL на этой странице работают как есть, пока сайт доступен.

Один и тот же URL всегда вернёт один и тот же аватар?

Да. URL с сидом — чистая функция адреса, поэтому его безопасно жёстко прописать в разметке, в базе или в тестах. URL без сида тоже стабильны для своего адреса, а ?random= — это явный способ от этого отказаться.

Можно ли встраивать эти картинки и использовать их в коммерческих целях?

Да. Картинки генерируются на нашем собственном сервере из векторных фигур: сторонних фотографий нет, вопросов о лицензиях нет, и указание авторства не требуется. Встраивайте их напрямую или скачивайте.

Почему SVG и какие ограничения по размеру?

SVG-аватар обычно весит несколько сотен байт, масштабируется под любую плотность экрана и перекрашивается через CSS. Ширина и высота — от 16 до 2048 пикселей; всё, что больше, приводится к 2048.

Связанные инструменты