Личный кабинет

Главная → Документация → Проверка спецразрешения КТГ для крупногабаритов

Проверка спецразрешения КТГ для крупногабаритов

Разрешения КТГ для крупногабаритов: проверка специального разрешения на перевозку тяжеловесного и крупногабаритного груза по номеру разрешения и госномеру. Сервис сверяет разрешение с машиной и возвращает его содержание: срок и число поездок, вид перевозки, допустимую скорость, автопоезд, груз, габариты и массы, нагрузки на оси, маршрут, особые условия и выдавший орган. Ответ в JSON за 3-10 секунд.

Метод GET /ktg-permitПоиск номер разрешения + госномерПерсональные данные нетОтвет 3-10 с

Что такое разрешение КТГ

КТГ означает крупногабаритный и (или) тяжеловесный груз. Чтобы везти негабарит или груз сверх допустимых масс и нагрузок на оси, перевозчик получает специальное разрешение. В нём записаны автопоезд, груз, габариты, массы, маршрут по участкам дорог, срок, число поездок и особые условия движения. Сведения о выданных разрешениях ведёт Росдормониторинг.

Как проверить спецразрешение по номеру

  1. Возьмите номер разрешения, например Р050-00100-00/00012345, и госномер машины из автопоезда.
  2. Передайте оба: ?permit=...&plate=.... Источник проверяет, что разрешение выдано именно на эту машину.
  3. Смотрите found (разрешение найдено) и isActive (сегодня в сроке поездок), затем маршрут, габариты и условия.

Вручную, без программиста, то же самое делается в консоли проверки личного кабинета: номер разрешения и госномер.

Кому нужна проверка разрешения КТГ

Без персональных данных

Телефон и адрес заявителя не отдаются. Имя заявителя приходит, только если это организация; у физического лица и ИП client.name равно null.

Аутентификация

Токен передаётся заголовком Authorization: Bearer <токен> либо параметром ?token=. Токен один для всех API, он выдаётся в личном кабинете сразу после регистрации.

Эндпоинт

GET https://api.avtovincod.ru/ktg-permit

Параметры

ПараметрОписаниеОбязателен
permitномер специального разрешения, например Р050-00100-00/00012345 (синоним licenseNumber)да
plateгосномер ТС из автопоезда, кириллицей или латиницей (синонимы regNumber, gos)да

Латинские буквы-двойники переводятся в кириллицу, пробелы убираются. Символ "/" в номере разрешения передавайте как есть или закодированным (%2F), HTTP-библиотеки делают это сами.

Пример запроса

curl --max-time 60 -G -H "Authorization: Bearer $TOKEN" "https://api.avtovincod.ru/ktg-permit" \
  --data-urlencode "permit=Р050-00100-00/00012345" --data-urlencode "plate=А123ВС750"

Пример ответа: разрешение найдено

{
  "success": 1,
  "query": { "permit": "Р050-00100-00/00012345", "plate": "А123ВС750" },
  "found": 1,
  "isActive": true,
  "permit": {
    "licenseNumber": "Р050-00100-00/00012345",
    "applicationNumber": "РДС1234567",
    "issueDate": "2026-04-15 10:30",
    "transportationType": "Внутрироссийская",
    "maxSpeed": 70,
    "tripsCount": "неограниченно",
    "startDate": "2026-04-15",
    "endDate": "2026-12-15",
    "escortType": null,
    "issuer": "ФКУ Росдормониторинг",
    "vehicles": [
      { "type": "Седельный тягач", "mark": "SCANIA", "model": "R450",
        "regNumber": "А123ВС750", "vin": "XLER4X20000123456",
        "country": "Российская Федерация" }
    ],
    "client": { "type": "organization", "name": "ООО \"Тяжпром\"" },
    "cargos": [
      { "name": "Строительные конструкции",
        "length": 18, "width": 2.8, "height": 3.5, "weight": 22.5 }
    ],
    "params": { "emptyMass": 18.5, "fullMass": 41, "length": 22, "width": 2.8,
                "height": 4, "frontOverhang": 1.2, "rearOverhang": 2.5, "minRadius": 11 },
    "axles": [
      { "pos": 1, "distanceToNext": 3.5, "load": 8, "wheels": 2, "slope": 1, "airSuspension": false },
      { "pos": 2, "distanceToNext": 0, "load": 11.5, "wheels": 4, "slope": 2, "airSuspension": true }
    ],
    "route": [
      { "totalLength": 45, "length": 45, "name": "Московская область, А-104" },
      { "totalLength": 120, "length": 75, "name": "Тверская область, М-11" }
    ],
    "specialConditions": [
      { "owner": "ФКУ Упрдор \"Москва - Санкт-Петербург\"", "road": "М-11",
        "range": "0 - 50+000", "condition": "Движение по крайней правой полосе",
        "period": "Постоянно" }
    ],
    "signature": { "thumbprint": "ABCDEF1234567890", "issuedTo": "ФКУ Росдормониторинг",
                   "validFrom": "2025-01-01", "validTo": "2027-12-31" }
  }
}

Поля ответа

ПолеЗначение
found / isActiveразрешение найдено для этой машины; сегодня (по Москве) в сроке поездок
permit.licenseNumber / applicationNumberномер разрешения и номер заявления
permit.issueDate / startDate / endDateдата выдачи, срок поездок
permit.transportationTypeвид перевозки: "Внутрироссийская", "Международная" и т. п.
permit.maxSpeed / tripsCountдопустимая скорость, км/ч; число поездок или "неограниченно"
permit.escortType / issuerвид сопровождения (null, если не требуется); выдавший орган
permit.vehicles[]ТС автопоезда: type, mark, model, regNumber, vin, country
permit.clientзаявитель: type "organization" или "person", name только у организации
permit.cargos[]груз: name; length, width, height в метрах; weight в тоннах
permit.paramsавтопоезд: массы (т), габариты, свесы и радиус поворота (м)
permit.axles[]оси: расстояние до следующей, нагрузка, колёса, скатность, пневмоподвеска
permit.route[]маршрут по участкам: name, length (км), totalLength (км с начала)
permit.specialConditions[]особые условия: владелец дороги, дорога, участок, условие, период
permit.signatureэлектронная подпись разрешения: отпечаток, кому выдана, срок

Поля разрешения передаются в том виде, в котором их отдаёт источник: отсутствующие значения приходят как null или не приходят вовсе. Проверяйте наличие ключа.

Пример ответа: разрешение не найдено

Разрешения с таким номером на эту машину нет: номер неверный, разрешение выдано на другое ТС или не выдавалось. Ответ успешный и тарифицируется.

{
  "success": 1,
  "query": { "permit": "Р050-00100-00/00012345", "plate": "О000ОО77" },
  "found": 0,
  "isActive": false,
  "permit": null
}

Коды ошибок

КодЗначение
NO_TOKENтокен не передан
TOKEN_INVALIDтокен недействителен или деактивирован
NOT_ALLOWEDAPI не подключён вашему токену
API_DISABLEDAPI временно отключён
IP_NOT_ALLOWEDзапрос с IP вне вашего белого списка
INPUT_REQUIREDне передан номер разрешения или госномер
PERMIT_INVALIDномер разрешения не похож на номер
PLATE_INVALIDгосномер не похож на номер ТС
QUERY_INVALIDисточник отклонил значения запроса, проверьте ввод
INSUFFICIENT_BALANCEнедостаточно средств на балансе
RATE_LIMITпревышен лимит запросов в минуту
RATE_LIMIT_IPслишком много запросов с одного IP
SERVICE_UNAVAILABLEсервис временно недоступен, повторите позже
PROVIDER_FAILисточник не ответил, повторите позже

Ошибка приходит в виде {"success": 0, "error": "...", "code": "..."} и никогда не тарифицируется. PROVIDER_FAIL приходит с HTTP 200: проверяйте поле success.

Примеры кода: PHP, Python, JavaScript, Go, Java, C#, Ruby, 1С

Примеры готовы к запуску: токен берётся из переменной окружения AVC_TOKEN, а в запросе стоит тестовое значение (permit=Р000-00000-00/00000000, plate=T000TT00). По тестовым значениям приходит ответ-образец по схеме метода: бесплатно, без списания и даже при нулевом балансе, с полем "testMode": true. Так интеграцию можно собрать и проверить до первого платного запроса. Все тестовые значения.

curl -s --max-time 60 -G "https://api.avtovincod.ru/ktg-permit" \
  --data-urlencode "permit=Р000-00000-00/00000000" \
  --data-urlencode "plate=T000TT00" \
  -H "Authorization: Bearer $AVC_TOKEN"
<?php
$url = 'https://api.avtovincod.ru/ktg-permit?' . http_build_query(['permit' => 'Р000-00000-00/00000000', 'plate' => 'T000TT00']);
$ch  = curl_init($url);
curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 60,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('AVC_TOKEN')]]);
$d = json_decode(curl_exec($ch), true);
echo $d['success'] ? json_encode($d, JSON_UNESCAPED_UNICODE) : $d['code'] . ': ' . $d['error'];
import os, requests

r = requests.get("https://api.avtovincod.ru/ktg-permit", params={"permit": "Р000-00000-00/00000000", "plate": "T000TT00"},
                 headers={"Authorization": "Bearer " + os.environ["AVC_TOKEN"]}, timeout=60)
d = r.json()
print(d if d.get("success") else f'{d["code"]}: {d["error"]}')
// Node.js 18+, файл .mjs (await на верхнем уровне)
const url = "https://api.avtovincod.ru/ktg-permit?" + new URLSearchParams({ permit: "Р000-00000-00/00000000", plate: "T000TT00" });
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.AVC_TOKEN}` },
                               signal: AbortSignal.timeout(60000) });
const d = await res.json();
console.log(d.success ? d : `${d.code}: ${d.error}`);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
	"os"
	"time"
)

func main() {
	q := url.Values{}
	q.Set("permit", "Р000-00000-00/00000000")
	q.Set("plate", "T000TT00")
	req, _ := http.NewRequest("GET", "https://api.avtovincod.ru/ktg-permit?"+q.Encode(), nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("AVC_TOKEN"))
	resp, err := (&http.Client{Timeout: 60 * time.Second}).Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(resp.StatusCode, string(body))
}
// Java 11+
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.*;
import java.nio.charset.StandardCharsets;
import java.time.Duration;

public class AvtoVinCod {
    public static void main(String[] args) throws Exception {
        String q = "permit=" + URLEncoder.encode("Р000-00000-00/00000000", StandardCharsets.UTF_8) + "&" + "plate=" + URLEncoder.encode("T000TT00", StandardCharsets.UTF_8);
        HttpRequest req = HttpRequest.newBuilder(URI.create("https://api.avtovincod.ru/ktg-permit?" + q))
            .header("Authorization", "Bearer " + System.getenv("AVC_TOKEN"))
            .timeout(Duration.ofSeconds(60)).GET().build();
        HttpResponse<String> resp = HttpClient.newHttpClient()
            .send(req, HttpResponse.BodyHandlers.ofString());
        System.out.println(resp.statusCode() + " " + resp.body());
    }
}
// .NET 6+
using System.Net.Http.Headers;

using var http = new HttpClient { Timeout = TimeSpan.FromSeconds(60) };
http.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("AVC_TOKEN"));
var url = "https://api.avtovincod.ru/ktg-permit?" + "permit=" + Uri.EscapeDataString("Р000-00000-00/00000000") + "&" + "plate=" + Uri.EscapeDataString("T000TT00");
var resp = await http.GetAsync(url);
Console.WriteLine((int)resp.StatusCode + " " + await resp.Content.ReadAsStringAsync());
require "net/http"
require "json"

uri = URI("https://api.avtovincod.ru/ktg-permit")
uri.query = URI.encode_www_form(permit: "Р000-00000-00/00000000", plate: "T000TT00")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer #{ENV["AVC_TOKEN"]}"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true, read_timeout: 60) { |h| h.request(req) }
d = JSON.parse(res.body)
puts d["success"] == 1 ? d : "#{d["code"]}: #{d["error"]}"
Токен = "ВАШ_ТОКЕН";
Соединение = Новый HTTPСоединение("api.avtovincod.ru", 443, , , , 60, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/ktg-permit?" + "permit=" + КодироватьСтроку("Р000-00000-00/00000000", СпособКодированияСтроки.КодировкаURL) + "&" + "plate=" + КодироватьСтроку("T000TT00", СпособКодированияСтроки.КодировкаURL));
Запрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
Ответ = Соединение.Получить(Запрос);

Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку("UTF-8"));
Данные = ПрочитатьJSON(Чтение);
Чтение.Закрыть();

Если Данные.success = 1 Тогда
    Сообщить("Проверка выполнена");
Иначе
    Сообщить(Данные.code + ": " + Данные.error);
КонецЕсли;

Бесплатных тестовых периодов и долгих согласований нет: пополните баланс в личном кабинете и сразу проверяйте реальные машины. Токен выдаётся при регистрации, деньги списываются только по правилам метода (раздел "Тарификация"). Нужен доступ из ИИ-ассистента: MCP-сервер.

Примеры ответов: успешный, ошибка, источник недоступен

Успешный запрос

GET https://api.avtovincod.ru/ktg-permit?plate=А123ВС777&permit=Р101-12345-24/00123456
Authorization: Bearer ВАШ_ТОКЕН

HTTP 200, success: 1. Списание по тарифу метода, сумма и остаток в блоке billing (цифры в примере условные).

{
  "success": 1,
  "query": {
    "permit": "Р101-12345-24/00123456",
    "plate": "А123ВС777"
  },
  "found": 1,
  "isActive": true,
  "permit": {
    "licenseNumber": "Р101-12345-24/00123456",
    "applicationNumber": "ПК2604150001",
    "issueDate": "2026-04-15 10:30",
    "transportationType": "Внутрироссийская",
    "maxSpeed": 60,
    "tripsCount": "10",
    "startDate": "2026-04-15",
    "endDate": "2026-12-15",
    "escortType": null,
    "issuer": "Орган, выдавший разрешение",
    "vehicles": [
      {
        "type": "Седельный тягач",
        "mark": "MAN",
        "model": "T-1",
        "regNumber": "А123ВС777",
        "vin": "XTAGFL110MY463366",
        "country": "Российская Федерация"
      }
    ],
    "client": {
      "type": "organization",
      "name": "ООО \"Перевозчик\""
    },
    "cargos": [
      {
        "name": "Металлоконструкции",
        "length": 15,
        "width": 2.6,
        "height": 3.2,
        "weight": 20
      }
    ],
    "params": {
      "emptyMass": 17,
      "fullMass": 37,
      "length": 20,
      "width": 2.6,
      "height": 4,
      "frontOverhang": 1.2,
      "rearOverhang": 2,
      "minRadius": 11
    },
    "axles": [
      {
        "pos": 1,
        "distanceToNext": 3.6,
        "load": 8,
        "wheels": 2,
        "slope": 1,
        "airSuspension": false
      }
    ],
    "route": [
      {
        "totalLength": 50,
        "length": 50,
        "name": "МКАД, 45 км"
      }
    ],
    "specialConditions": [],
    "signature": null
  },
  "billing": {
    "charged": 3,
    "currency": "RUB",
    "billed": true,
    "balance": 997,
    "requestId": 1234567
  }
}

Бесплатная проба без списания: https://api.avtovincod.ru/ktg-permit?plate=Т000ТТ00&permit=Р101-12345-24/00123456 вернёт ответ-образец по этой же схеме с полем testMode: true и charged: 0.

Неуспешный запрос

GET https://api.avtovincod.ru/ktg-permit?plate=А123ВС777
Authorization: Bearer ВАШ_ТОКЕН

Ошибка в параметрах: HTTP 400, код INPUT_REQUIRED, текст ошибки можно показать пользователю. Бесплатно.

{
  "success": 0,
  "error": "Нужны оба значения: ?permit=НОМЕР_РАЗРЕШЕНИЯ и ?plate=ГОСНОМЕР (источник сверяет разрешение с автомобилем).",
  "code": "INPUT_REQUIRED"
}

Источник недоступен

GET https://api.avtovincod.ru/ktg-permit?plate=А123ВС777&permit=Р101-12345-24/00123456
Authorization: Bearer ВАШ_ТОКЕН

Источник не выполнил проверку: HTTP 200, PROVIDER_FAIL. Бесплатно, повторите запрос позже. Блока billing нет: запрос не списан.

{
  "success": 0,
  "error": "Проверка не выполнена",
  "code": "PROVIDER_FAIL"
}

Тарификация

Списание один раз за выполненную проверку (success: 1), в том числе если разрешение не найдено (found: 0). Ошибки и PROVIDER_FAIL бесплатны. Цена и подключение метода в личном кабинете.

В ответ добавляется блок billing: сколько списано за этот запрос (charged, в рублях), платный ли он (billed), остаток баланса после запроса (balance) и номер в истории запросов (requestId). Те же данные в заголовках X-Charged, X-Balance, X-Request-Id. Нет блока - запрос не списан. Подробнее о блоке billing.

Уже подключены? Ничего менять не нужно.

MCP-сервер для ИИ-ассистентов

Подключите проверки к ИИ-ассистенту: Claude, Cursor, VS Code и другим клиентам с поддержкой MCP (Model Context Protocol). Ассистент сам вызывает нужный метод по вашему токену, и проверку можно запросить обычными словами: "проверь залог и ограничения по VIN", "есть ли штрафы по СТС". Удобно менеджерам автосалона, лизинга и страховой без программиста, а разработчику помогает быстро собрать прототип интеграции.

Для генераторов клиентов и ИИ-агентов: OpenAPI-спецификация метода (YAML). Все методы сразу: /openapi.yaml.

Смежные проверки

Частые вопросы

Что такое разрешение КТГ?

Специальное разрешение на движение транспортного средства, которое перевозит крупногабаритный и (или) тяжеловесный груз (КТГ). В нём указаны автопоезд, груз, габариты и массы, маршрут, срок, число поездок и особые условия.

Как проверить спецразрешение на перевозку крупногабаритного груза?

Отправьте GET-запрос https://api.avtovincod.ru/ktg-permit?permit=НОМЕР_РАЗРЕШЕНИЯ&plate=ГОСНОМЕР с токеном или введите номер разрешения и госномер в консоли проверки в личном кабинете. found: 1 значит разрешение выдано на эту машину, isActive показывает, действует ли оно сегодня.

Почему нужен госномер, а не только номер разрешения?

Источник сверяет разрешение с автомобилем: так видно, что разрешение выдано именно на эту машину, а не на другую из того же парка.

Есть ли в ответе персональные данные заявителя?

Нет. Телефон и адрес не отдаются, имя заявителя приходит только у организаций. У физических лиц и ИП client.name равно null.

Что показывает маршрут в разрешении?

Список участков дорог по порядку с длиной каждого и нарастающим итогом, а также особые условия движения на отдельных участках: полоса, скорость, время проезда.

Платная ли проверка, если разрешение не найдено?

Да: выполненная проверка тарифицируется и при found: 0. Ошибки ввода и сбои источника бесплатны. Цена в личном кабинете.

Проверить без программиста

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

Открыть кабинет