С 13.06.2017 доступ к наборам данных и справочникам Портала открытых данных посредством API будет возможен только с указанием ключа API.

Благодарим Вас за проявленный интерес к API Портала открытых данных города Москвы.

Версия API

В ссылках на все ресурсы API Портала открытых данных города Москвы должна содержаться информация об используемой версии в формате https://apidata.mos.ru/v{version}. Номер текущей версии можно узнать при помощи запроса, указанного ниже.

Запрос:
GET https://apidata.mos.ru/version
Ответ:

Таким образом, базовый URL для всех ресурсов в текущей версии API — https://apidata.mos.ru/v1/.

Использование API-ключа

Ключ передаётся в строке запроса в формате — ?api_key=<ваш ключ>. API-Ключ можно посмотреть в настройках профиля.

Список наборов данных

Запрос к ресурсу /datasets возвращает список наборов данных.

Параметры:
ПараметрТипОписание
$topnumberОграничивает количество возвращаемых записей. Без указания данного параметра выводятся все записи.
$skipnumberПозволяет указать количество записей, которые следует пропустить в ответе.
$inlinecountstringПринимает значение allpages для того, чтобы в ответе получить общее количество записей. По умолчанию общее количество записей не выводится.
$orderbystringУказывает поле для сортировки результирующего списка.
Пример: $orderby = Caption, $orderby = Number desc.
$filterstringПоддерживает операторы протокола OData v2.0 (https://www.odata.org/documentation/odata-version-2-0/uri-conventions/).
foreign boolean true - возвращает список англоязычных наборов данных;
false - возвращает список русскоязычных наборов данных (значение по умолчанию).
Запрос:
GET https://apidata.mos.ru/v1/datasets?$skip=1&$top=1&$inlinecount=allpages
Ответ:


Параметры указанные выше применимы и для POST запроса списка наборов данных.
Для получения проекции данных в теле запроса необходимо перечислить требуемые для вывода атрибуты через запятую.

Пример запроса с проекцией данных:
Запрос:
POST https://apidata.mos.ru/v1/datasets?$top=1
[ "Id", "Caption", "SefUrl"]
Ответ:
Формат возвращаемого объекта:

Ответ содержит массив элементов следующего формата:

  • IdИдентификатор набора данных;
  • VersionNumberВерсия набора данных;
  • ReleaseNumber Релиз набора данных;
  • CaptionНаименование набора данных;
  • CategoryIdИдентификатор тематической категории, которой соответствует набор данных;
  • DepartmentIdИдентификатор департамента, ответственного за набор данных;
  • PublishDateДата публикации датасета;
  • FullDescriptionПолное описание набора данных;
  • Keywords Ключевые слова набора данных;
  • ContainsGeodataНаличие геоданных в датасете;
  • ContainsAccEnvDataНаличие доступной среды в датасете;
  • IsForeignФлаг принадлежности к англоязычной версии;
  • IsSeasonalЯвляется набора дынных сезонным;
  • SeasonОтображается сезон (принимает значения 0 - внесезоный, 1 - зимний, 2 летний, 3 - всесезонный);
  • IsArchiveЯвляется набор данных архивным;
  • IsNewЯвляется ли набор данных новым (набор данных является новым в течение двух недель с момента публикации);
  • LastUpdateDateДата последнего обновления;
  • SefUrlИдентификатор набора данных для формирования Sef ссылок;
  • IdentificationNumberИдентификационный номер.
Countобщее количество актуальных датасетов. Выводится в случаю указания параметра $inlinecount=allpages;

Получение информации о наборе данных

Структура набора данных

Запрос к ресурсу /datasets/{id} возвращает описание набора данных с указанием перечня атрибутов.

Запрос:
GET https://apidata.mos.ru/v1/datasets/658
Ответ:
Формат возвращаемого объекта

Ответ содержит объект следующего формата:

  • IdИдентификатор набора данных;
  • CategoryIdИдентификатор тематической категории;
  • CategoryCaptionНаименование тематической категории;
  • DepartmentIdИдентификатор департамента, ответственного за набор данных;
  • DepartmentCaptionНаименование департамента;
  • CaptionНаименование набора данных;
  • DescriptionКраткое описание набора данных;
  • ContainsGeodataФлаг того, что набор данных содержит геоданные;
  • VersionNumberВерсия набора данных;
  • VersionDateДата обновления версии;
  • ItemsCountКоличество записей в наборе данных;
  • ColumnsПеречень атрибутов набора данных. Представлен в виде массива элементов вида:
    • NameИмя (ключ) атрибута;
    • CaptionОписание атрибута;
    • VisibleВидимость атрибута;
    • TypeТип данных передаваемых в данном атрибуте;
    • SubColumnsПеречень вложенных атрибутов, представлен в виде массива элементов соотвествующему виду Columns

Уровень вложенности на данный момент не ограничен.

Получение количества строк

Запрос к ресурсу /datasets/{id}/count возвращает количество строк для конкретного набора данных.

Запрос:
GET https://apidata.mos.ru/v1/datasets/493/count
Ответ:
166
Формат возвращаемого объекта:
Ответ содержит количество записей.

Получение номера актуальной версии и релиза

Запрос к ресурсу /datasets/{id}/version возвращает актуальный номер версии и релиза.

Запрос:
GET https://apidata.mos.ru/v1/datasets/655/version
Ответ:
Формат возвращаемого объекта:

Ответ содержит объект следующего формата:

  • VersionNumber Версия набора данных;
  • ReleaseNumber Релиз набора данных;

Получение иконок и маркера набора данных

Запрос к ресурсу /datasets/{id}/icon возвращает иконку для набора данных с указанным идентификатором.

Запрос к ресурсу /datasets/{id}/image возвращает для набора данных иконку с цветовой подложкой.

Параметры:
ПараметрТипОписание
size Перечисление [s, m] /s - получение иконки размером 25х25 пикселей;
/m - получение иконки размером 50х50 пикселей.
Запрос:
GET https://apidata.mos.ru/v1/datasets/655/icon/m
Ответ:
Формат возвращаемого объекта:

В ответе возвращается изображение png на прозрачном фоне размером 50х50 (при отсутствии параметра 70x70) пикселей.

Запрос к ресурсу /datasets/{id}/image возвращает иконку с подложкой в цвет категории для конкретного набора данных.

Параметры:
ПараметрТипОписание
widthnumberРазмер возвращаемого изображения.
Запрос:
GET https://apidata.mos.ru/v1/datasets/655/image
Ответ:

По умолчанию размер иконки 70х70 пикселей.


Маркер набора данных

Запрос к ресурсу /datasets/{id}/marker возвращает для набора данных маркер карты.

Запрос:
GET https://apidata.mos.ru/v1/datasets/1231/marker
Ответ:

в случае отсутствия загруженного маркера возвращает дефолтный:

Содержимое набора данных

Запрос к ресурсу /datasets/{id}/rows возвращает список строк указанного набора данных.

Внимание: при запросе датасетов с количеством записей более 10000шт., в ответе будет передан статус 413. Получение таких датасетов возможно с применением описанных ниже параметров $top (максимальное допустимое значение - 500шт.) и $skip. Для получения количества записей в датасете можно воспользоваться запросом /datasets/{id}/count.

Параметры:
ПараметрТипОписание
$topnumberОграничивает количество возвращаемых записей. Без указания данного параметра выводятся все записи.
$skipnumberПозволяет указать количество записей, которые следует пропустить в ответе.
$orderbystringУказывает поле для сортировки результирующего списка.
Пример: $orderby = Caption, $orderby = Number desc.
$filter string Позволяет производить фильтрацию данных по указанным значениям в конкретных атрибутах. Атрибут в фильтре должен начинается с "Cells/". Используется оператор "eq", который ищет по частичному вхождению (поиск чисел осуществляется по полному вхождению).
versionNumber numberЦелочисленный номер версии
releaseNumbernumberЦелочисленный номер релиза
q string Строка поиска, который осуществляется по всем полям набора данных GET https://apidata.mos.ru/v1/datasets/624/rows?q=Китай

Проекция данных
Для указанного метода доступна возможность проекции данных. Для ее использования необходимо формировать POST запрос с перечислением в теле запроса требуемых для вывода атрибутов.

Запрос:
GET https://apidata.mos.ru/v1/datasets/658/rows?$top=2&$orderby=global_id
Ответ:
Пример запроса с проекцией данных:
Запрос:
POST https://apidata.mos.ru/v1/datasets/658/rows?$top=2
["TypeOfTransport","global_id"]
Ответ:
Формат возвращаемого объекта:

Ответ содержит массив элементов следующего формата:

  • IdИдентификатор строки данных в формате GUID
  • NumberПорядковый номер строки данных
  • CellsОбъект, содержащий значения атрибутов для данной строки

Геоданные набора данных

Запрос к ресурсу /datasets/{id}/features возвращает список строк указанного набора данных в формате GeoJSON.

Если в запросе указать параметр bbox={bbox}, то в ответе будут отображаться объекты, находящиеся в заданном прямоугольнике координат.
bbox - ограничивающий прямоугольник (bounding box) заданный двумя географическими координатами (верхний левый угол и нижний правый угол прямоугольника)..

Параметр bbox работает только с точками.

Параметры:
ПараметрТипОписание
versionNumbernumberЦелочисленный номер версии.
releaseNumbernumberЦелочисленный номер релиза.

Проекция данных
Для данного метода доступна возможность проекции данных. Для ее использования необходимо формировать POST запрос с перечислением в теле запроса требуемых для вывода атрибутов.

Внимание: при запросе датасетов с количеством записей более 10000шт., в ответе будет передан статус 413. Получение таких датасетов возможно с применением описанного ниже параметра bbox. Для получения количества записей в датасете можно воспользоваться запросом /datasets/{id}/count.

Запрос:
GET https://apidata.mos.ru/v1/datasets/1786/features или GET https://apidata.mos.ru/v1/features/1786 c bbox-параметром GET https://apidata.mos.ru/v1/features/1786/features?bbox=37.49711036682129,55.86543869723485,37.5490379333496,55.89110103788533
Ответ:
Пример запроса с проекцией данных:
Запрос:
POST https://apidata.mos.ru/v1/datasets/1786/features
["global_id","Name"]
Ответ:
Формат возвращаемого объекта:

Ответ соответсвует формату GeoJSON. Объект properties содержит следующие поля:

  • DatasetId Идентификатор набора данных;
  • VersionNumber Версия набора данных;
  • ReleaseNumber Релиз набора данных;
  • RowId Идентификатор строки данных в формате GUID;
  • Attributes Перечень атрибутов набора данных (структуру набора данных можно получить по запросу /datasets/{id});

Примеры запросов в Postman

В дополнение к описанию основного функционала API Портала открытых данных мы подготовили коллекцию HTTP-запросов к API Портала в Postman on Chrome

Как использовать коллекцию запросов в Postman

Для использования коллекции запросов необходимо выполнить следующие шаги:

С более подробной информацией о Postman коллекциях можно ознакомиться в документации. После успешного завершения импорта, коллекция будет добавлена в Ваш список.