Бесплатные публичные API для тестов

Более 20 бесплатных публичных API — пользователи, товары, погода, цитаты. Смотрите живой JSON-ответ без регистрации и ключей

Выберите эндпоинт слева — ответ появится здесь

Чем это отличается от генератора тестовых данных

Конфигурируемый генератор, где задают список полей (имя, email, телефон, адрес), количество строк и экспорт в CSV, SQL или Excel, делают сервисы вроде Mockaroo. Наш инструмент устроен иначе, это подборка реальных бесплатных публичных API. Вы выбираете готовый эндпоинт и получаете живой ответ настоящего сервиса, с реальной структурой полей, задержкой сети и форматом данных, какими они будут в проде. Это удобнее, когда нужно быстро посмотреть, как выглядит ответ конкретного API, а не сгенерировать произвольный набор строк под свою схему.

Какие API входят и когда какой использовать

Все эндпоинты бесплатны и не требуют регистрации или API-ключа. Шесть категорий:

  • Пользователи и профили. JSONPlaceholder и RandomUser отдают готовые профили с именами, аватарами и адресами для вёрстки списков и карточек.
  • Записи и контент. Посты блога с комментариями, цитаты, изображения-заглушки для тестовых лент и превью.
  • Товары и e-commerce. Fake Store API и DummyJSON отдают товары с ценами, категориями и изображениями для витрин и карточек товара.
  • Географические данные. Страны и погода для форм с выбором региона или виджетов локации.
  • Развлечения. Покемоны, персонажи сериалов, факты о животных. Удобно для демо-контента, который не выглядит как унылый lorem ipsum.
  • Утилиты. Задачи, httpbin для проверки самого запроса, советы дня.

Пример: как использовать ответ PokeAPI

Эндпоинт «Список покемонов» отдаёт только имена и ссылки на подробности. Так устроен PokeAPI, чтобы не гонять по сети лишний вес. Имя показать можно сразу, а за картинкой и характеристиками нужен второй запрос по адресу из url:

jsx
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

bulbasaur

charmander

charmander

squirtle

squirtle

pikachu

pikachu

Тот же приём подходит для любого списочного эндпоинта отсюда, где объект содержит ссылку на себя, а не все поля сразу.

Почему почти все эти API отвечают именно JSON и как устроен этот формат, рассказано в статье Что такое JSON.

Похожие инструменты

Другие полезные инструменты из той же категории

Часто задаваемые вопросы

Популярные бесплатные API, такие как JSONPlaceholder, RandomUser, FakeStore API, PokeAPI и другие. Все поддерживают CORS и не требуют аутентификации.

Генераторы вроде Mockaroo создают произвольные данные под вашу схему полей и позволяют экспортировать в CSV/SQL. Здесь — готовые бесплатные API: вы получаете реальный ответ настоящего сервиса с его собственной структурой, без настройки полей.

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

Большинство API имеют щедрые или неограниченные лимиты для базового использования. Конкретные лимиты показаны для каждой конечной точки API.

Используйте fetch/axios в React/Vue/Angular. API возвращают JSON, готовый для useState/reactive data. Идеально для прототипирования перед подключением реального бэкенда.