API для разработчиков
Использование API в JavaScript
Ниже приведён пример использования API на языке JavaScript. Результат работы примеров можно увидеть здесь.

1) Подготовим контейнеры под загружаемый контент. Изначально в них будут отображаться анимированные ajax-бегунки.

  <div class="column" id="column-1">
    <div class="ajax"></div>
  </div>
  <div class="column" id="column-2">
    <div class="ajax"></div>
  </div>
  <div class="column" id="column-3">
    <div class="ajax"></div>
  </div>

2) Подключим javascript-фреймворк jQuery и микро-шаблонизатор. Первый упростит работу с ajax-запросами и отображением результата, а второй позволит формировать результирующие шаблоны и удобно подставлять в них данные.

<!-- Библиотека jQuery и шаблонизатор -->
<script type="text/javascript" src="/js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="/js/micro_tpl.js"></script>

3) Подготовим шаблон для отображения результата. С синтаксисом шаблонов вы можете ознакомится на сайте шаблонизатора.

<script type="text/html" id="column_tmpl">
  <h2><b>Ищем:</b> <%=data.wording%></h2>
  <p class="founded">
    <b>Найдено: </b><%=data.count%>
  </p>

  <h3>Результат поиска:</h3>
  <ul>
  <% for ( var i = 0; i < data.list.length; i++ ) { %>
    <li>
      <a href="http://npa.data.mosreg.ru/document/<%=data.list[i].id%>"><%=data.list[i].type.name%> <%=data.list[i].number%> от <%=formatDate(data.list[i].registryDate)%></a>.
      <%=data.list[i].name%>
      <i>(внесен на рассмотрение <%=data.list[i].introductionDate%></i>
    </li>
  <% } %>
  </ul>
</script>

4) Подготовим код AJAX-запроса, получения данных, формирования и отображения результата.

  function formatDate(src)
  {
    var date = new Date(src);
    return date.getDate() + '.' + date.getMonth() + '.' + date.getFullYear();
  }

  var apiKey = "f345ada0c5ac13ff66d7fb57c489367a578f4127";

  var queries = [
    {
      "api_key": apiKey, // ключ API
      "query": 'жилищный', // название содержит "жилищный"
      "dateFrom": '2014-01-01', // в датой регистрации
      "dateTo": '2014-10-01', // с 1 января 2014 по 1 октября 2014
      "limit": 10 // вывести первые 10 найденных НПА
    },
    {
      "api_key": apiKey,
      "class": "80a6556c-2d95-4990-a644-6d94bab0d166", // В рубрике "Культура и образование"
      "sort": "registryDate", // отсортированы по дате регистрации (по убыванию)
      "limit": 10 // вывести первые 10 найденных НПА
    },
    {
      "api_key": apiKey,
      "query": "бюджет", // Название или текст содержит "бюджет"
      "inText": 1,
      "region": "08fe372f-5a96-4037-a81f-280e425e1850", // В клинском муниципальном районе
      "sort": "name", // отсортированы по названию
      "order": "asc", // по возрастанию
      "limit": 10, // вывести первые 10 найденных НПА
    }
  ];

  function makeRequest(i)
  {
    $.ajax({
      "url": "http://npa.data.mosreg.ru/api/search.jsonp",
      "data": queries[i],
      "dataType": "jsonp",
      "success": function(data) {
        // возникла ошибка, выводим код и сообщение об ошибке
        if (data.code) {
          $('.ajax').remove();
          alert("Error #" + data.code + ": " + data.message);
          return false;
        }

        // отправляем данные в шаблон и получаем конечный html
        var resultHtml = tmpl("column_tmpl", { data: data });
        // выводим на странице результат
        $('#column-' + (i + 1) + ' .ajax').replaceWith(resultHtml);
      }
    });
  }

  for (i = 0; i < queries.length; i++)
  {
    makeRequest(i);
  }

Данные из API запрашиваются в формате JSONP в силу того, что выполняется кроссдоменный запрос, что запрещено при выполнении классических AJAX-запросов. При этом вызывается метод jQuery.ajax, в котором указывается dataType = jsonp. В остальном при использовании jQuery отличий от обычного AJAX-запроса нет.