Методы API
Список методов

Генерация отчетов

Генерация отчета Состояние отчета Результат генерации
Отправить

Поставить отчет в очередь на генерацию по госномеру или VIN:

key
Ключ доступа к API
gosnumber
госномер автомобиля
vin
VIN код автомобиля
Для получения отчета необходимо выполнить три действия:
1. Поставить отчет в очередь на генерацию (при этом Вы получите уникальный ID отчета).
2. Выполнить проверку статуса готовности отчета, когда генерация будет завершена, заявка получит соответствующий статус.
3. Используя полученный ID отчета, получить ссылку на готовый отчет.


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

PHP
Python
C#
                        
// Входные данные
$url = "https://data.tronk.info/reportrequest.ashx";
$request_params = array(
    "key" => "867983b5-d66d-44d7-b440-5bd00b0b8203",
    "mode" => "setqueue",
    "gosnumber" => "А111АА11"
);

$get_params = http_build_query($request_params);

// Запрос к серверу
$response = file_get_contents($url."?".$get_params);
// Преобразование ответа
$result = json_decode($response);
                        
                    
                        
import requests

url = "https://data.tronk.info/reportrequest.ashx"

# входные данные
params = {
    "key": "867983b5-d66d-44d7-b440-5bd00b0b8203",
    "mode": "setqueue",
    "gosnumber": "А111АА11",
}

# отправка запроса
response = requests.post(
    url=url,
    params=params,
)

# преобразование ответа к словарю
data = response.json()
                        
                    
                        
using Newtonsoft.Json;
class Program
{
    static async Task Main(string[] args)
    {
        string end_point = "https://data.tronk.info/reportrequest.ashx";
        Dictionary< string, string > dict_params = new()
        {
            { "key", "867983b5-d66d-44d7-b440-5bd00b0b8203" },
            { "mode", "setqueue" },
            { "gosnumber", "А111АА11" },
        };

        string url_params = string.Join("&", dict_params.Select(kvp => $"{kvp.Key}={kvp.Value}"));
        string url = $"{end_point}?{url_params}";

        HttpClient client = new();
        string response_body = await client.GetAsync(url).Result.Content.ReadAsStringAsync();

        var result = JsonConvert.DeserializeObject(response_body);
    }
}
                        
                    

Брендированный автомобильный отчёт:

Подробности

  1. Настроить DNS для домена 3 уровня (пример: report.mydomain.ru , где далее в инструкции mydomain - название вашего домена )
  2. Дополнительные GET параметры:
    customreport Int
    Активация режима кастомизации (в выключенном состоянии параметры настроек не учитываются).
    1 - активно, 0 - выключено.
    custom_headerlogo String
    ссылка на логотип, начинается с http:// или https://
    custom_companyurl String
    ссылка на сайт компании, начинается с http:// или https://
  3. Дополнительные POST параметры JSON
    custom_socialicons JSON array
    структура записи - массив, максимальное количество элементов - 3 , максимальная длина JSON массива - 1024.

    custom_socialicons:

    icon String
    ссылка на иконку, начинается с http:// или https://
    url String
    ссылка на соцсеть, начинается с http:// или https://
    custom_headerhtml String/Html
    Дополнительное информационное поле в заголовке. Поддерживается TEXT/HTML. Максимальная длина - 4000
    custom_companyphones String
    контакты для связи, разделитель - запятая
    (рекомендуемое количество - 2)
    custom_companyemalis String
    Email, разделитель - запятая
    (рекомендуемое количество - 2)
    custom_companyschedule String
    время работы
    custom_companytagtext JSON object
    слоган и название сайта в формате JSON

    custom_companytagtext:

    custom_companyappstore String
    ссылка на мобильное приложение, начинается с http:// или https://
    custom_companygoogleplay String
    ссылка на мобильное приложение, начинается с http:// или https://
  4. Пример итогового запроса:

  5. Примеры запроса:
    PHP
    Python
    C#
                            
    // Входные данные
    $url = "https://data.tronk.info/reportrequest.ashx";
    $request_data = array(
        "key" => "867983b5-d66d-44d7-b440-5bd00b0b8203",
        "mode" => "setqueue",
        "gosnumber" => "А111АА11",
        "customreport" => "1",
        "custom_headerlogo" => "https://mydomain/img/logo/logo.svg",
        "custom_companyurl" => "https://mydomain",
        "custom_socialicons" => array(
            array(
                "icon" => "https://mydomain/I/vk.png",
                "url" => "http://vk.com/vk"
            ),
            array(
                "icon" => "https://mydomain/I/telegram.png",
                "url" => "https://t.me/tg"
            ),
            array(
                "icon" => "https://mydomain/I/youtube-play2.png",
                "url" => "https://www.youtube.com/channel/"
            )
        ),
        "custom_headerhtml" => "TRONK",
        "custom_companyphones" => "8-800-000-0000",
        "custom_companyemalis" => "my@email.com",
        "custom_companyschedule" => "11:00 - 20:00 МСК",
        "custom_companytagtext" => array(
            "tagline" => "Здесь будет слоган",
            "sitename" => "TRONK"
        ),
        "custom_companyappstore" => "http://appstore_url",
        "custom_companygoogleplay" => "http://playmarket_url"
    );
    
    // Создание JSON строки из данных
    $json_data = json_encode($request_data);
    
    // Параметры контекста для HTTP запроса
    $request_params = array(
        "http" => array(
            "method" => "POST",
            "header" => "Content-type: application/json\r\n",
            "content" => $json_data
        )
    );
    
    $context = stream_context_create($request_params);
    
    // Запрос к серверу
    $response = file_get_contents($url, false, $context);
    
    // Преобразование ответа
    $result = json_decode($response);
    
    if ($result === null) {
        // Обработка ошибки в случае некорректного ответа
        echo "Ошибка декодирования JSON: ", json_last_error_msg();
    } else {
        // Вывод результата
        print_r($result);
    }
                            
                        
                            
    import requests
    
    url = "https://data.tronk.info/reportrequest.ashx"
    
    # Входные данные
    params = {
        "key": "867983b5-d66d-44d7-b440-5bd00b0b8203",
        "mode": "setqueue",
        "gosnumber": "А111АА11",
        "customreport": "1",
        "custom_headerlogo": "https://mydomain/img/logo/logo.svg",
        "custom_companyurl": "https://mydomain",
    }
    
    json_data = {
        "custom_socialicons": [
            {
                "icon": "https://mydomain/I/vk.png",
                "url": "http://vk.com/vk"
            },
            {
                "icon": "https://mydomain/I/telegram.png",
                "url": "https://t.me/tg"
            },
            {
                "icon": "https://mydomain/I/youtube-play2.png",
                "url": "https://www.youtube.com/channel/"
            }
        ],
        "custom_headerhtml": "TRONK",
        "custom_companyphones": "8-800-000-0000",
        "custom_companyemalis": "my@email.com",
        "custom_companyschedule": "11:00 - 20:00 МСК",
        "custom_companytagtext": {
            "tagline": "Здесь будет слоган",
            "sitename": "TRONK"
        },
        "custom_companyappstore": "http://appstore_url",
        "custom_companygoogleplay": "http://playmarket_url"
    }
    
    # Отправка запроса
    response = requests.post(
        url=url,
        json=json_data,
        params=params,
        headers={"Content-Type": "application/json"}
    )
    
    # Преобразование ответа к словарю
    try:
        data = response.json()
    except ValueError:
        print("Ошибка при декодировании JSON из ответа:", response.text)
    else:
        print(data)
                            
                        
                            
    using Newtonsoft.Json;
    
    class Program
    {
        static void Main()
        {
            string end_point = "https://data.tronk.info/reportrequest.ashx";
            Dictionary< string, string > dict_params = new()
            {
                { "key", "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" },
                { "mode", "setqueue" },
                { "gosnumber", "X000XX000" },
                { "customreport", "1" },
                { "custom_headerlogo", "https://mydomain/img/logo/logo.svg" },
                { "custom_companyurl", "https://mydomain" }
            };
    
            string url_params = string.Join("&", dict_params.Select(kvp => $"{kvp.Key}={kvp.Value}"));
            string url = $"{end_point}?{url_params}";
    
            // Создание объекта с данными для отправки в формате JSON
            var postData = new
            {
                custom_socialicons = new[]
                {
                    new { icon = "https://mydomain/I/vk.png", url = "http://vk.com/vk" },
                    new { icon = "https://mydomain/I/telegram.png", url = "https://t.me/tg" },
                    new { icon = "https://mydomain/I/youtube-play2.png", url = "https://www.youtube.com/channel/" }
                },
                custom_headerhtml = "TRONK",
                custom_companyphones = "8-800-000-0000",
                custom_companyemalis = "my@email.com",
                custom_companyschedule = "11:00 - 20:00 МСК",
                custom_companytagtext = new
                {
                    tagline = "Здесь будет слоган",
                    sitename = "TRONK"
                },
                custom_companyappstore = "http://appstore_url",
                custom_companygoogleplay = "http://playmarket_url"
            };
    
            // Сериализация данных в JSON-строку
            string jsonData = JsonConvert.SerializeObject(postData);
    
            // Создание и отправка запроса
            using HttpClient client = new();
            var request = new HttpRequestMessage
            {
                Method = HttpMethod.Post,
                RequestUri = new Uri(url),
                Headers =
                {
                    { "Accept", "application/json" },
                    { "Connection", "keep-alive" }
                },
                Content = new StringContent(jsonData)
                {
                    Headers =
                    {
                        ContentType = new MediaTypeHeaderValue("application/json")
                    }
                }
            };
    
            string response_body = "";
            using (var response = client.SendAsync(request).Result)
            {
                response_body = response.Content.ReadAsStringAsync().Result;
            }
    
            // Десериализация ответа
            var result = JsonConvert.DeserializeObject(response_body);
    
            Console.WriteLine(result);
        }
    }
                            
                        
  6. Пример отчета:
    https://report.statenumber.ru/report/8dc2e26e-f7d8-4802-b6e8-abcd239e1cb5

Результат вызова метода:

Описание возвращаемого JSON

start DateTime
Дата и время создание запроса
end DateTime
Дата и время окончания запроса
gosnumber String
Госномер по которому выполняется генерация отчета
vin String
VIN номер по которому выполняется генерация отчета
error Boolean
Признак ошибки
status Int
Статус выполнения операции
id Int
ID задачи
startgeneration DateTime
Дата и время начала генерации отчета
msg Int
Сообщение

Результат вызова метода в случае ошибки:

  • Закончился доступ или запросы (Проверить доступ)
  • Описание возвращаемого JSON

    start DateTime
    Дата и время создание запроса
    end DateTime
    Дата и время окончания запроса
    vin String
    VIN номер по которому выполняется генерация отчета
    gosnumber String
    Госномер по которому выполняется генерация отчета
    error Boolean
    Признак ошибки в запросе, имеет значение true в случае ошибки и null в случае её отсутствия
    error_msg String
    Сообщение с описанием ошибки

    Проверить состояние отчета:

    key
    Ключ доступа к API
    id
    идентификатор отчета

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

    PHP
    Python
    C#
                            
    // Входные данные
    $url = "https://data.tronk.info/reportrequest.ashx";
    $request_params = array(
        "key" => "867983b5-d66d-44d7-b440-5bd00b0b8203",
        "mode" => "checkqueue",
        "id" => 123
    );
    
    $get_params = http_build_query($request_params);
    
    // Запрос к серверу
    $response = file_get_contents($url."?".$get_params);
    // Преобразование ответа
    $result = json_decode($response);
                            
                        
                            
    import requests
    
    url = "https://data.tronk.info/reportrequest.ashx"
    
    # входные данные
    params = {
        "key": "867983b5-d66d-44d7-b440-5bd00b0b8203",
        "mode": "checkqueue",
        "id": 123,
    }
    
    # отправка запроса
    response = requests.post(
        url=url,
        params=params,
    )
    
    # преобразование ответа к словарю
    data = response.json()
                            
                        
                            
    using Newtonsoft.Json;
    class Program
    {
        static async Task Main(string[] args)
        {
            string end_point = "https://data.tronk.info/reportrequest.ashx";
            Dictionary< string, string > dict_params = new()
            {
                { "key", "867983b5-d66d-44d7-b440-5bd00b0b8203" },
                { "mode", "checkqueue" },
                { "id", 123 },
            };
    
            string url_params = string.Join("&", dict_params.Select(kvp => $"{kvp.Key}={kvp.Value}"));
            string url = $"{end_point}?{url_params}";
    
            HttpClient client = new();
            string response_body = await client.GetAsync(url).Result.Content.ReadAsStringAsync();
    
            var result = JsonConvert.DeserializeObject(response_body);
        }
    }
                            
                        

    Результат вызова метода:

  • Отчет еще не сгенерирован

  • Отчет успешно сгенерирован
  • Описание возвращаемого JSON

    start DateTime
    Дата и время создание запроса
    end DateTime
    Дата и время окончания запроса
    error Boolean
    Признак ошибки
    status Int
    Статус выполнения операции
    id Int
    ID задачи
    startgeneration DateTime
    Дата и время начала генерации отчета
    endgeneration DateTime
    Дата и время завершения генерации отчета
    msg Int
    Сообщение

    Результат вызова метода в случае ошибки:

  • Закончился доступ или запросы (Проверить доступ)
  • Описание возвращаемого JSON

    start DateTime
    Дата и время создание запроса
    end DateTime
    Дата и время окончания запроса
    vin String
    VIN номер по которому выполняется генерация отчета
    gosnumber String
    Госномер по которому выполняется генерация отчета
    error Boolean
    Признак ошибки в запросе, имеет значение true в случае ошибки и null в случае её отсутствия
    error_msg String
    Сообщение с описанием ошибки

    key
    Ключ доступа к API
    id
    идентификатор отчета

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

    PHP
    Python
    C#
                            
    // Входные данные
    $url = "https://data.tronk.info/reportrequest.ashx";
    $request_params = array(
        "key" => "867983b5-d66d-44d7-b440-5bd00b0b8203",
        "mode" => "getresult",
        "id" => 123
    );
    
    $get_params = http_build_query($request_params);
    
    // Запрос к серверу
    $response = file_get_contents($url."?".$get_params);
    // Преобразование ответа
    $result = json_decode($response);
                            
                        
                            
    import requests
    
    url = "https://data.tronk.info/reportrequest.ashx"
    
    # входные данные
    params = {
        "key": "867983b5-d66d-44d7-b440-5bd00b0b8203",
        "mode": "getresult",
        "id": 123,
    }
    
    # отправка запроса
    response = requests.post(
        url=url,
        params=params,
    )
    
    # преобразование ответа к словарю
    data = response.json()
                            
                        
                            
    using Newtonsoft.Json;
    class Program
    {
        static async Task Main(string[] args)
        {
            string end_point = "https://data.tronk.info/reportrequest.ashx";
            Dictionary< string, string > dict_params = new()
            {
                { "key", "867983b5-d66d-44d7-b440-5bd00b0b8203" },
                { "mode", "getresult" },
                { "id", 123 },
            };
    
            string url_params = string.Join("&", dict_params.Select(kvp => $"{kvp.Key}={kvp.Value}"));
            string url = $"{end_point}?{url_params}";
    
            HttpClient client = new();
            string response_body = await client.GetAsync(url).Result.Content.ReadAsStringAsync();
    
            var result = JsonConvert.DeserializeObject(response_body);
        }
    }
                            
                        

    Результат вызова метода:

    Описание возвращаемого JSON

    start DateTime
    Дата и время создание запроса
    end DateTime
    Дата и время окончания запроса
    error Boolean
    Признак ошибки
    status Int
    Статус выполнения операции
    id Int
    ID задачи
    url String
    Ссылка на отчет
    startgeneration DateTime
    Дата и время начала генерации отчета
    endgeneration DateTime
    Дата и время завершения генерации отчета
    msg Int
    Сообщение

    Результат вызова метода в случае ошибки:

  • Закончился доступ или запросы (Проверить доступ)
  • Описание возвращаемого JSON

    start DateTime
    Дата и время создание запроса
    end DateTime
    Дата и время окончания запроса
    vin String
    VIN номер по которому выполняется генерация отчета
    gosnumber String
    Госномер по которому выполняется генерация отчета
    error Boolean
    Признак ошибки в запросе, имеет значение true в случае ошибки и null в случае её отсутствия
    error_msg String
    Сообщение с описанием ошибки

    Оставьте заявку для получения консультации

    Поле обязательно для заполнения
    Поле обязательно для заполнения
    Поле обязательно для заполнения
    Поле обязательно для заполнения
    Необходимо согласие с офертой
    Необходимо согласие с офертой
    или
    Задать вопрос в Telegram
    * - поле обязательно для заполнения