Выберите эндпоинт слева — ответ появится здесь
Чем это отличается от генератора тестовых данных
Конфигурируемый генератор, где задают список полей (имя, email, телефон, адрес), количество строк и экспорт в CSV, SQL или Excel, делают сервисы вроде Mockaroo. Наш инструмент устроен иначе, это подборка реальных бесплатных публичных API. Вы выбираете готовый эндпоинт и получаете живой ответ настоящего сервиса, с реальной структурой полей, задержкой сети и форматом данных, какими они будут в проде. Это удобнее, когда нужно быстро посмотреть, как выглядит ответ конкретного API, а не сгенерировать произвольный набор строк под свою схему.
Какие API входят и когда какой использовать
Все эндпоинты бесплатны и не требуют регистрации или API-ключа. Шесть категорий:
- Пользователи и профили. JSONPlaceholder и RandomUser отдают готовые профили с именами, аватарами и адресами для вёрстки списков и карточек.
- Записи и контент. Посты блога с комментариями, цитаты, изображения-заглушки для тестовых лент и превью.
- Товары и e-commerce. Fake Store API и DummyJSON отдают товары с ценами, категориями и изображениями для витрин и карточек товара.
- Географические данные. Страны и погода для форм с выбором региона или виджетов локации.
- Развлечения. Покемоны, персонажи сериалов, факты о животных. Удобно для демо-контента, который не выглядит как унылый lorem ipsum.
- Утилиты. Задачи, httpbin для проверки самого запроса, советы дня.
Пример: как использовать ответ PokeAPI
Эндпоинт «Список покемонов» отдаёт только имена и ссылки на подробности. Так устроен PokeAPI, чтобы не гонять по сети лишний вес. Имя показать можно сразу, а за картинкой и характеристиками нужен второй запрос по адресу из url:
const list = await fetch(
'https://pokeapi.co/api/v2/pokemon?limit=10'
).then(res => res.json())
// list.results — только { name, url }, для карточки нужны детали
const pokemon = await Promise.all(
list.results.map(p => fetch(p.url).then(res => res.json()))
)
function PokemonCard({ name, sprite }) {
return (
<div className="rounded-xl border p-4 text-center">
<img src={sprite} alt={name} className="mx-auto h-20 w-20" />
<p className="mt-2 text-sm capitalize">{name}</p>
</div>
)
}
// pokemon[i].sprites.front_default — прямая ссылка на картинку
<div className="grid grid-cols-2 gap-4 sm:grid-cols-4">
{pokemon.map(p => (
<PokemonCard
key={p.name}
name={p.name}
sprite={p.sprites.front_default}
/>
))}
</div>Так это выглядит на странице:
bulbasaur
charmander
squirtle
pikachu
Тот же приём подходит для любого списочного эндпоинта отсюда, где объект содержит ссылку на себя, а не все поля сразу.
Почему почти все эти API отвечают именно JSON и как устроен этот формат, рассказано в статье Что такое JSON.