Остались вопросы?

Документация API

Версия 1.0

Сервис работает по протоколу HTTPS и представляет собой набор методов, с помощью которых совершаются запросы и возвращаются ответы для каждой операции. Все ответы приходят в виде JSON структур.

Базовый url: /api/v1/.

Формат ответа: JSON.

Список транспортных компаний

GET /transportCompanies

Ответ

{
    "алиас_транспортной_компании": {
        "name": "название транспортной компании",
        "logo": "url логотипа транспортной компании",
        "cargoDetails": {       – список дополнительных опций перевозки, может быть пустым
            "pickup": {         – забор в городе отправления, значения каждой транспортной компании индивидуальные
                "0": "Не нужен",
                "1": "Нужен"
            },
            "delivery": {       – доставка в городе назначения, значения каждой транспортной компании индивидуальные
                ...
            },
            "cod": {            – наложенный платеж, значения каждой транспортной компании индивидуальные
                ...
            },
            "insurance": {      – страховка, значения каждой транспортной компании индивидуальные
                ...
            },
            "crate": {          – обрешетка, значения каждой транспортной компании индивидуальные
                ...
            },
            "size": {           – габаритность груза, значения каждой транспортной компании индивидуальные
                ...
            }
        }
    },
    ...
}

Расчет стоимости перевозки груза

POST /costCalculation

Запрос

{
    "localityFrom": "город отправления",    - обязательный параметр
    "localityTo": "город назначения",       - обязательный параметр
    "cargoLength": "длина груза, см",       - обязательный параметр при отсутствии cargoVolume
    "cargoWidth": "ширина груза, см",       - обязательный параметр при отсутствии cargoVolume
    "cargoHeight": "высота груза, см",      - обязательный параметр при отсутствии cargoVolume
    "cargoVolume": "объём груза, м³",       - обязательный параметр при отсутствии cargoLength, cargoWidth и cargoHeight
    "cargoWeight": "вес груза, кг",         - обязательный параметр
    "cargoCost": "стоимость груза, руб",    - необязательный параметр
    "transportCompanies": ["energy", "boxberry", "dimex", "dpd", "gtd", "baikal", "viteka", "vozovoz", "maindelivery", "businessline", "zhde", "magictrans", "pek", "russianpost", "sdek"], – список транспортных компаний, по которым требуется расчитать стоимость перевозки груза, не может быть пустым
    "energy": {     - дополнительные опции перевозки транспортной компании «Энергия», опционально
        "cost": "0",
        "pickup": "0",
        "delivery": "0",
        "insurance": "0"
    },
    "gtd": {        - дополнительные опции перевозки транспортной компании «GTD», опционально
        "cost": "0",
        "pickup": "0",
        "delivery": "0",
        "insurance": "0"
    },
    "baikal": {     - дополнительные опции перевозки транспортной компании «Байкал Сервис», опционально
        "cost": "0",
        "pickup": "0",
        "delivery": "0",
        "crate": "0",
        "size": "0",
        "insurance": "0",
        "pallet": "0"
    },
    "viteka": {     - дополнительные опции перевозки транспортной компании «Витека», опционально
        "cost": "0",
        "pickup": "0",
        "delivery": "0",
        "insurance": "0"
    },
    "vozovoz": {    - дополнительные опции перевозки транспортной компании «Возовоз», опционально
        "cost": "0",
        "insurance": "0"
    },
    "businessline": { - дополнительные опции перевозки транспортной компании «Деловые линии», опционально
        "cost": "0",
        "pickup": "0",
        "delivery": "0",
        "insurance": "int"
    },
    "zhde": {       - дополнительные опции перевозки транспортной компании «ЖДЭ», опционально
        "cost": "0",
        "pickup": "0",
        "delivery": "0",
        "crate": "0",
        "size": "0"
    },
    "pek": {        - дополнительные опции перевозки транспортной компании «ПЭК», опционально
        "cost": "0",
        "pickup": "0",
        "delivery": "0",
        "insurance": "int"
    },
    "sdek": {       - дополнительные опции перевозки транспортной компании «СДЭК», опционально
        "cost": "0",
        "pickup": "0",
        "delivery": "0",
        "insurance": "0"
    }
}

Ответ

{
    {
        "name": "название транспортной компании",
        "alias": "псевдоним транспортной компании",
        "site": "сайт транспортной компании",
        "phone": "телефон транспортной компании",
        "logo": "url логотипа транспортной компании",
        "state": true|false – состояние расчета стоимости перевозки груза,
        "payment": {
            "from": "город отправления",
            "to": "город назначения",
            "total": "стоимость перевозки, руб",
            "time": "время перевозки, дни",
            "paymentDetails": { – стоимость дополнительных опций перевозки груза
                "cost": "400",      – стоимость перевозки груза, руб
                "pickup": 450,      – стоимость забора в городе отправления, руб
                "delivery": 300,    – стоимость доставки в городе назначения, руб
                "cod": 450,         – наложенный платеж, руб
                "insurance": 25,    – страховка, руб
                "crate": 25,        – стоимость обрешетки, руб
                "size": 25,         – стоимость перевозки негабаритного груза, руб
                "pallet": 320       – стоимость упаковки - паллетирования, руб
            }
        },
        "countBranches": "количество филиалов в городе назначения",
        "branches": [ – список филиалов в городе назначения
            {
                "address": "адрес филиала",
                "lat": "широта",
                "long": "долгота"
            },
            ...
        ],
        "message": null|string – сообщение: null, если состояние расчета стоимости false, иначе строка
    },
    ...
}

В случае, если получены не все обязательные параметры, сервис вернет ошибку 400 и список сообщений – messages.

{
    "messages": [
        "Выберите хоть одну транспортную компанию",
        ...
    ]
}

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

{
    "localityFrom": "Москва",
    "localityTo": "Екатеринбург",
    "cargoLength": "35",
    "cargoWidth": "45",
    "cargoHeight": "55",
    "cargoWeight": "2",
    "cargoCost": "2500",
    "transportCompanies": [
        "energy",
        "dimex",
        ...
    ],
    "energy": {
        "insurance": "int"
    },
    "gtd": {
        "pickup": "1",
        "delivery": "1",
        "insurance": "int"
    },
    "baikal": {
        "pickup": "0",
        "delivery": "0",
        "crate": "0",
        "size": "0",
        "insurance": "0"
    },
    "viteka": {
        "insurance": "0"
    },
    ...
}

Пример ответа

{
    {
        "name": "GTD",
        "alias": "gtd",
        "site": "https://gtdel.com/"
        "phone": ""
        "logo": "/storage/logos/gtd.png",
        "state": true,
        "payment": {
            "from": "Москва",
            "to": "Екатеринбург",
            "total": "1265.00",
            "time": "4",
            "paymentDetails": {
                "cost": 400,
                "pickup": 450,
                "delivery": 300,
                "insurance": 25
            }
        },
        "countBranches": 5,
        "branches": [
            {
                "address": "Екатеринбург, ул. 8 Марта, 269",
                "lat": "56.785901",
                "long": "60.609296"
            },
            {
                "address": "Екатеринбург, пр. Космонавтов, 11/литер Ы",
                "lat": "56.865824",
                "long": "60.602636"
            },
            ...
        ],
        "message": null
    },
    {
        "name": "Главдоставка",
        "alias": "maindelivery",
        "site": "https://glav-dostavka.ru/"
        "phone": "8 800 600-11-00"
        "logo": "/storage/logos/maindelivery.png",
        "state": true,
        "payment": {
            "from": "Москва",
            "to": "Екатеринбург",
            "total": "390.00",
            "time": null,
            "paymentDetails": []
        },
        "countBranches": 0,
        "branches": [],
        "message": null
    },
    {
        "name": "СДЕК",
        "alias": "sdek",
        "site": "https://cdek.ru/"
        "phone": "8 800 250-04-05"
        "logo": "/storage/logos/sdek.png",
        "state": false,
        "payment": null,
        "countBranches": 0,
        "branches": [],
        "message": "В «Moskva» нет пункта приема/выдачи."
    },
    ...
}

Отслеживание посылок

POST /tracking

Запрос

{
    "trackNumber": "номер отслеживания" – Обязательный параметр
}

Ответ

{
    "name": "название транспортной компании",
    "logo": "url логотипа транспортной компании",
    "track": {
        "from": "город отправления",
        "to": "город назначения",
        "parcelStatuses": [ – информация об отправлении
            {
                "title": "заголовок",
                "date": "дата",
                "time": "время"
            },
            ...
        ]
    }
}

Создание пользователя

POST /createUser

Запрос

{
    "name": "имя пользователя" – Обязательный параметр
    "email": "email пользователя" – Обязательный параметр, действительный email адрес
    "password": "пароль пользователя" – Обязательный параметр, не менее 8 символов
}

Ответ

{
    "api_token": "API токен"
}

Список регионов

GET /getRegions

Ответ

{
    0: "Адыгея",
    1: "Алтай",
    ...
}

Список населённых пунктов

GET /getLocalities

Запрос

{
    "region": "Башкортостан" – Необязательный параметр, при отсутствии будут возвращены населённые пункты всех регионов
}

Ответ

{
    0: "Абабково",
    1: "Абабурово",
    ...
}