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

Запрос

url: https://api.apostasseguras.com/request

Метод: get

Заголовки

Authorization = Bearer api_token
api_token - токен, который вам предоставлен для получения API данных

Параметры

product = surebets|middles|valuebets
Тип запрашиваемых данных. Обязательный параметр.

source = bookies
Перечисление id букмекеров, для которых необходимо запросить данные. Обязательный параметр.

sport = sports
Перечисление id видов спорта, для которых необходимо запросить данные. Обязательный параметр.

limit = 25
Лимит по числу данных, которые можно получить за один запрос. По умолчанию это значение равно 25.

cursor = sort_by:id
Параметр для навигации по результатам выдачи. В зависимости от того, нужно ли нам пойти вперед или назад по списку: sort_by и id должны быть взяты для последней или первой record текущей выдачи. Например, для выдачи, которая имеется внизу страницы sort_by:id: 4609118910833099900, id:785141488 (допустим, это id последней записи в выдаче), параметр cursor будет выглядеть так: cursor=4609118910833099900:785141488
Добавление этого параметра к запросу будет означать выдачу следующей (если id был последним) или предыдущей (если id был первым) страницы с данными.

commissions = betfair:5,betdaq:1.5
Значения применяемых к ставкам комиссий. В данном примере указано, что к выигрышам ставок на Betfair будет применена комиссия в 5%, а для Betdaq 1.5%.

oddsFormat = eu|us|uk|my|hk|pr
Формат отображения ставок.
eu - европейский (десятичный)
us - американский
uk - британский (дробный)
my - малазийский
hk - гонконгский
pr - вероятность

outcomes = 2|3
Число исходов вилки: может быть 2 либо 3. Если параметр не указан или указано любое другое значение (кроме 2 либо 3), то будут отображаться все возможные варианты.

min_group_size = 2
Минимальное число ставок для сравнения и расчета ставок с перевесом: может быть 2 и более. Также это поле отображается в JSON под именем "similar_size", записывается после "id".

Фильтрация

для Valuebets:

group = off
Отображение всех ставок с перевесом для данного события и рынка.

min-odds = 1.25 max-odds = 5 Фильтрация по коэффициенту.

min-overvalue = 1.25 max-overvalue = 5
По перевесу.

min-probability = 100.2 max-probability = 1523.44
По вероятности.

Для Surebets:

min-profit = 10 max-profit = 1000
По доходу.

min-roi = 10 max-roi = 100000 По ROI.

hide-different-rules = true
Исключение вилок с разными правилами, где есть риск проигрыша по всем плечам.

Для Middles:

min-m-ev = 1 max-m-ev = 2
По математическому ожиданию (EV).

min-m-k = 1.25 max-m-k = 5
По коэффициенту.

min-m-bet = 1 max-m-bet = 10
По проигрышу при промахе (доход от выигрыша только одной ставки или проигрыш по обеим ставкам).

min-m-win = 1 max-m-win = 10
По выигрышу при попадании (когда выигрывают сразу две ставки).

min-probability = 100.2 max-probability = 1523.44
По оцененной вероятности попадания в коридор.

Для всех запросов API:

startOf = 1 endOf = 3
По времени начала, в часах.

startAge = 1 endAge = 3
По возрасту вилки/ставки с перевесом/коридора.

order = field_desc order = field_asc
Устанавливает порядок сортировки по возрастанию или убыванию. Возможные значения для Field:

Например: start_at_asc

Ограничения

Не более 2 запросов в секунду.

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

https://api.apostasseguras.com/request?product=surebets&source=1xbet|pinnaclesports|parimatch|marathonbet&sport=Basketball|Football|Tennis https://api.apostasseguras.com/request?product=surebets&source=1xbet|pinnaclesports|parimatch|marathonbet&sport=Basketball|Football|Tennis&limit=10&cursor=4609118910833099900:785141488

Чтобы быстро убедиться, что API работает, вы можете воспользоваться программой curl и выполнить там такой запрос:

curl "https://api.apostasseguras.com/request?product=surebets&source=bet365|22bet|unibet|pokerstars\_es&sport=Football|Volleyball" -H "Authorization: Bearer api_token"


Result

Общие данные

{
    /* время: когда был сформирован ответ */
    updated_at: 1684171109017,
    
    /* есть ли возможность итерироваться вперед по списку */
    can_forward: true,
    
    /* есть ли возможность итерироваться назад по списку */
    can_backward: false,
    
    /* количество records в выдаче */
    limit: 25
}

Секция ставки

{
    /* ID ставки */
    id: 460444138,

    /* название турнира, как оно значится на букмекерском сайте */
    tournament: "Counter-Strike - BLAST Paris Major",

    /* названия участников, как они значатся на букмекерском сайте */
    teams: ["Fnatic", "G2"],

    /* переоценённость ставки в диапазоне от 0 до 1; если 0, то значение еще не посчитано */
    overvalue: 0,

    /* вероятность выигрыша ставки в диапазоне от 0 до 1; если 0, то значение еще не посчитано */
    probability: 0,

    /* коэффициент ставки */
    value: 4.56,

    /* комиссия, которую берет букмекер с выигрыша; задана в диапазоне от 0 до 1 */
    commission: 0,

    /* название букмекерской конторы */
    bk: "parimatch",

    /* цифровой id матча в системе */
    event_id: 460159166,

    /* вид спорта */
    sport_id: "CounterStrike",
    
    /* время начала события, которое указал букмекерский сайт */
    time: 1684157400000,
    
    /*
    Есть три типа элементов, которые описывают навигацию к ставке. Все они или какой-то из них могут присутствовать в выдаче, если их возможно получить для конкретного букмекера:
      event_nav - ссылка до матча
      view_nav - ссылка до конкретного маркета (группы ставок)
      stake_nav - ссылка на конкретную ставку
    При этом, если присутствует только event_nav, то этот же линк заменяет собой view_nav и stake_nav. Если есть event_nav и view_nav, но нет stake_nav, то view_nav заменяет собой stake_nav.
    Каждый из этих элементов имеет одинаковую внутреннюю структуру. Ниже описан один из них - event_nav.
    Элемент описания навигации к ставке на сайте букмекера. Сюда записываются любые данные, которые могут быть полезны для того, чтобы получить прямую ссылку на матч или конкретную ставку. 
    */
    "event_nav": {
    
        /* указание на то, что ссылка на событие может быть открыта из iframe */
       "direct": true,
        
        /* набор ссылок (links) */
        "links": [
            
            //первый link  с именем main
            {
                /* имя link */
                "name": "main",

                /* описание http-запроса */
                "link": {

                    /* метод http-запроса */
                    "method": "GET",

                    /* url */
                    "url": "https://www.marathonbet.com/en/betting/Tennis/ITF/England/Roehampton/Men/Singles/Round+of+32/B.Blaydes+vs+F.Bondioli+-+16407509"
                },
                /* список имен ссылок, которые должны быть открыты вместе с этой */
                "requirements": ["x"]
            },

            //второй линк с именем x
            {
                /* имя link */
                "name": "x",

                /* описание http-запроса */
                "link": {

                    /* метод http-запроса */
                    "method": "POST",

                    /* url */
                    "url": "https://www.marathonbet.com/en/betslip/add.htm",

                    /* параметры http-запроса */
                    "params": {
                        "ch": "{\"ewc\":\"1/1 1\",\"cid\":126110536388,\"prt\":\"CP\",\"ewf\":\"1.0\",\"epr\":\"1.95\",\"prices\":{\"0\":\"19/20\",\"1\":\"1.95\",\"2\":\"-106\",\"3\":\"0.95\",\"4\":\"0.95\",\"5\":\"-1.06\"},\"u\":\"15139400,Total_Games7.Under_23\",\"mainEventTreeId\":\"16407509\"}", 
                        "url": "https://www.marathonbet.com/en/betting/Tennis/ITF/England/Roehampton/Men/Singles/Round+of+32/B.Blaydes+vs+F.Bondioli+-+16407509"
                    }
                }, 
                
                /* желательное максимальное время задержки между открытием этой ссылки и предыдущей */
                "maxDelay": 1500
            }],
           
        /*
          Обычно данные этого раздела индивидуальны для каждого букмекера, и вам придется уточнить, как использовать это поле, если код не предоставляет ясных указаний для конкретного букмекера.
          Мы понимаем, что для пользователей API важно знать, как быстро сделать ставку, однако, при продаже API мы не предоставляем подробной документации о том, как выполнять определенные действия с конкретными букмекерами.
          В лучшем случае мы можем помочь пользователям, предоставив ответы на конкретные вопросы, или, если возможно, добавить некоторую информацию в выходные данные, которая может облегчить им навигацию.
        */
        "markers": {
            "id": 2000863629,
            "inValue": 1.95,
            "bk": "marathonbet",
            "externalId": "441036222-126110536388",
            "eventId": "16407509"
        }
    }
    
    /* описание характеристик для ставки */
    type: {
        /* условие, которое соответствует типу ставки, т. е. это дополнительный вариативный параметр, который описывает ставку */
        condition: "3.5", 
        
        /*
        Этот параметр отвечает за тип игровой ситуации, в рамках которого происходит событие.
        regular - это игровая ситуация по умолчанию. Например, в рамках такой ситуации принимаются ставки на исход матча.
        first - игровая ситуация, в которой команды соревнуются в том, кто забьёт первый гол / подаст первый угловой / получит первую карточку и т. д.
        № 2 - игровая ситуация для второго гола / углового / карточки и т. д.
        last - аналогично ситуации first, только для последнего гола / углового / карточки и т. д.
        openingPartnership - в крикете лучшая стартовая пара
и т.д.
        */
        game: "regular", 
        
        /*
        Этот параметр отвечает за команды, по отношению к которым принимается ставка, и может иметь такие значения, как:
        overall - домашняя и/или гостевая команды (например, тотал матча)
        home - домашняя команда
        away - гостевая команда
        both - гостевая и домашняя команды (например, обе забьют)
        */
        base: "overall", 
        
        /*
        разновидность исчисляемых значений, по которым принимается ставка.
        Гол, угловой, карточка, фрейм, сет, очко и т.д. - все это будет variety.
        */
        variety: "map", 
        
        /*
        период времени или часть игры, во время которого принимается ставка.
        Например: overtime, regularTime, period1, set1 и т.д. - это все будет period.
        */
        period: "overtime", 
        
        /*
        тип ставки. этот параметр описывает логический смысл ставки и может принимать значения вида:
        win1 - победа команды 1
        win1RetX - победа команды 1, но если ничья - возврат
        win2 - победа команды 2
        win2RetX - победа команды 2, но если ничья - возврат
        draw - ничья
        over - больше
        under - меньше
        yes - будет
        no - не будет
        odd - нечет
        even - чет
        ah1 - азиатский гандикап команды 1
        ah2 - азиатский гандикап команды 2
        eh1 - европейский гандикап команды 1
        ehx - европейский гандикап на ничью
        eh2 - европейский гандикап команды 2
        
        и другие
       Некоторые типы ставок могут подразумевать дополнительное условие. Например, для ставок over и under - это число total,
   для ставок типа ah1/ah2/eh1/ehx/eh2 - это число гандикапа. Все такие значения будут идти в отдельном параметре condition.
        */
        
        type: "over", 
        
        /*
        параметр, отвечающий за представление ставок в формате back/lay, который может встречаться на биржах ставок типа Betfair.
        По умолчанию все ставки back=true, и этот параметр отсутствует в выдаче. Однако если ставка будет lay, то этот параметр будет иметь значение
 back:false.
        */
        back: true,

        /*
        параметр, отвечающий за отрицания ставки, т. е. ставка описана таким образом, что игрок выигрывает, если описанное событие НЕ происходит.
        В этом случае в выдаче будет
 no:true. По умолчанию no:false.
        */
        
        no: false,
    }
}

/valuebets

Records: это и есть перечисление ставок, которые являются valuebets.

Общая часть у /surebets и /middles

{
    /* код сортировки, согласно которому возвращен результат */
    sort_by: 4609118910833099900

    /* record (surebet/middle/valuebet) id */
    id: 785141488,

    /* время начала события исхода, которое относится к surebet/middle */
    time: 1685835600000,

    /* время возникновения surebet/middle */
    created: 1684229420000,

    /* число surebets/middles, которые относятся к заданной группе ставок */
    group_size: 2, 
    
    /* коллекция ставок, входящих в surebet */
    prongs: [...], 
    
    /* опциональное поле, наличие которого означает, что ставки в surebet/middle могут применяться по разным правилам */
    rd: [[0], [1], [1]]
}

/surebets

{
     ...
    
    /* доходность surebet */
    profit: 11.2812, 
    
    /*  roi surebet */
    roi: 222.6584,
    
    /*
    список флагов, где каждый флаг соответствует prongs, при этом отдельный флаг может принимать значения:
    0 - обычные ставки
    1 - вероятно генеративные ставки
    2 - явно генеративные ставки
    Генеративная ставка - это такая ставка, которая собой порождает surebet.
    */
    generatives: "0,2"
}

/middles

{
    ...
    
    /* возможный проигрыш в случае, если сыграет только одна ставка */
    bet: 0.2452,
    
    /* возможный выигрыш, если сыграют сразу две ставки*/
    win: 0.5097,
    
    /* вероятность попадания в коридор, т.е. того, что сыграют обе ставки */
    probability: 0.3379,
    
    /* коэффициент коридора, т.е. отношение возможного выигрыша к возможному проигрышу */
    overvalue: 1.0404,
    
    /* математическое ожидание middle. Чем оно выше, тем более выгоден middle. */
    ev: 0.0099
}