## Документация API проверки пропусков грузового транспорта на transport.mos.ru ### Поиск пропусков грузового транспорта Для поиска пропусков грузового транспорта используйте следующий запрос: ``` https://service.api-assist.com/parser/transport_mos_api/?key=ВАШ_КЛЮЧ_ДОСТУПА®Number=ГОС_НОМЕР ``` **Параметры запроса:** - **key** — ключ доступа к сервису (обязательный). - **regNumber** — государственный регистрационный номер транспортного средства (обязательный, если не указаны licenseSeries и licenseNumber). - **licenseSeries** — серия пропуска (обязательный, если не указан regNumber). - **licenseNumber** — номер пропуска (обязательный, если не указан regNumber). - **type** — тип действия пропуска: "Дневной", "Ночной" или "Круглосуточный" (необязательный). **Примеры запросов:** Поиск по государственному номеру: ``` https://service.api-assist.com/parser/transport_mos_api/?key=ВАШ_КЛЮЧ_ДОСТУПА®Number=В144МЕ178 ``` Поиск по серии и номеру пропуска: ``` https://service.api-assist.com/parser/transport_mos_api/?key=ВАШ_КЛЮЧ_ДОСТУПА&licenseSeries=ББ&licenseNumber=0115361 ``` Поиск с указанием типа пропуска: ``` https://service.api-assist.com/parser/transport_mos_api/?key=ВАШ_КЛЮЧ_ДОСТУПА®Number=В144МЕ178&type=Ночной ``` **Пример ответа на запрос:** Ответ на запрос возвращается в формате JSON. Пример ответа: ```json { "success": 1, // Флаг успешности выполнения запроса. При получении 0 сделайте повторный запрос сразу же или через несколько минут. "records": [ // Список найденных пропусков { "licenseNumber": "ББ 0115361", // Серия и номер пропуска "regNumber": "В144МЕ178", // Государственный регистрационный номер "startDate": "08.09.2014", // Дата начала действия пропуска "endDate": "12.09.2014", // Дата окончания действия пропуска "allowedZona": "МКАД", // Зона ограничения "status": "Выдан", // Статус пропуска "cancellationDate": null, // Дата аннулирования (если аннулирован) "type": "Дневной", // Тип действия пропуска "licenseType": "Разовый" // Тип пропуска } ] } ``` ### Интерпретация ответа и обработка ошибок **Общие рекомендации:** - Если поле `success` заполнено и `success = 1` — перед вами успешный ответ, с которым можно работать. Только такие запросы учитываются в статистике и расходуют оплаченный лимит. - Иначе, если поле `error` заполнено — запрос требует вашего внимания. Текст ошибки рекомендуется сохранить или отправить для дальнейшего анализа. - Иначе, если поле `error` не заполнено — это ошибка, связанная со стабильностью источника. В таком случае мы рекомендуем игнорировать ответ и повторить запрос. В данном разделе описаны возможные коды ответов сервиса и их значения. Каждый код ответа сопровождается пояснением и примером JSON-ответа. #### 1. Код ответа - 200 - Поле `success = 1` - удалось получить информацию от источника. Такие и только такие запросы можно запускать в дальнейшую обработку. - Поле `success = 0` - не удалось получить информацию от источника. Запрос не будет учтен в статистике. Необходимо повторить запрос. #### 2. Код ответа - 403 Выдается сервисом в случае невозможности обработки запроса из-за ограничения доступа: закончилась подписка, превышен лимит и так далее. Причины ошибок отражены в поле `error` ответа. Ниже приведен список возможных ошибок с их описанием и кодами: - **Invalid access key** `error_code = 40301` Указанный ключ доступа недействителен или отсутствует. - **The subscription period has expired** `error_code = 40302` Доступ к сервису истек, требуется продление. - **Invalid IP** `error_code = 40303` Запрос выполнен с IP-адреса, который не разрешён для доступа. - **Day limit of requests exceeded** `error_code = 40304` Достигнут оплаченный лимит запросов на день. - **Month limit of requests exceeded** `error_code = 40305` Достигнут оплаченный лимит запросов на месяц. **Пример ответа:** ```json { "error": "Invalid access key", "error_code": 40301 } ``` #### 3. Код ответа - 400 Выдается сервисом в случае невозможности обработки запроса из-за ошибки валидации запроса, неверного или отсутствующего значения какого-либо поля. Поле `error_code` всегда равно `40001`, подробности доступны в поле `error`. **Пример ответа:** ```json { "error": "regNumber or (licenseSeries and licenseNumber) is required", "error_code": 40001 } ```