Общая информация

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

Основная информация


Для получения доступа к API нужно создать токен доступа в личном кабинете на сайте: Личный кабинет

Оплата заказа происходит через списание с баланса аккаунта.

Адрес

Все HTTP-запросы отправляются на адрес:

https://api.mnogo-golosov.ru/v1/{RESOURCE}

{RESOURCE} - имя необходимого ресурса.

Пример

https://api.mnogo-golosov.ru/v1/services - Адрес для получения списка доступных услуг.

Необходимые заголовки запроса

Content-Type: application/json
Accept: application/json
Authorization: Bearer {TOKEN}

{TOKEN} - Ваш токен доступа, полученный в личном кабинете на сайте.

Методы запроса

HTTP-метод запроса зависит от ресурса и указан в его описании.

Параметры запроса

Все параметры должны передаваться в теле запроса в формате JSON. Список необходимых параметров для каждого ресурса представлен ниже.

Доступные ресурсы


Создание заказа.

Запрос

Все параметры заказа передаются в теле запроса в JSON-формате.


Параметры

service
required
string

Уникальный код услуги

options
required
object

Опции услуги

Опции должны передаваться в виде объекта в формате ключ: значение.

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

Параметры для каждой услуги можно посмотреть на странице Услуги.

Пример:

{
    "amount": 100,
    "link": "https://example.com" 
}
coupon string

Промокод (если имеется)

Пример
curl -X POST http://api.mnogo-golosov.ru/v1/orders
-H "Content-Type: application/json"
-H "Accept: application/json"
-H "Authorization: Bearer {TOKEN}"
-d '{
    "service":"example-service-code",
    "options": {
        "amount": 100,
        "link": "https://example.com",
        "notes": "Сделайте как можно быстрее"
    },
    "coupon": "PROMO_TEST"
}'

Успешный ответ


Статус

201

Формат ответа

Order

Возвращает JSON-объект типа Order. Схемы объектов представлены ниже в разделе Объекты ответов

Пример JSON-ответа
{
    "order_number": "123-456",
    "total": 100.5
    "status": "accepted"
}

Коды ошибок


401 - Неавторизованный запрос. Проверьте правильность заголовка Authorization.

404 - Услуга не найдена. Проверьте правильность указания кода услуги в поле "service".

422 - Ошибка валидации. Проверьте правильность формата передаваемых данных, их типов и наличия обязательных полей.

500 - Ошибка сервера. Обратитесь в техническую поддержку.

Информация о заказе.

Запрос


order_number - номер заказа.

Пример
curl -X GET http://api.mnogo-golosov.ru/v1/orders/123-456
-H "Content-Type: application/json"
-H "Accept: application/json"
-H "Authorization: Bearer {TOKEN}"

Успешный ответ


Статус

200

Формат ответа

Order

Возвращает JSON-объект типа Order. Схемы объектов представлены ниже в разделе Объекты ответов

Пример JSON-ответа
{
    "order_number": "123-456",
    "total": 100.5
    "status": "accepted"
}

Коды ошибок


401 - Неавторизованный запрос. Проверьте правильность заголовка Authorization.

404 - Заказ не найден.

500 - Ошибка сервера. Обратитесь в техническую поддержку.

Получение всех доступных для заказа через API услуг.

Запрос


Пример
curl -X GET http://api.mnogo-golosov.ru/v1/services
-H "Content-Type: application/json"
-H "Accept: application/json"
-H "Authorization: Bearer {TOKEN}"

Успешный ответ


Статус

200

Формат ответа

Array <Service>

Возвращает JSON с массивом объектов типа Service. Схемы объектов представлены ниже в разделе Объекты ответов

Пример JSON-ответа
[
    {
    "code": "example-service-code",
    "title": "Название услуги",
    "price": 0.9,
    "options": [
        {
            "code": "link",
            "type": "string",
            "label": "Ссылка",
            "description": "Укажите ссылку на страницу",
            "description_2": "Ссылка должна быть в фомате https://example.test",
            "help": "Помощь",
            "constraints": [
                {
                    "name": "Обязательное поле",
                    "value": "true"
                }
            ]
        },
        {
            "code": "amount",
            "type": "number",
            "label": "Количество",
            "description": "Укажите количество",
            "constraints": [
                {
                    "name": "Обязательное поле",
                    "value": "true"
                },
                {
                    "name": "Минимальное значение",
                    "value": "50"
                },
                {
                    "name": "Максимальное значение значение",
                    "value": "1000"
                },
                {
                    "name": "Шаг",
                    "value": "5"
                }
            ]
        },
        {
            "code": "notes",
            "type": "string",
            "label": "Пожелания к заказу",
            "description": "Укажите ссылку на страницу",
        },
        ...
    ],
    "discounts": [
        "10% если количество больше 1000",
        "20% если сумма больше 5000"
    ]
},
    {
    ...
    },
    ...
]

Коды ошибок


401 - Неавторизованный запрос. Проверьте правильность заголовка Authorization.

500 - Ошибка сервера. Обратитесь в техническую поддержку.

Информация об отдельной услуге.

Запрос


code - уникальный код услуги.

Пример
curl -X GET http://api.mnogo-golosov.ru/v1/services/example-service-code
-H "Content-Type: application/json"
-H "Accept: application/json"
-H "Authorization: Bearer {TOKEN}"

Успешный ответ


Статус

200

Формат ответа

Service

Возвращает JSON-объект типа Service. Схемы объектов представлены ниже в разделе Объекты ответов

Пример JSON-ответа
{
    "code": "example-service-code",
    "title": "Название услуги",
    "price": 0.9,
    "options": [
        {
            "code": "link",
            "type": "string",
            "label": "Ссылка",
            "description": "Укажите ссылку на страницу",
            "description_2": "Ссылка должна быть в фомате https://example.test",
            "help": "Помощь",
            "constraints": [
                {
                    "name": "Обязательное поле",
                    "value": "true"
                }
            ]
        },
        {
            "code": "amount",
            "type": "number",
            "label": "Количество",
            "description": "Укажите количество",
            "constraints": [
                {
                    "name": "Обязательное поле",
                    "value": "true"
                },
                {
                    "name": "Минимальное значение",
                    "value": "50"
                },
                {
                    "name": "Максимальное значение значение",
                    "value": "1000"
                },
                {
                    "name": "Шаг",
                    "value": "5"
                }
            ]
        },
        {
            "code": "notes",
            "type": "string",
            "label": "Пожелания к заказу",
            "description": "Укажите ссылку на страницу",
        },
        ...
    ],
    "discounts": [
        "10% если количество больше 1000",
        "20% если сумма больше 5000"
    ]
}

Коды ошибок


401 - Неавторизованный запрос. Проверьте правильность заголовка Authorization.

404 - Услуга не найдена.

500 - Ошибка сервера. Обратитесь в техническую поддержку.

Информация о текущем балансе на вашем аккаунте.

Запрос


Пример
curl -X GET http://api.mnogo-golosov.ru/v1/balance
-H "Content-Type: application/json"
-H "Accept: application/json"
-H "Authorization: Bearer {TOKEN}"

Успешный ответ


Статус

200

Формат ответа

Balance

Возвращает JSON-объект типа Balance. Схемы объектов представлены ниже в разделе Объекты ответов

Пример JSON-ответа
{
    "balance": 1234.56
}

Коды ошибок


401 - Неавторизованный запрос. Проверьте правильность заголовка Authorization.

500 - Ошибка сервера. Обратитесь в техническую поддержку.

Объекты ответов


Информация о заказе.

Поля
order_number
required
string

Номер заказа

total
required
number

Сумма заказа

status
required
string

Статус заказа

Возможные значения:

  • pending - ожидает оплаты
  • accepted - принят в работу
  • moderation - на модерации
  • process - выполняется
  • done - завершен
  • cancel - отменен
  • refund - возврат
  • written - пишется
  • partially - частично запущен

Для уточнения информации по отдельному заказу обращайтесь в техническую поддержку на сайте.

Информация об услуге.

Поля
code
required
string

Уникальный код услуги

title
required
string

Название услуги

price
required
number

Цена

options
required
Array <Option>

Опции, необходимые для заказа услуги

description string

Описание услуги

discounts Array <string>

Описание скидок, доступных при заказе услуги

Информация об опции конкретной услуги.

Поля
code
required
string

Код опции

type
required
string

Тип значения

Доступные типы:

  • number - число
  • string - строка
  • array<string> - массив строк

При заказе вы должны передавать значения только в указанном формате.

label
required
string

Название опции

choices string

Массив доступных значений. Каждое значение представляет собой объект с полями name и code. Поле name носит только информационный характер. При заказе всегда нужно использовать поле code.

Если указано это поле, то при заказе значения должны быть только из этого списка (поле code).

Пример:

{
    ...,
    "choices": [
        {
            "name": "Россия",
            "code": "ru"
        },
        {
            "name": "Казахстан",
            "code": "kz"
        },
    ],
    ...
}

Пример заказа услуги с такой опцией, если тип значения type == string

{
    ...,
    "options": {
        "country": "ru"
    },
    ...
}

Пример заказа услуги с такой опцией, если тип значения type == array<string>

{
    ...,
    "options": {
        "country": ["ru", "kz"]
    },
    ...
}
description string

Описание опции

description_2 string

Дополнительное описание опции

help string

Дополнительная помощь

Информация об ограничениях, установленных для опции конкретной услуги.

Поля
name
required
string

Название ограничения

Возможные значения:

  • Регулярное выражение - описание регулярного выражения и того, как значение должно с ним согласовываться.
  • Обязательное поле - поле обязательно для заполнения.
  • Минимальное значение - значение поля должно быть больше или равно value.
  • Максимальное значение - значение поля должно быть меньше или равно value.
  • Шаг - значение поля должно быть кратно value.
value
required
string

Значение ограничения

Пример:

{
    "name": "Минимальное значение",
    "value": "50"
}

Такое ограничение означает, что минимальное значение при заказе должно быть больше или равно 50.

Информация о текущем балансе на вашем аккаунте.

Поля
balance
required
number

Баланс в рублях РФ.