Авторизация


Для получения доступа к Vouchers Open API, Вам нужно завести учетную запись в Даблтрейд. Регистрация занимает не более 2 минут.


После того, как у Вас появился рабочий аккаунт в системе, Вам нужно скопировать уникальный Токен (строка в 40 символов):

  1. Зайдите в свой кабинет;
  2. Нажмите на раздел "Контактная информация";
  3. Далее - "Управление токенами".


Токен для Voucher Open API расположены под названием "VOUCHERS.


CORS

Для домена api.tradedoubler.com включен CORS, что означает, Вы можете использовать XMLHttpRequest на стороне клиента без получения cross-доменных ошибок безопасности. Отдельно заметим, CORS на данный момент не полностью интегрирована во всех браузерах (поэтому, при желании, можно использовать JSONP для запросов на стороне клиента).


Получить промо-коды и ваучеры


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


HTTP[S] GET https://api.tradedoubler.com/1.0/vouchers[.empty|json|xml][query keys]?token={token}[&jsonp=myCallback]


Факультативные ключи


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


Название Описание Тип Multiple*
id Primary key of the voucher Integer Yes
maxStartDate Start date in UNIX Epoch time milliseconds or ISO8601 (e.g. 2012-12-24T16:00:00Z) Integer No
minEndDate End date in UNIX Epoch time milliseconds or ISO8601 (e.g. 2012-12-24T16:00:00Z) Integer No
dateOutputFormat Set to 'iso8601' if you want dates returned in ISO8601 format String No
programId Primary key of the program the voucher corresponds to Integer Yes
keywords Matches title, description, short description and code String Yes
voucherTypeId Primary key of the type. See table for specification Integer Yes
siteSpecific Set to True if you only want to get your exclusive voucher codes Boolean No
pageSize Number of items to return. Defaults to 1000 Integer No
page If you get more items than pageSize, you can use this key to specify which page you want returned. For example, if you get 100 results and pageSize is 10, setting page to 2 will get you products 21-30. Integer No
random Enter a seed to get a specific randomized order of your result Integer No
languageId Enter an ISO 639-1 code to filter on language. String No
jsonp
string No

* Если Вы используете несколько значений для одного ключа, используйте один ключ для каждого значения.


Правильно: id=1;id=2;id=3
Не правильно: id=1,2,3



Типы ваучеров


Ниже описаны пять типов ваучеров, использующиеся для создания и поиска ваучеров: 


ID Название
Описание
1 Voucher Offer usable only with a voucher code. This type has a voucher code.
2 Discount General discount without a voucher code. This type must always include a discount amount.
3 Free article Free item(s) offered on purchase.
4 Free shipping Free shipping offered without a voucher code.
5 Raffle Competition or lottery connected to a purchase.

JSON/JSONP


Если Вы выбрали .json как расширение, API возвратить JSON.


Вы также можете добавить ключ jsonp к Вашему запросу и получить JSONP Javascript функция returned. Значение jsonp key's значение превратиться в callback функцию.


Например - jsonp=myCallback: function myCallback(result, statusCode, message)


Определения аргументов функций JSONP callback:


Название Описание Тип
result The result JSON as an evaluated javascript object object/array
statusCode HTTP status code. Undefined if successful int
message Error message. Undefined if successful string

Если Вы не определяете имя callback и указываете json как расширение, API вернет актуальный JSON с MIME типом приложения/json.


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


Получить все ваучеры в XML:

HTTP[S] GET http://api.tradedoubler.com/1.0/vouchers.xml?token={token}

Получить ваучеры до нового 2012 года в JSON:


HTTP[S] GET http://api.tradedoubler.com/1.0/vouchers.json;minEndDate=1356393599000?token={token}

Получить все дискаунты непосредственно для партнерской программы с ID 50000 в JSONP с callback именем myCallback:


HTTP[S] GET http://api.tradedoubler.com/1.0/vouchers.xml;voucherTypeId=2;voucherTypeId=5;programId=50000?token={token}&jsonp=myCallback

Получить все ваучеры, связанные с Вашим сайтом: 


HTTP[S] GET http://api.tradedoubler.com/1.0/vouchers.xml;siteSpecific=true?token={token}

Получить 10 ваучеров со второй страницы, которые совпадают с ключевым словом "free" в XML:


HTTP[S] GET http://api.tradedoubler.com/1.0/vouchers.xml;pageSize=10;page=1;keywords=free?token={token}



Ответ на запрос


В качестве ответа на запрос, Вам придут следующие данные: 


Название
Описание Тип Макс байт
Обязательно
id Primary ID of the voucher Integer
Yes
programId Primary key of the program owning the offer Integer   Yes
programName Name of the program String   Yes
code Actual voucher code String 256 Yes*
updateDate Last update date in UNIX Epoch time milliseconds or ISO8601 depending on your dateOutputFormat Integer   Yes
startDate Start date in UNIX Epoch time milliseconds or ISO8601 depending on your dateOutputFormat Integer   Yes
endDate End date in UNIX Epoch time milliseconds or ISO8601 depending on your dateOutputFormat Integer   Yes
title Title of the offer String 32 Yes
shortDescription Short description of the offer String 100 No
description Long description of the offer String 65535 No
voucherTypeId Primary key of the type. See table for specification Integer   Yes
defaultTrackUri Default tracker link. Use this to link to the advertiser. String   Yes
siteSpecific Set to True if the offer is only available to your site. Boolean   Yes
landingUrl If the offer has a specific landing page, its URL will be presented here. It is also amended to defaultTrackUri. String 2048 No

* Код обязателен только для voucherTypeId=1.


XML ответ


This is an example of a voucher returned as XML:

    <voucherList>
    <voucher> <id>16043</id> <programId>15603</programId> <programName>Voucher program</programName> <code>XS51F9</code> <updateDate>1362420096992</updateDate> <publishStartDate>1362351600000</publishStartDate> <publishEndDate>1364511599999</publishEndDate> <startDate>1362351600000</startDate> <endDate>1364511599999</endDate> <title>Save dollars today!</title> <shortDescription>10% off your purchase</shortDescription> <description>Save 10% off your purchase by using this voucher code!</description> <voucherTypeId>1</voucherTypeId> <defaultTrackUri>http://clk.tradedoubler.com/click?a(11111)p(15603)ttid(13)url(http://www.advertiser.co.uk/affiliate-landing)</defaultTrackUri> <siteSpecific>false</siteSpecific> <landingUrl>http://www.advertiser.co.uk/affiliate-landing</landingUrl> <discountAmount>10</discountAmount> <isPercentage>true</isPercentage> <exclusive>false</exclusive> </voucher> </voucherList>


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


    Это тот же ваучер, что и Выше, но переформатированный в Json:

      { "id": 16043, "programId": 15603, "programName": "Voucher program", "code": "XS51F9", "updateDate": "1362420096992", "publishStartDate": "1362351600000", "publishEndDate": "1364511599999", "startDate": "1362351600000", "endDate": "1364511599999", "title": "Save dollars today!", "shortDescription": "10% off your purchase", "description": "Save 10% off your purchase by using this voucher code!", "voucherTypeId": 1, "defaultTrackUri": "http://clk.tradedoubler.com/click?a(11111)p(15603)ttid(13)url(http://www.advertiser.co.uk/affiliate-landing)", "siteSpecific": false, "landingUrl": "http://www.advertiser.co.uk/affiliate-landing", "discountAmount": 10, "isPercentage": true, "exclusive": false,
      }
      JSONP
      ответ (callback=myCallback):
        myCallback ([ { "id": 16043, "programId": 15603, "programName": "Voucher program", "code": "XS51F9", "updateDate": "1362420096992", "publishStartDate": "1362351600000", "publishEndDate": "1364511599999", "startDate": "1362351600000", "endDate": "1364511599999", "title": "Save dollars today!", "shortDescription": "10% off your purchase", "description": "Save 10% off your purchase by using this voucher code!", "voucherTypeId": 1, "defaultTrackUri": "http://clk.tradedoubler.com/click?a(11111)p(15603)ttid(13)url(http://www.advertiser.co.uk/affiliate-landing)", "siteSpecific": false, "landingUrl": "http://www.advertiser.co.uk/affiliate-landing", "discountAmount": 10, "isPercentage": true, "exclusive": false, }
        ]);

        Пример кода-граббера для получения ваучеров через API


        This button asynchronously fetches voucher JSON data by using a simple jQuery Ajax CORS">CORS request to Tradedoubler.

        This is the function that is called when the button is clicked. The variable voucherExample is the <tbody> element of the table that is used to present the content.