Почтовые индексы Российской Федерации в машиночитаемом виде.

Добро пожаловать на маленький сервис, единственной задачей которого является предоставление данных базы почтовых индексов ФГУП «Почта России». Удобно для встраивания на сайты!

Что это?

Это маленький веб-сайт, который предоставляет вам доступ к базе почтовых индексов от «Почты России» в виде JSON API. Бесплатно.

Можно использовать для:

  1. автоматического заполнения адреса (область, город) по введённому индексу,
  2. для проверки ранее введённого адреса,
  3. для выявления или предотвращения ввода устаревших индексов (они устаревают на ходу!).

Важное объявление: база адресов используется как есть, без внесения каких либо изменений. По поводу любых неточностей, ошибок, пожеланий, добавлений — сообщайте в «Почту России».

Попробуйте сами!

Введите (свой) почтовый индекс и подождите, пока запрос сделает кругосветку! Не знаете, какой индекс ввести? Попробуйте 676200!

После ввода почтового индекса, поля «область», «район» и «город» заполняются автоматически.

Как использовать.

В качестве примера примем, что вы хотите встроить автозаполнение адреса по почтовому индексу на веб-сайт.

Сделайте форму, как показано ниже

<form id="address_form">
<input name="address[postcode]" id="address_postcode" class="postcode_field">
<input name="address[region]"   id="address_region"   class="region_field"  >
<input name="address[autonom]"  id="address_autonom"  class="autonom_field" >
<input name="address[area]"     id="address_area"     class="area_field"    >
<input name="address[city]"     id="address_city"     class="city_field"    >
</form>

Приправьте её javascript'ом (пример с использованием jQuery).

jQuery(document).ready(function($){
  $('.postcode_field').on('keyup change', function () {
    // Найдём все поля
    var postcode_field = $(this);
    var form = postcode_field.parents("form");
    var region_field = $('.region_field', form);
    var autonom_field= $('.autonom_field', form);
    var area_field   = $('.area_field', form);
    var city_field   = $('.city_field', form);
    // Очистим все поля
    region_field.val('');
    autonom_field.val('');
    area_field.val('');
    city_field.val('');
    // Если индекс введён полностью - загрузим информацию о нём
    var postcode = this.value;
    if (postcode.length == 6) {
      jQuery.ajax({ 
        dataType: "jsonp",
        url: '//postindexapi.ru/'+postcode+'.json?callback=?',
        beforeSend: function() { // Уведомим пользователя, что загрузка идёт
          $("td:last-child p.description.notice, td:last-child p.description.alert", postcode_field.parents("tr")).remove();
          $('<p class="description notice loading"></p>').text("Загрузка…").appendTo($("td:last-child", postcode_field.parents("tr")))
        },
        success: function(data){
          postcode_field.val(data.index);
          region_field.val(data.region);
          autonom_field.val(data.autonom);
          area_field.val(data.area);
          city_field.val(data.city);
          if (data.index != postcode) {
              var message = "Вы ввели устаревший почтовый индекс: "+postcode+", ваш текущий индекс: "+data.index;
              $('<p class="description notice"></p>').text(message).appendTo($("td:last-child", postcode_field.parents("tr")))
          }
        },
        error: function (jqxhr, status, e) {
          var message = 'Произошла ошибка при загрузке адреса по почтовому индексу!'+e;
          if (e == 'Not Found') message = 'Почте России такой почтовый индекс не известен';
          if (status == 'timeout') message = 'Сервер с почтовыми индексами не отвечает. Попробуйте ещё раз.';
          $('<p class="description alert"></p>').text(message).appendTo($("td:last-child", postcode_field.parents("tr")))
          console.debug(jqxhr, status, e);
        },
        complete: function () { // Уберём плашку
          $("td:last-child p.description.loading", postcode_field.parents("tr")).remove();
        }
      });     
    }
  });
});

Используйте на здоровье!

А как использовать?

Для получения информации по некоему индексу index, отправьте JSONP-запрос на адрес http://postindexapi.ru/<index>.json (где <index> и есть искомый индекс). В параметре callback вы можете передать имя callback-функции, в которую будет обёрнут ответ.

В ответ придёт JSON-объект со следующими свойствами:

index
Почтовый индекс объекта почтовой связи в соответствии с действующей системой индексации
ops_name
Наименование объекта почтовой связи
ops_type
Тип объекта почтовой связи
ops_subm
Индекс вышестоящего по иерархии подчиненности объекта почтовой связи
region
Наименование области, края, республики, в которой находится объект почтовой связи
autonom
Наименование автономной области, в которой находится объект почтовой связи
area
Наименование района, в котором находится объект почтовой связи
city
Наименование населенного пункта, в котором находится объект почтовой связи
city_1
Наименование подчиненного населенного пункта, в котором находится объект почтовой связи
act_date
Дата актуализации информации об объекте почтовой связи
index_old
Почтовый индекс объект почтовой связи до ввода действующей системы индексации

По регионам

  • АДЫГЕЯ РЕСПУБЛИКА
  • АЛТАЙ РЕСПУБЛИКА
  • АЛТАЙСКИЙ КРАЙ
  • АМУРСКАЯ ОБЛАСТЬ
  • АРХАНГЕЛЬСКАЯ ОБЛАСТЬ
  • АСТРАХАНСКАЯ ОБЛАСТЬ
  • БАШКОРТОСТАН РЕСПУБЛИКА
  • БЕЛГОРОДСКАЯ ОБЛАСТЬ
  • БРЯНСКАЯ ОБЛАСТЬ
  • БУРЯТИЯ РЕСПУБЛИКА
  • ВЛАДИМИРСКАЯ ОБЛАСТЬ
  • ВОЛГОГРАДСКАЯ ОБЛАСТЬ
  • ВОЛОГОДСКАЯ ОБЛАСТЬ
  • ВОРОНЕЖСКАЯ ОБЛАСТЬ
  • ГЕРМАНИЯ
  • ДАГЕСТАН РЕСПУБЛИКА
  • ЕВРЕЙСКАЯ АВТОНОМНАЯ ОБЛАСТЬ
  • ЗАБАЙКАЛЬСКИЙ КРАЙ
  • ИВАНОВСКАЯ ОБЛАСТЬ
  • ИНГУШЕТИЯ РЕСПУБЛИКА
  • ИРКУТСКАЯ ОБЛАСТЬ
  • КАБАРДИНО-БАЛКАРСКАЯ РЕСПУБЛИКА
  • КАЗАХСТАН
  • КАЛИНИНГРАДСКАЯ ОБЛАСТЬ
  • КАЛМЫКИЯ РЕСПУБЛИКА
  • КАЛУЖСКАЯ ОБЛАСТЬ
  • КАМЧАТСКИЙ КРАЙ
  • КАРАЧАЕВО-ЧЕРКЕССКАЯ РЕСПУБЛИКА
  • КАРЕЛИЯ РЕСПУБЛИКА
  • КЕМЕРОВСКАЯ ОБЛАСТЬ
  • КИРОВСКАЯ ОБЛАСТЬ
  • КОМИ РЕСПУБЛИКА
  • КОСТРОМСКАЯ ОБЛАСТЬ
  • КРАСНОДАРСКИЙ КРАЙ
  • КРАСНОЯРСКИЙ КРАЙ
  • КРЫМ РЕСПУБЛИКА
  • КУРГАНСКАЯ ОБЛАСТЬ
  • КУРСКАЯ ОБЛАСТЬ
  • ЛЕНИНГРАДСКАЯ ОБЛАСТЬ
  • ЛИПЕЦКАЯ ОБЛАСТЬ
  • МАГАДАНСКАЯ ОБЛАСТЬ
  • МАРИЙ ЭЛ РЕСПУБЛИКА
  • МОРДОВИЯ РЕСПУБЛИКА
  • МОСКВА
  • МОСКОВСКАЯ ОБЛАСТЬ
  • МУРМАНСКАЯ ОБЛАСТЬ
  • НИЖЕГОРОДСКАЯ ОБЛАСТЬ
  • НОВГОРОДСКАЯ ОБЛАСТЬ
  • НОВОСИБИРСКАЯ ОБЛАСТЬ
  • ОМСКАЯ ОБЛАСТЬ
  • ОРЕНБУРГСКАЯ ОБЛАСТЬ
  • ОРЛОВСКАЯ ОБЛАСТЬ
  • ПЕНЗЕНСКАЯ ОБЛАСТЬ
  • ПЕРМСКИЙ КРАЙ
  • ПРИМОРСКИЙ КРАЙ
  • ПСКОВСКАЯ ОБЛАСТЬ
  • РОСТОВСКАЯ ОБЛАСТЬ
  • РЯЗАНСКАЯ ОБЛАСТЬ
  • САМАРСКАЯ ОБЛАСТЬ
  • САНКТ-ПЕТЕРБУРГ
  • САРАТОВСКАЯ ОБЛАСТЬ
  • САХА (ЯКУТИЯ) РЕСПУБЛИКА
  • САХАЛИНСКАЯ ОБЛАСТЬ
  • СВЕРДЛОВСКАЯ ОБЛАСТЬ
  • СЕВАСТОПОЛЬ
  • СЕВЕРНАЯ ОСЕТИЯ-АЛАНИЯ РЕСПУБЛИКА
  • СМОЛЕНСКАЯ ОБЛАСТЬ
  • СТАВРОПОЛЬСКИЙ КРАЙ
  • ТАМБОВСКАЯ ОБЛАСТЬ
  • ТАТАРСТАН РЕСПУБЛИКА
  • ТВЕРСКАЯ ОБЛАСТЬ
  • ТОМСКАЯ ОБЛАСТЬ
  • ТУЛЬСКАЯ ОБЛАСТЬ
  • ТЫВА РЕСПУБЛИКА
  • ТЮМЕНСКАЯ ОБЛАСТЬ
  • УДМУРТСКАЯ РЕСПУБЛИКА
  • УЛЬЯНОВСКАЯ ОБЛАСТЬ
  • ХАБАРОВСКИЙ КРАЙ
  • ХАКАСИЯ РЕСПУБЛИКА
  • ЧЕЛЯБИНСКАЯ ОБЛАСТЬ
  • ЧЕЧЕНСКАЯ РЕСПУБЛИКА
  • ЧУВАШСКАЯ РЕСПУБЛИКА
  • ЧУКОТСКИЙ АВТОНОМНЫЙ ОКРУГ
  • ЮЖНАЯ ОСЕТИЯ РЕСПУБЛИКА
  • ЯРОСЛАВСКАЯ ОБЛАСТЬ