NAV Navbar
shell php python node
  • Introduction
  • Requirements
  • Authentication
  • Requests
  • Responses
  • Query Object
  • Affiliate Links
  • Usage Limits
  • Support
  • API Reference
  • Status
  • Networks
  • Merchants
  • Merchant Search
  • Products
  • Amazon Item Search
  • Zanox Merchant IDs
  • Performance Horizon Camref
  • Error Codes
  • Introduction

    Thank you for checking out the Datafeedr API.

    Datafeedr has over 10 years experience processing affiliate network data feeds to enable website owners to easily find and display relevant affiliate products on their WordPress websites.

    In those 10 years we have grown our database to over 400 million affiliate products from 12,000+ merchants and 30+ affiliate networks which we keep updated on a daily basis.

    The Datafeedr API is a single access point to all of that affiliate data.

    Our API provides a powerful interface that enables you to programatically find and filter product and coupon data from the affiliate network and merchants we support giving you the keys to build something awesome!

    Requirements

    There are 2 requirements for using the Datafeedr API.

    API Keys

    You will need a set of Datafeedr API keys which can be purchased here.

    Datafeedr API keys consist of an ACCESS ID and an ACCESS KEY which must be included in all API Requests.

    See the Usage Limits section for more information on API Request limits.

    Affiliate IDs

    You can make Requests to the Datafeedr API without affiliate IDs but in order insert your affiliate IDs into the affiliate URLs, you will need to:

    Without a valid affiliate ID you will not receive commissions for referred sales.

    Authentication

    {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY"
    }
    

    Every API Request to the Datafeedr API requires an ACCESS ID and an ACCESS KEY in the body of your Request.

    Requests

    When making Requests to the Datafeedr API please ensure your Request meets these requirements:

    1. HTTPS Only - The Datafeedr API will only respond to secured communication over HTTPS. HTTP Requests will be sent a Response containing a 400 HTTP status code.

    2. POST Only - All Requests to the API should be POST Requests.

    3. JSON Only - All Request parameters should be in JSON format.

    4. Body Only - All Request parameters should be sent in the body of the POST.

    Request Properties

    All Requests require an ACCESS ID and an ACCESS KEY. See Requirements.

    Property Type Description
    aid string Datafeedr API ACCESS ID.
    akey string Datafeedr API ACCESS KEY.

    Request Example

    curl --request POST \
        --url https://api.datafeedr.com/search \
        --data '{
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "query": [
            "name LIKE rock climbing harness"
        ]
    }'
    
    <?php
    
    $url = "https://api.datafeedr.com/search";
    
    $data = json_encode([
        'aid'   => 'ACCESS_ID',
        'akey'  => 'ACCESS_KEY',
        'query' => [
            'name LIKE rock climbing harness'
        ]
    ]);
    
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
        CURLOPT_POSTFIELDS     => $data
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    print_r(json_decode($response));
    
    import requests
    
    url = "https://api.datafeedr.com/search"
    
    data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "query": [
            "name LIKE rock climbing harness"
        ]
    }
    
    response = requests.post(url, json=data)
    print(response.json())
    
    var axios = require('axios');
    
    var url = "https://api.datafeedr.com/search";
    
    var data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "query": [
            "name LIKE rock climbing harness"
        ]
    };
    
    axios.post(url, data).then(function (response) {
        console.log(response.data)
    });
    

    Here is an example of a simple product search Request which includes an ACCESS ID and an ACCESS KEY and a Query Object containing one Condition.

    Responses

    Each Response sent from the Datafeedr API server will meet these requirements:

    1. JSON Only - Responses to every Request are sent in JSON format.

    2. Include HTTP Status Codes - Responses will contain appropriate HTTP status codes.

    Successful Responses

    Every successful API Request will return a 200 HTTP status code and include the following properties in the Response in addition to any queried data.

    Response Properties

    The common properties returned after making any successful API Request are the following.

    Property Type Description
    status object Status Object.
    time integer Time spent processing the API request (in milliseconds).
    version string The current version of the API.

    Response Example

    {
        "status": {
            "network_count": 173,
            "plan_id": 1500,
            "user_id": 100,
            "max_total": 10000,
            "merchant_count": 57898,
            "max_requests": 100000,
            "bill_day": 21,
            "request_count": 2951,
            "product_count": 449069504,
            "max_length": 100
        },
        "version": "0.2",
        "time": 0
    }
    

    This is an example of what a successful request looks like.

    Unsuccessful Responses

    Every unsuccessful API Request will return a 4xx or 5xx HTTP status code along with an Error object. See Error Codes for debugging.

    Response Properties

    The default properties of an Error object are the following.

    Property Type Description
    type integer Error type.
    error integer Error code.
    message string Error message.
    details string Error details.

    Response Example:

    {
        "type": 2,
        "error": 202,
        "message": "Invalid access id",
        "details": ""
    }
    

    This is an example of what a unsuccessful request might look like.

    Error Types

    Error types correspond to the type of error encountered during the Request.

    Code Description
    1 Invalid request error.
    2 Access error.
    3 Limit error.
    4 Malformed query error.
    7 External APIs (Performance Horizon, Zanox) error.
    9 Other error.

    Query Object

    "query": [
      "condition 1",
      "condition 2",
      "condition 3"
    ]
    

    The Datafeedr API provides a powerful and robust search syntax through the use of the Query Object.

    A Query Object is an array of single Conditions.

    Conditions

    Conditions make it possible to build complex and powerful search queries.

    Condition Format

    Conditions take the form: field operator argument(optional).

    Below are a few examples of multiple conditions in a Query Object.

    See the API Reference for specific examples of the Query Object in use.

    Condition Example #1 - AND'd Conditions

    "query": [
        "name LIKE farpoint 55",
        "brand LIKE osprey",
        "onsale = 1"
    ]
    

    In this example we have 3 Conditions. The Request will return records that match the following Conditions:

    Condition Example #2 - Multiple Conditions, Same Field

    "query": [
        "ANY LIKE petzl climbing harness",
        "price > 10000",
        "price < 20000"
    ]
    

    You can also include multiple Conditions for the same field.

    In this example we have 2 Conditions on the same field. The Request will return records that match the following Conditions:

    Condition Example #3 - Missing "positive" Condition

    "query": [
        "name !LIKE farpoint",
        "source_id !IN 6, 126"
    ]
    

    Every Query Object should contain at least one "positive" search.

    In this example we have 2 Conditions but both are "negative". The Request will fail because it doesn't contain at least one "positive" Condition.

    Fields

    As stated above, Conditions take the form:

    field operator argument(optional).

    At this time, the Merchant Object and Product Object properties can be used as the field values in a Condition.

    Merchant Fields

    Example of Merchant field usage

    "query": [
      "name LIKE magazines|=books",
      "source LIKE coupons",
      "source_id !IN 123",
      "product_count > 5"
    ]
    

    The following Merchant Object fields (properties) can be used in a Condition.

    Field Type Query Type
    id integer INT
    name string TEXT
    source string TEXT
    source_id integer INT
    product_count integer INT

    Product Fields

    Example of Product field usage

    "query": [
      "any LIKE climbing women|woman",
      "name LIKE harness",
      "source LIKE avantlink|linkshare",
      "price > 5000",
      "price < 15000",
      "merchant !LIKE Jet|Groupon",
      "onsale = 1",
      "image !EMPTY",
      "currency = USD",
      "brand LIKE mammut|\"black diamond\"|petzl",
      "salediscount >= 15"
    ]
    

    The following Product Object fields (properties) can be used in a Condition.

    Field Type Query Type
    id integer INT
    brand string TEXT
    category string TEXT
    color string TEXT
    currency string TEXT
    description string TEXT
    direct_url string EMPTY
    ean string TEXT
    finalprice integer INT
    gender string TEXT
    htmldescription string EMPTY
    image string EMPTY
    isbn string TEXT
    merchant_id integer INT
    merchant string TEXT
    name string TEXT
    offerbegin timestamp DATE
    offercode string EMPTY, TEXT
    offerend timestamp DATE
    onsale integer INT
    price integer INT
    salediscount integer INT
    saleprice integer EMPTY, INT
    size string TEXT
    sku string TEXT
    source_id integer INT
    source string TEXT
    tags string TEXT
    thumbnail string EMPTY
    time_updated timestamp DATE
    upc string TEXT

    Search Operators

    Search operator examples

    "query": [
      "any !LIKE mens",
      "name LIKE climbing harness",
      "brand LIKE petzl",
      "description LIKE big|large",
      "tags LIKE climbing",
      "category LIKE rock climbing",
      "currency = USD",
      "finalprice <= 20000",
      "onsale = 1",
      "direct_url !EMPTY",
      "salediscount > 15",
      "image !EMPTY",
      "time_updated > 2018-01-25 00:00:00",
      "source_id IN 126 3 6",
      "merchant_id IN 1312 94836 12927"
    ]
    

    Search operators make it possible to perform specific types of queries on fields. Which operator you choose depends on the allowed Query Type(s) for that field.

    Operator Meaning Argument Example
    EMPTY field is empty none, must be omitted saleprice EMPTY
    !EMPTY field is not empty none, must be omitted image !EMPTY
    LIKE fulltext match fulltext query name LIKE iphone
    !LIKE fulltext not match fulltext query brand !LIKE apple
    = strictly equal string, integer, timestamp currency = USD
    != strictly not equal string, integer, timestamp currency != CAD
    > more than integer, timestamp price > 10000
    >= more or equal integer, timestamp salediscount >= 25
    < less than integer, timestamp finalprice < 10000
    <= less or equal integer, timestamp offerbegin <= 2018-01-11 00:00:00
    IN one of comma-separated list of integers merchant_id IN 123, 456
    !IN neither of comma-separated list of integers source_id !IN 321, 654

    Query Types

    Merchant & Product Objects have many properties that can be queried. See a list of all supported fields.

    The search operator you use depends on the type of field you are querying against.

    For example, the LIKE search operator can be applied to the "name" property but the IN operator cannot because the IN operator only works with integer fields.

    The table below defines which search operator work with which Query Types.

    Query Type Search Operators
    TEXT LIKE !LIKE = !=
    INT = != > >= < <= IN !IN
    DATE = != > >= < <=
    EMPTY EMPTY !EMPTY

    All dates are stored in the format YYYY-MM-DD HH:MM:SS in UTC

    Fulltext Queries

    Fulltext query examples

    "query": [
      "ANY LIKE shoe",
      "name LIKE female|woman !mens running shoe",
      "name LIKE ^Red =shoe for walking|running",
      "description LIKE cheap|inexpensive|affordable",
      "brand LIKE =nike"
    ]
    

    Fields that have a Query Type of TEXT are also available for fulltext search queries.

    By default, when searching a text field, all words are AND'd together.

    For example, the following condition will return all records where the name contains the word "mens" AND "climbing" AND "harness".

    name LIKE mens climbing harness

    You can build more powerful search queries using the following operators:

    Operator Example Meaning
    AND dog cat Return records matching "dog" AND "cat". (Default)
    OR dog|cat Return records matching "dog" OR "cat".
    Phrasal "large dogs" Return records matching the phrase "large dogs".
    Exact =running Return records matching the exact word "running".
    NOT !walking Exclude records matching "walking".
    NOT plus OR !dog|cat Exclude records matching "dog" OR "cat".
    Starts With ^black Return records where field starts with "black".
    Ends With white$ Return records where field ends with "white".
    Quorum "dog cat bird"~2 Returns records where at least 2 words match.

    Case Sensitivity

    All fulltext searches are case-insensitive therefore Shoe and shoe produce the same results.

    Stemming

    Unless you're using the exact word operator =, the fulltext search also matches similar words. For example, name LIKE nice also returns products whose name contains nicely or nicer.

    Affiliate Links

    Inserting affiliate ID

    Example of "url" and "ref_url" fields in a Product Object.

    "name": "Black Diamond Women's Solution Climbing Harness",
    "url": "http://classic.avantlink.com/click.php?p=199519&pw=@@@&pt=3&pri=60466&tt=df",
    "ref_url": "http://classic.avantlink.com/click.php?p=199519&pw=@@@&pt=3&pri=60466&tt=df&ctc=###",
    "source": "AvantLink US",
    "source_id": 126,
    

    In order to get credit for any sales you refer to a merchant you MUST insert your affiliate ID into the url or ref_url field of a Product.

    A Product Object will contain a url field and usually a ref_url field.

    Both fields contain URLs with the characters @@@ in the URL. You must replace @@@ with your affiliate ID from the respective affiliate network. Replacing @@@ is REQUIRED.

    If an affiliate network allows sub-tracking, then a ref_url field will also be present and the URL in that field will contain the ### characters. This can be used to pass additional tracking data to the affiliate network. Replacing ### with a sub-tracking value is OPTIONAL.

    If you do not need to do sub-tracking the you should use the url field.

    If you need help finding your affiliate IDs, check our documentation.

    Zanox Affiliate IDs

    Zanox handles affiliate IDs differently than most other affiliate networks.

    Instead of providing a static affiliate ID that can simply be inserted into your URLs, an affiliate ID must be dynamically generated.

    You must get your Zanox zmid value for each Zanox merchant.

    The @@@ characters in the URL are replaced with the zmid value.

    See the Get Zanox affiliate ID section to learn how to get your Zanox zmid value to insert in your product URLs.

    Performance Horizon Affiliate IDs

    Performance Horizon handles affiliate IDs differently than most other affiliate networks.

    Instead of providing a static affiliate ID that can simply be inserted into your URLs, an affiliate ID must be dynamically generated.

    You must get your Performance Horizon camref value for each Performance Horizon merchant.

    The @@@ characters in the URL are replaced with the camref value.

    See the Get Performance Horizon camref section to learn how to get your Performance Horizon camref value to insert in your product URLs.

    Usage Limits

    The number of API Requests you are allowed to make per billing cycle is determined by your Datafeedr subscription plan.

    We have different subscription plans for different needs.

    A billing cycle is 1 month.

    How to find your API Usage

    Every successful API Request will return a Status object which will contain the following useful properties:

    Billing & API Usage

    {
        "type": 3,
        "error": 301,
        "message": "Request limit exceeded"
    }
    

    If your request_count reaches the max_requests amount before your billing cycle rolls over, your account will not incur any additional charges.

    If you use all of your available API Requests for the current billing cycle, a 400 error will be returned along with the following Error object on all subsequent API Requests until a new billing cycle starts or your subscription is upgraded to accommodate the additional Requests needed.

    Support

    For help accessing the Datafeedr API, feel free to contact us.

    In the event you receive a 5xx response from our servers, it implies that we have hit an unexpected spike in API access traffic and we typically will be operational within the next 5 minutes. If the outage persists, or you receive any other form of 5xx error, kindly let us know.

    API Reference

    Below you can find available API request endpoints, examples of Requests and their respective Responses.

    Status

    The status endpoint returns Status related data.

    Status Properties

    The Status Object contains information about the API status and your account.

    Property Type Description
    network_count integer Total number of affiliate networks.
    merchant_count integer Total number of merchants.
    product_count integer Total number of products.
    plan_id integer Your Datafeedr subscription plan ID.
    bill_day integer Day of the month your subscription billing cycle renews.
    request_count integer Total number of API requests made since the start of the billing cycle.
    max_total integer Maximum number of results returned for a search (requires offset).
    max_length integer Maximum number of records returned per API Request.
    max_requests integer Maximum number of API Requests per billing cycle.

    Retrieve Status

    Status Request

    curl --request POST \
      --url https://api.datafeedr.com/status \
      --data '{
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY"
    }'
    
    <?php
    
    $url = "https://api.datafeedr.com/status";
    
    $data = json_encode([
        'aid'  => 'ACCESS_ID',
        'akey' => 'ACCESS_KEY'
    ]);
    
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
        CURLOPT_POSTFIELDS     => $data
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    print_r(json_decode($response));
    
    import requests
    
    url = "https://api.datafeedr.com/status"
    
    data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY"
    }
    
    response = requests.post(url, json=data)
    print(response.json())
    
    var axios = require('axios');
    
    var url = "https://api.datafeedr.com/status";
    
    var data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY"
    };
    
    axios.post(url, data).then(function (response) {
        console.log(response.data)
    });
    

    Status Response

    {
        "status": {
            "network_count": 173,
            "plan_id": 10300,
            "user_id": 190,
            "max_total": 10000,
            "merchant_count": 57970,
            "max_requests": 100000,
            "bill_day": 16,
            "request_count": 4053,
            "product_count": 454449243,
            "max_length": 100
        },
        "version": "0.2",
        "time": 0
    }
    

    POST https://api.datafeedr.com/status

    Retrieve information about the Datafeedr API and your account.

    Request Properties

    There are no additional properties required for this Request.

    Response Properties

    Property Type Description
    status object Status Object.
    time integer Time spent processing the API request (in milliseconds).
    version string The current version of the API.

    Networks

    The networks endpoint returns Network related data.

    Network Properties

    The Network Object contains information about a single affiliate network.

    Property Type Description
    _id integer Affiliate network ID.
    name string Affiliate network name.
    group string Affiliate network group (common) name.
    merchant_count integer Total number of merchants in this network.
    product_count integer Total number of records for this network.
    type string Type of records this network supports. Either "products" or "coupons".

    Get all networks

    Example Network Request

    curl --request POST \
      --url https://api.datafeedr.com/networks \
      --data '{
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY"
    }'
    
    <?php
    
    $url = "https://api.datafeedr.com/networks";
    
    $data = json_encode([
        'aid'  => 'ACCESS_ID',
        'akey' => 'ACCESS_KEY'
    ]);
    
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
        CURLOPT_POSTFIELDS     => $data
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    print_r(json_decode($response));
    
    import requests
    
    url = "https://api.datafeedr.com/networks"
    
    data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY"
    }
    
    response = requests.post(url, json=data)
    print(response.json())
    
    var axios = require('axios');
    
    var url = "https://api.datafeedr.com/networks";
    
    var data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY"
    };
    
    axios.post(url, data).then(function (response) {
        console.log(response.data)
    });
    

    Example Network Response

    {
        "status": {
            "network_count": 173,
            "plan_id": 10300,
            "user_id": 190,
            "max_total": 10000,
            "merchant_count": 57934,
            "max_requests": 100000,
            "bill_day": 16,
            "request_count": 3301,
            "product_count": 456177393,
            "max_length": 100
        },
        "length": 173,
        "version": "0.2",
        "networks": [
            {
                "group": "Adrecord",
                "name": "Adrecord Coupons/Deals",
                "merchant_count": 67,
                "product_count": 17,
                "_id": 271,
                "type": "coupons"
            },
            {
                "group": "Adrecord",
                "name": "Adrecord Denmark",
                "merchant_count": 8,
                "product_count": 15497,
                "_id": 277,
                "type": "products"
            },
            {
                "group": "Adrecord",
                "name": "Adrecord Finland",
                "merchant_count": 7,
                "product_count": 98239,
                "_id": 276,
                "type": "products"
            },
            {
                "group": "Adrecord",
                "name": "Adrecord Norway",
                "merchant_count": 24,
                "product_count": 261900,
                "_id": 275,
                "type": "products"
            },
            {
                "group": "Adrecord",
                "name": "Adrecord Sweden",
                "merchant_count": 330,
                "product_count": 734460,
                "_id": 270,
                "type": "products"
            },
    
            // ...
    
            {
                "group": "Zanox",
                "name": "Zanox Norway",
                "merchant_count": 17,
                "product_count": 948567,
                "_id": 410,
                "type": "products"
            },
            {
                "group": "Zanox",
                "name": "Zanox Poland",
                "merchant_count": 55,
                "product_count": 417207,
                "_id": 416,
                "type": "products"
            },
            {
                "group": "Zanox",
                "name": "Zanox Spain",
                "merchant_count": 77,
                "product_count": 1751507,
                "_id": 405,
                "type": "products"
            },
            {
                "group": "Zanox",
                "name": "Zanox Sweden",
                "merchant_count": 46,
                "product_count": 892027,
                "_id": 407,
                "type": "products"
            },
            {
                "group": "Zanox",
                "name": "Zanox Switzerland",
                "merchant_count": 61,
                "product_count": 4065447,
                "_id": 411,
                "type": "products"
            }
        ],
        "time": 0
    }
    

    POST https://api.datafeedr.com/networks

    Get all affiliate networks.

    Request Properties

    There are no additional properties required for this Request.

    Response Properties

    Property Type Description
    networks array Array of Network Objects.
    length integer Number of networks returned.
    status object Status Object.
    time integer Time spent processing the API request (in milliseconds).
    version string The current version of the API.

    Get specific networks & fields

    Example Network Request

    curl --request POST \
      --url https://api.datafeedr.com/networks \
      --data '{
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "fields": ["name", "product_count"],
        "source_ids": [6, 126]
    }'
    
    <?php
    
    $url = "https://api.datafeedr.com/networks";
    
    $data = json_encode([
        'aid'        => 'ACCESS_ID',
        'akey'       => 'ACCESS_KEY',
        'fields'     => ['name', 'product_count']
        'source_ids' => [6, 126]
    ]);
    
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
        CURLOPT_POSTFIELDS     => $data
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    print_r(json_decode($response));
    
    import requests
    
    url = "https://api.datafeedr.com/networks"
    
    data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "fields": ["name", "product_count"],
        "source_ids": [6, 126]
    }
    
    response = requests.post(url, json=data)
    print(response.json())
    
    var axios = require('axios');
    
    var url = "https://api.datafeedr.com/networks";
    
    var data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "fields": ["name", "product_count"],
        "source_ids": [6, 126]
    };
    
    axios.post(url, data).then(function (response) {
        console.log(response.data)
    });
    

    Example Network Response

    {
        "status": {
            "network_count": 173,
            "plan_id": 10300,
            "user_id": 190,
            "max_total": 10000,
            "merchant_count": 57971,
            "max_requests": 100000,
            "bill_day": 16,
            "request_count": 4365,
            "product_count": 456469693,
            "max_length": 100
        },
        "length": 2,
        "version": "0.2",
        "networks": [
            {
                "product_count": 1615690,
                "_id": 126,
                "name": "AvantLink US"
            },
            {
                "product_count": 20053459,
                "_id": 6,
                "name": "ShareASale"
            }
        ],
        "time": 0
    }
    

    POST https://api.datafeedr.com/networks

    Get affiliate networks by network ID and limit the fields returned for each network.

    Request Properties

    Property Value Type Required
    fields Array of Network properties to include in the results. ["name","type","..."] No
    source_ids Array of Network IDs to filter results by. [4,6,9,...] No

    Response Properties

    Property Type Description
    networks array Array of Network Objects.
    length integer Number of networks returned.
    status object Status Object.
    time integer Time spent processing the API request (in milliseconds).
    version string The current version of the API.

    Merchants

    The merchants endpoint returns Merchant related data.

    Merchant Properties

    The Merchant Object contains information about a single merchant.

    Property Type Description
    _id integer Merchant ID.
    name string Merchant name.
    source string Affiliate network name.
    source_id integer Affiliate network ID.
    product_count integer Total number of records for this merchant.

    Get all merchants

    Example Merchant Request

    curl --request POST \
      --url https://api.datafeedr.com/merchants \
      --data '{
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY"
    }'
    
    <?php
    
    $url = "https://api.datafeedr.com/merchants";
    
    $data = json_encode([
        'aid'  => 'ACCESS_ID',
        'akey' => 'ACCESS_KEY'
    ]);
    
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
        CURLOPT_POSTFIELDS     => $data
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    print_r(json_decode($response));
    
    import requests
    
    url = "https://api.datafeedr.com/merchants"
    
    data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY"
    }
    
    response = requests.post(url, json=data)
    print(response.json())
    
    var axios = require('axios');
    
    var url = "https://api.datafeedr.com/merchants";
    
    var data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY"
    };
    
    axios.post(url, data).then(function (response) {
        console.log(response.data)
    });
    

    Example Merchant Response

    {
        "status": {
            "network_count": 173,
            "plan_id": 10300,
            "user_id": 190,
            "max_total": 10000,
            "merchant_count": 57971,
            "max_requests": 100000,
            "bill_day": 16,
            "request_count": 4367,
            "product_count": 456469693,
            "max_length": 100
        },
        "merchants": [
            {
                "source_id": 8,
                "source": "ShareASale Coupons/Deals",
                "product_count": 1,
                "_id": 51862,
                "name": "'corePHP'"
            },
            {
                "source_id": 120,
                "source": "Commission Junction Coupons/Deals",
                "product_count": 0,
                "_id": 62415,
                "name": "(eUK) eUKhost Ltd"
            },
            {
                "source_id": 3,
                "source": "Commission Junction",
                "product_count": 4,
                "_id": 52287,
                "name": "(s) Strikingly"
            },
            {
                "source_id": 120,
                "source": "Commission Junction Coupons/Deals",
                "product_count": 0,
                "_id": 62490,
                "name": "(WHUK) WebHosting UK COM Ltd."
            },
            {
                "source_id": 123,
                "source": "Avangate",
                "product_count": 0,
                "_id": 19580,
                "name": "++Technologies"
            },
    
            // ...
    
            {
                "source_id": 700,
                "source": "Shopello Sweden",
                "product_count": 0,
                "_id": 64937,
                "name": "ÖVERLEVNADSBUTIKEN"
            },
            {
                "source_id": 15,
                "source": "Partner-ads",
                "product_count": 11445,
                "_id": 61983,
                "name": "Økologisk Supermarked"
            },
            {
                "source_id": 701,
                "source": "Shopello Denmark",
                "product_count": 0,
                "_id": 66150,
                "name": "Økologisk-Supermarked"
            },
            {
                "source_id": 15,
                "source": "Partner-ads",
                "product_count": 0,
                "_id": 52617,
                "name": "Økoshoppen.dk"
            },
            {
                "source_id": 26,
                "source": "Webgains Denmark",
                "product_count": 0,
                "_id": 32591,
                "name": "Økozonen"
            }
        ],
        "version": "0.2",
        "length": 57971,
        "time": 10
    }
    

    POST https://api.datafeedr.com/merchants

    Get all merchants.

    Request Properties

    There are no additional properties required for this Request.

    Response Properties

    Property Type Description
    merchants array Array of Merchant Objects.
    length integer Number of merchants returned.
    status object Status Object.
    time integer Time spent processing the API request (in milliseconds).
    version string The current version of the API.

    Get merchants by network

    Example Merchant Request

    curl --request POST \
      --url https://api.datafeedr.com/merchants \
      --data '{
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "fields": ["name", "product_count", "source"],
        "source_ids": [6, 126]
    }'
    
    <?php
    
    $url = "https://api.datafeedr.com/merchants";
    
    $data = json_encode([
        'aid'        => 'ACCESS_ID',
        'akey'       => 'ACCESS_KEY',
        'fields'     => [
            'name',
            'product_count',
            'source'
        ],
        'source_ids' => [6, 126]
    ]);
    
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
        CURLOPT_POSTFIELDS     => $data
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    print_r(json_decode($response));
    
    import requests
    
    url = "https://api.datafeedr.com/merchants"
    
    data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "fields": ["name", "product_count", "source"],
        "source_ids": [6, 126]
    }
    
    response = requests.post(url, json=data)
    print(response.json())
    
    var axios = require('axios');
    
    var url = "https://api.datafeedr.com/merchants";
    
    var data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "fields": ["name", "product_count", "source"],
        "source_ids": [6, 126]
    };
    
    axios.post(url, data).then(function (response) {
        console.log(response.data)
    });
    

    Example Merchant Response

    {
        "status": {
            "network_count": 173,
            "plan_id": 10300,
            "user_id": 190,
            "max_total": 10000,
            "merchant_count": 57971,
            "max_requests": 100000,
            "bill_day": 16,
            "request_count": 4366,
            "product_count": 456469693,
            "max_length": 100
        },
        "merchants": [
            {
                "product_count": 0,
                "source": "ShareASale",
                "_id": 32023,
                "name": "1 Louder Inc"
            },
            {
                "product_count": 0,
                "source": "AvantLink US",
                "_id": 40527,
                "name": "100 Percent Pure"
            },
            {
                "product_count": 6919,
                "source": "ShareASale",
                "_id": 1269,
                "name": "123 REFILLS"
            },
            {
                "product_count": 0,
                "source": "AvantLink US",
                "_id": 80554,
                "name": "123 Refills"
            },
            {
                "product_count": 1288,
                "source": "ShareASale",
                "_id": 1282,
                "name": "123Posters.com, Inc."
            },
    
            // ...
    
            {
                "product_count": 0,
                "source": "ShareASale",
                "_id": 17583,
                "name": "zorem corp"
            },
            {
                "product_count": 0,
                "source": "AvantLink US",
                "_id": 48637,
                "name": "ZOZI"
            },
            {
                "product_count": 0,
                "source": "ShareASale",
                "_id": 96436,
                "name": "Zulily"
            },
            {
                "product_count": 0,
                "source": "ShareASale",
                "_id": 75932,
                "name": "zulily"
            },
            {
                "product_count": 0,
                "source": "AvantLink US",
                "_id": 23729,
                "name": "Zupplements"
            }
        ],
        "version": "0.2",
        "length": 2110,
        "time": 23
    }
    

    POST https://api.datafeedr.com/merchants

    Get merchants of specific networks and limit the fields returned for each merchant.

    Request Properties

    Property Value Type Required
    fields Array of Merchant properties to include in the results. ["name","source","..."] No
    source_ids Array of network IDs to filter results by. [4,6,9,...] No

    Response Properties

    Property Type Description
    merchants array Array of Merchant Objects.
    length integer Number of merchants returned.
    status object Status Object.
    time integer Time spent processing the API request (in milliseconds).
    version string The current version of the API.

    Merchant Search

    The merchant_search endpoint returns Merchant related data for merchants that match your search.

    Search merchants

    Example Merchant Search Request

    curl --request POST \
      --url https://api.datafeedr.com/merchant_search \
      --data '{
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "query": [
            "name LIKE magazines|=books",
            "source LIKE coupons",
            "product_count > 5"
        ],
        "sort": ["+name", "-product_count"],
        "fields": ["name", "product_count", "source"],
        "limit": 10,
        "offset": 0
    }'
    
    <?php
    
    $url = "https://api.datafeedr.com/merchant_search";
    
    $data = json_encode([
        'aid'    => 'ACCESS_ID',
        'akey'   => 'ACCESS_KEY',
        'query'  => [
            'name LIKE magazines|=books',
            'source LIKE coupons',
            'product_count > 5'
        ],
        'sort'   => ['+name', '-product_count'],
        'fields' => ['name', 'product_count', 'source'],
        'limit'  => 10,
        'offset' => 0
    ]);
    
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
        CURLOPT_POSTFIELDS     => $data
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    print_r(json_decode($response));
    
    import requests
    
    url = "https://api.datafeedr.com/merchant_search"
    
    data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "query": [
            "name LIKE magazines|=books",
            "source LIKE coupons",
            "product_count > 5"
        ],
        "sort": ["+name", "-product_count"],
        "fields": ["name", "product_count", "source"],
        "limit": 10,
        "offset": 0
    }
    
    response = requests.post(url, json=data)
    print(response.json())
    
    var axios = require('axios');
    
    var url = "https://api.datafeedr.com/merchant_search";
    
    var data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "query": [
            "name LIKE magazines|=books",
            "source LIKE coupons",
            "product_count > 5"
        ],
        "sort": ["+name", "-product_count"],
        "fields": ["name", "product_count", "source"],
        "limit": 10,
        "offset": 0
    };
    
    axios.post(url, data).then(function (response) {
        console.log(response.data)
    });
    

    Example Merchant Search Response

    {
        "status": {
            "network_count": 173,
            "plan_id": 10300,
            "user_id": 190,
            "max_total": 10000,
            "merchant_count": 57971,
            "max_requests": 100000,
            "bill_day": 16,
            "request_count": 4368,
            "product_count": 456469693,
            "max_length": 100
        },
        "merchants": [
            {
                "product_count": 28,
                "source": "ShareASale Coupons/Deals",
                "name": "Best Deal Magazines"
            },
            {
                "product_count": 15,
                "source": "Commission Junction Coupons/Deals",
                "name": "www.iseeme.com Personalized Children's Books"
            },
            {
                "product_count": 9,
                "source": "Commission Junction Coupons/Deals",
                "name": "Indigo Books & Music"
            }
        ],
        "version": "0.2",
        "length": 3,
        "found_count": 3,
        "time": 2494,
        "networks": [
            {
                "group": "ShareASale",
                "name": "ShareASale Coupons/Deals",
                "merchant_count": 7219,
                "product_count": 19535,
                "_id": 8,
                "type": "coupons"
            },
            {
                "group": "Commission Junction",
                "name": "Commission Junction Coupons/Deals",
                "merchant_count": 2106,
                "product_count": 7176,
                "_id": 120,
                "type": "coupons"
            }
        ],
        "result_count": 3
    }
    

    POST https://api.datafeedr.com/merchant_search

    Search for merchants matching specific criteria.

    See a list of queryable Merchant fields.

    Request Properties

    Property Value Type Required
    query Query Object. object Yes
    sort An array of fields to sort results by. Each field should be preceded by + for ascending or - for descending. ["+name","..."] No
    fields Array of Merchant properties to include in the results. ["name","source","..."] No
    limit Number of results to return. integer No
    offset Offset (for paginating through the results). integer No

    Response Properties

    Property Type Description
    merchants array Array of Merchant Objects.
    length integer Number of merchants returned.
    status object Status Object.
    time integer Time spent processing the API request (in milliseconds).
    version string The current version of the API.

    Products

    The search endpoint returns Product data matching your search.

    Product properties

    The Product Object contains information about a single Product.

    Mandatory Product Object Properties

    The following properties are returned in every Product Object.

    Property Type Description
    _id integer Product ID.
    currency string Three letter ISO-4217 currency code.
    finalprice integer Lowest price of product (either sale or regular price) in least valued currency units (e.g cents).
    merchant_id integer Merchant ID.
    merchant string Merchant name.
    name string Product name.
    onsale integer Indicates if product is on sale. 0=No, 1=Yes.
    price integer Price of product in least valued currency units (e.g cents).
    salediscount integer The percentage that price has been discounted in whole numbers.
    source_id integer Affiliate network ID.
    source string Affiliate network name.
    time_updated timestamp Timestamp of the last time product was updated in API.
    url string Affiliate URL.

    Common Product Object Properties

    The following properties are often (but not always) returned in the Product Object.

    Property Type Description
    brand string Product brand.
    category string Category field(s) product is in.
    color string Product color.
    description string Product description.
    direct_url string Direct URL to product page on merchant's site (This is NOT an affiliate link and will NOT generate a commission).
    ean string Product EAN.
    gender string Product gender data.
    htmldescription string Product description in HTML.
    image string Product image URL.
    isbn string Product ISBN.
    ref_url string Affiliate URL with sub ID parameter
    saleprice integer Sale price of product in least valued currency units (e.g cents).
    size string Product size data.
    sku string Product SKU.
    tags string Product tags separated by semi-colons.
    thumbnail string Product image thumbnail.
    upc string Product UPC.

    Coupon Specific Properties

    Coupons & Deals are returned as Product Objects and may contain the following properties depending on the type of coupon or deal being offered.

    Property Type Description
    offerbegin timestamp The date & time the offer begins.
    offerend timestamp The date & time the offer ends.
    offercode string Coupon or discount code required to get discount.

    Search products

    Example Product Search Request

    curl --request POST \
      --url https://api.datafeedr.com/search \
      --data '{
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "query": [
            "any LIKE climbing women|woman",
            "name LIKE harness",
            "source LIKE avantlink|linkshare",
            "price > 5000",
            "price < 15000",
            "merchant !LIKE Jet|Groupon",
            "onsale = 1",
            "image !EMPTY",
            "currency = USD",
            "brand LIKE mammut|\"black diamond\"|petzl",
            "salediscount >= 15"
        ],
        "fields": ["name", "price", "finalprice", "merchant", "source", "brand", "salediscount", "url", "currency", "image"],
        "price_groups": 3,
        "limit": 10,
        "offset": 0,
        "sort": ["+finalprice"],
        "exclude_duplicates": "merchant_id name|image",
        "string_ids": false
    }'
    
    <?php
    
    $url = "https://api.datafeedr.com/search";
    
    $data = json_encode([
        'aid'    => 'ACCESS_ID',
        'akey'   => 'ACCESS_KEY',
        'query'              => [
            'any LIKE climbing women|woman',
            'name LIKE harness',
            'source LIKE avantlink|linkshare',
            'price > 5000',
            'price < 15000',
            'merchant !LIKE Jet|Groupon',
            'onsale = 1',
            'image !EMPTY',
            'currency = USD',
            'brand LIKE mammut|\'black diamond\'|petzl',
            'salediscount >= 15'
        ],
        'fields'             => [
            'name',
            'price',
            'finalprice',
            'merchant',
            'source',
            'brand',
            'salediscount',
            'url',
            'currency',
            'image'
        ],
        'price_groups'       => 3,
        'limit'              => 10,
        'offset'             => 0,
        'sort'               => ['+finalprice'],
        'exclude_duplicates' => 'merchant_id name|image',
        'string_ids'         => false
    ]);
    
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
        CURLOPT_POSTFIELDS     => $data
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    print_r(json_decode($response));
    
    import requests
    
    url = "https://api.datafeedr.com/search"
    
    data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "query": [
            "any LIKE climbing women|woman",
            "name LIKE harness",
            "source LIKE avantlink|linkshare",
            "price > 5000",
            "price < 15000",
            "merchant !LIKE Jet|Groupon",
            "onsale = 1",
            "image !EMPTY",
            "currency = USD",
            "brand LIKE mammut|'black diamond'|petzl",
            "salediscount >= 15"
        ],
        "fields": [
            "name",
            "price",
            "finalprice",
            "merchant",
            "source",
            "brand",
            "salediscount",
            "url",
            "currency",
            "image"
        ],
        "price_groups": 3,
        "limit": 10,
        "offset": 0,
        "sort": ["+finalprice"],
        "exclude_duplicates": "merchant_id name|image",
        "string_ids": False
    }
    
    response = requests.post(url, json=data)
    print(response.json())
    
    var axios = require('axios');
    
    var url = "https://api.datafeedr.com/search";
    
    var data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "query": [
            "any LIKE climbing women|woman",
            "name LIKE harness",
            "source LIKE avantlink|linkshare",
            "price > 5000",
            "price < 15000",
            "merchant !LIKE Jet|Groupon",
            "onsale = 1",
            "image !EMPTY",
            "currency = USD",
            "brand LIKE mammut|'black diamond'|petzl",
            "salediscount >= 15"
        ],
        "fields": [
            "name",
            "price",
            "finalprice",
            "merchant",
            "source",
            "brand",
            "salediscount",
            "url",
            "currency",
            "image"
        ],
        "price_groups": 3,
        "limit": 10,
        "offset": 0,
        "sort": ["+finalprice"],
        "exclude_duplicates": "merchant_id name|image",
        "string_ids": false
    };
    
    axios.post(url, data).then(function (response) {
        console.log(response.data)
    });
    

    Example Product Search Response

    {
        "status": {
            "network_count": 173,
            "plan_id": 10300,
            "user_id": 190,
            "max_total": 10000,
            "merchant_count": 57971,
            "max_requests": 100000,
            "bill_day": 16,
            "request_count": 4374,
            "product_count": 456437575,
            "max_length": 100
        },
        "merchants": [
            {
                "product_count": 5,
                "merchant": "Backcountry.com",
                "merchant_id": 33092,
                "source_id": 126,
                "source": "AvantLink US"
            },
            {
                "product_count": 2,
                "merchant": "Eastern Mountain Sports",
                "merchant_id": 21734,
                "source_id": 126,
                "source": "AvantLink US"
            },
            {
                "product_count": 5,
                "merchant": "Outdoorplay",
                "merchant_id": 61261,
                "source_id": 126,
                "source": "AvantLink US"
            },
            {
                "product_count": 1,
                "merchant": "Sunny Sports",
                "merchant_id": 67698,
                "source_id": 126,
                "source": "AvantLink US"
            },
            {
                "product_count": 2,
                "merchant": "Eastern Mountain Sports",
                "merchant_id": 81397,
                "source_id": 4,
                "source": "LinkShare US"
            },
            {
                "product_count": 2,
                "merchant": "Mountain Steals",
                "merchant_id": 78391,
                "source_id": 126,
                "source": "AvantLink US"
            },
            {
                "product_count": 2,
                "merchant": "Climb High",
                "merchant_id": 28506,
                "source_id": 126,
                "source": "AvantLink US"
            },
            {
                "product_count": 6,
                "merchant": "REI.com",
                "merchant_id": 21757,
                "source_id": 126,
                "source": "AvantLink US"
            }
        ],
        "version": "0.2",
        "total_found": 32,
        "length": 10,
        "found_count": 32,
        "products": [
            {
                "merchant": "REI.com",
                "name": "Black Diamond Women's Primrose Climbing Harness",
                "source": "AvantLink US",
                "url": "http://classic.avantlink.com/click.php?p=61371&pw=@@@&pt=3&pri=634361&tt=df",
                "image": "http://i1.avlws.com/115/l634361.png",
                "finalprice": 4373,
                "price": 5495,
                "currency": "USD",
                "salediscount": 20,
                "_id": 2175702112172441,
                "brand": "Black Diamond"
            },
            {
                "merchant": "REI.com",
                "name": "Mammut Women's Ophira 3 Slide Climbing Harness",
                "currency": "USD",
                "url": "http://classic.avantlink.com/click.php?p=61371&pw=@@@&pt=3&pri=580568&tt=df",
                "brand": "Mammut",
                "finalprice": 4393,
                "source": "AvantLink US",
                "image": "http://i1.avlws.com/115/l580568.png",
                "salediscount": 20,
                "_id": 2175700242158567,
                "price": 5495
            },
            {
                "merchant": "Backcountry.com",
                "name": "Black Diamond Primrose Speed Adjust Harness - Women's",
                "currency": "USD",
                "url": "http://classic.avantlink.com/click.php?p=86259&pw=@@@&pt=3&pri=1210518&tt=df",
                "image": "http://i2.avlws.com/52/l1210518.png",
                "finalprice": 4396,
                "price": 5495,
                "source": "AvantLink US",
                "salediscount": 20,
                "_id": 3309200309657707,
                "brand": "Black Diamond"
            },
            {
                "merchant": "Sunny Sports",
                "name": "Mammut Togira Slide Climbing Harness for Women",
                "source": "AvantLink US",
                "url": "http://classic.avantlink.com/click.php?p=234563&pw=@@@&pt=3&pri=7979&tt=df",
                "image": "http://www.sunnysports.com/image/product/large/MMTTSW.jpg",
                "brand": "Mammut",
                "finalprice": 4495,
                "currency": "USD",
                "salediscount": 31,
                "_id": 6769801092426801,
                "price": 6495
            },
            {
                "merchant": "Eastern Mountain Sports",
                "name": "Petzl Women's Selena Climbing Harness",
                "source": "LinkShare US",
                "url": "http://click.linksynergy.com/link?id=@@@&offerid=303281.7092379742&type=15&murl=http%3A%2F%2Fwww.ems.com%2Fpetzl-womens-selena-climbing-harness%2F20188100021.html",
                "image": "http://www.ems.com/dw/image/v2/AAQU_PRD/on/demandware.static/-/Sites-vestis-master-catalog/default/dwcf89725c/product/images/1313/560/1313560/1313560_607_main.jpg",
                "brand": "PETZL",
                "finalprice": 4547,
                "currency": "USD",
                "salediscount": 30,
                "_id": 8139700164302743,
                "price": 6495
            },
            {
                "merchant": "Eastern Mountain Sports",
                "name": "Petzl Women's Selena Climbing Harness",
                "currency": "USD",
                "url": "http://classic.avantlink.com/click.php?p=60837&pw=@@@&pt=3&pri=561791&tt=df",
                "image": "http://i1.avlws.com/843/l561791.png",
                "brand": "Petzl",
                "finalprice": 4547,
                "source": "AvantLink US",
                "salediscount": 30,
                "_id": 2173400004351340,
                "price": 6495
            },
            {
                "merchant": "REI.com",
                "name": "Petzl Women's Selena Climbing Harness",
                "currency": "USD",
                "url": "http://classic.avantlink.com/click.php?p=61371&pw=@@@&pt=3&pri=580573&tt=df",
                "brand": "Petzl",
                "finalprice": 4793,
                "source": "AvantLink US",
                "image": "http://i1.avlws.com/115/l580573.png",
                "salediscount": 26,
                "_id": 2175700244491303,
                "price": 6495
            },
            {
                "merchant": "Outdoorplay",
                "name": "Black Diamond Women's Solution Climbing Harness",
                "currency": "USD",
                "url": "http://classic.avantlink.com/click.php?p=199519&pw=@@@&pt=3&pri=60466&tt=df",
                "price": 6995,
                "finalprice": 4897,
                "source": "AvantLink US",
                "image": "http://i2.avlws.com/3229/l60466.png",
                "salediscount": 30,
                "_id": 6126100196451361,
                "brand": "Black Diamond"
            },
            {
                "merchant": "Outdoorplay",
                "name": "Petzl Women's Selena Rock Climbing Harness",
                "currency": "USD",
                "url": "http://classic.avantlink.com/click.php?p=199519&pw=@@@&pt=3&pri=60488&tt=df",
                "price": 6495,
                "finalprice": 5196,
                "source": "AvantLink US",
                "image": "http://i2.avlws.com/3229/l60488.png",
                "salediscount": 20,
                "_id": 6126100195377743,
                "brand": "Petzl"
            },
            {
                "merchant": "Eastern Mountain Sports",
                "name": "Petzl Women's Luna Climbing Harness",
                "source": "LinkShare US",
                "url": "http://click.linksynergy.com/link?id=@@@&offerid=303281.7092379756&type=15&murl=http%3A%2F%2Fwww.ems.com%2Fpetzl-womens-luna-climbing-harness%2F20188300018.html",
                "image": "http://www.ems.com/dw/image/v2/AAQU_PRD/on/demandware.static/-/Sites-vestis-master-catalog/default/dw039f2a0c/product/images/1313/562/1313562/1313562_407_main.jpg",
                "brand": "PETZL",
                "finalprice": 5247,
                "currency": "USD",
                "salediscount": 30,
                "_id": 8139700164302780,
                "price": 7495
            }
        ],
        "price_groups": [
            {
                "product_count": 15,
                "max": 7827,
                "min": 5495
            },
            {
                "product_count": 8,
                "max": 10160,
                "min": 7828
            },
            {
                "product_count": 2,
                "max": 12495,
                "min": 10161
            }
        ],
        "time": 4199,
        "networks": [
            {
                "product_count": 2,
                "source": "LinkShare US",
                "group": "LinkShare",
                "source_id": 4,
                "type": "products"
            },
            {
                "product_count": 23,
                "source": "AvantLink US",
                "group": "AvantLink",
                "source_id": 126,
                "type": "products"
            }
        ],
        "duplicates_count": 7,
        "result_count": 25
    }
    

    POST https://api.datafeedr.com/search

    Search for products matching specific criteria.

    See a list of queryable Product fields.

    Request Properties

    Property Value Type Required
    query Query Object. object Yes
    sort An array of fields to sort results by. Each field should be preceded by + for ascending or - for descending. Default: relevance ["+price","..."] No
    fields Array of Product properties to include in the results. Default: all. ["name","url","..."] No
    limit Number of results to return. Default: 20 integer No
    offset Offset (for paginating through the results). Default: 0 integer No
    string_ids Encode product ids as strings. Default: false boolean No
    price_groups Number of price groups. Default: 0 integer No
    exclude_duplicates Combination of fields which should be checked for duplicate values, optionally contaning the OR | operator. For example, name image | price excludes products that have the same "name" and either "price" or "image". string No

    Response Properties

    Property Type Description
    products array Array of Product Objects.
    networks array Array of Network Objects with product_count property updated to reflect the number of products included from this network in the search results.
    merchants array Array of Merchant Objects with product_count property updated to reflect the number of products included from this merchant in the search results.
    price_groups array Array of PriceGroup Objects. (Only returned if price_groups is set in Request).
    length integer Number of products returned.
    found_count integer Total number of products matching the query.
    result_count integer Number of products that can be retrieved from the server.
    duplicates_count integer Number of products excluded due to the exclude_duplicates filter.
    status object Status Object.
    time integer Time spent processing the API request (in milliseconds).
    version string The current version of the API.

    Price Groups

    A PriceGroup Object will be returned if price_groups is set in the Request. If price_groups is set to 3, then an array of 3 PriceGroup Objects will be returned. A PriceGroup's min and max values are calculated by equally distributing the range of prices (lowest to highest) of the returned results into 3 groups.

    Each PriceGroup will contain the minimum price and maximum price in the group and how many products fall between those 2 prices.

    A PriceGroup Object contains the following properties.

    Property Type Description
    min integer Minimum price in this group.
    max integer Maximum price in this group.
    count integer Number of products in this group.

    Search coupons

    Example Coupon Search Request

    curl --request POST \
      --url https://api.datafeedr.com/search \
      --data '{
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "query": [
            "source LIKE coupons",
            "merchant LIKE mountain|outdoor|rei|sports",
            "offerbegin >= 2018-01-01 00:00:00",
            "offerend < 2018-02-01 00:00:00"
        ],
        "fields": ["name", "offerbegin", "offerend", "offercode", "source", "brand", "url", "merchant"],
        "limit": 10
    }'
    
    <?php
    
    $url = "https://api.datafeedr.com/search";
    
    $data = json_encode([
        'aid'    => 'ACCESS_ID',
        'akey'   => 'ACCESS_KEY',
        'query'  => [
            'source LIKE coupons',
            'merchant LIKE mountain|outdoor|rei|sports',
            'offerbegin >= 2018-01-01 00:00:00',
            'offerend < 2018-02-01 00:00:00'
        ],
        'fields' => ['name', 'offerbegin', 'offerend', 'offercode', 'source', 'brand', 'url', 'merchant'],
        'limit'  => 10
    ]);
    
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
        CURLOPT_POSTFIELDS     => $data
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    print_r(json_decode($response));
    
    import requests
    
    url = "https://api.datafeedr.com/search"
    
    data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "query": [
            "source LIKE coupons",
            "merchant LIKE mountain|outdoor|rei|sports",
            "offerbegin >= 2018-01-01 00:00:00",
            "offerend < 2018-02-01 00:00:00"
        ],
        "fields": [
            "name",
            "offerbegin",
            "offerend",
            "offercode",
            "source",
            "brand",
            "url",
            "merchant"
          ],
        "limit": 10
    }
    
    response = requests.post(url, json=data)
    print(response.json())
    
    var axios = require('axios');
    
    var url = "https://api.datafeedr.com/search";
    
    var data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "query": [
            "source LIKE coupons",
            "merchant LIKE mountain|outdoor|rei|sports",
            "offerbegin >= 2018-01-01 00:00:00",
            "offerend < 2018-02-01 00:00:00"
        ],
        "fields": [
            "name",
            "offerbegin",
            "offerend",
            "offercode",
            "source",
            "brand",
            "url",
            "merchant"
          ],
        "limit": 10
    };
    
    axios.post(url, data).then(function (response) {
        console.log(response.data)
    });
    

    Example Coupon Search Response

    {
        "status": {
            "network_count": 173,
            "plan_id": 10300,
            "user_id": 190,
            "max_total": 10000,
            "merchant_count": 57971,
            "max_requests": 100000,
            "bill_day": 16,
            "request_count": 4380,
            "product_count": 456437575,
            "max_length": 100
        },
        "merchants": [
            {
                "product_count": 3,
                "merchant": "Eastern Mountain Sports",
                "merchant_id": 3591,
                "source_id": 8,
                "source": "ShareASale Coupons/Deals"
            },
            {
                "product_count": 2,
                "merchant": "MPG Sport",
                "merchant_id": 11014,
                "source_id": 8,
                "source": "ShareASale Coupons/Deals"
            },
            {
                "product_count": 4,
                "merchant": "Live Well Sports",
                "merchant_id": 34957,
                "source_id": 8,
                "source": "ShareASale Coupons/Deals"
            },
            {
                "product_count": 4,
                "merchant": "Mountain Hardwear",
                "merchant_id": 35721,
                "source_id": 120,
                "source": "Commission Junction Coupons/Deals"
            },
            {
                "product_count": 2,
                "merchant": "Steiner Sports",
                "merchant_id": 44795,
                "source_id": 8,
                "source": "ShareASale Coupons/Deals"
            },
            {
                "product_count": 1,
                "merchant": "Outdoor Tech",
                "merchant_id": 51686,
                "source_id": 9,
                "source": "PepperJam Coupons/Deals"
            },
            {
                "product_count": 1,
                "merchant": "All Outdoor",
                "merchant_id": 75030,
                "source_id": 1362,
                "source": "Awin UK Coupons/Deals"
            },
            {
                "product_count": 21,
                "merchant": "Academy Sports + Outdoor Affiliate",
                "merchant_id": 79604,
                "source_id": 120,
                "source": "Commission Junction Coupons/Deals"
            },
            {
                "product_count": 3,
                "merchant": "Road Runner Sports",
                "merchant_id": 94225,
                "source_id": 127,
                "source": "AvantLink US Coupons/Deals"
            }
        ],
        "version": "0.2",
        "total_found": 41,
        "length": 10,
        "found_count": 41,
        "products": [
            {
                "merchant": "Eastern Mountain Sports",
                "name": "Merchant 17328 - Eastern Mountain Sports - 30% off EMS Men's & Women's Techwick Base Layer! Ends 1/29 - Shop Now and Save!",
                "url": "http://www.shareasale.com/u.cfm?d=476153&m=17328&u=@@@",
                "source": "ShareASale Coupons/Deals",
                "offerbegin": "2018-01-27 00:00:00",
                "offerend": "2018-01-29 00:00:00",
                "_id": 359101729713890
            },
            {
                "merchant": "Eastern Mountain Sports",
                "name": "Merchant 17328 - Eastern Mountain Sports - Shop These Amazing Techwick Sales at EMS! Ends 1/29 - Shop Now and Save!",
                "url": "http://www.shareasale.com/u.cfm?d=476152&m=17328&u=@@@",
                "source": "ShareASale Coupons/Deals",
                "offerbegin": "2018-01-27 00:00:00",
                "offerend": "2018-01-29 00:00:00",
                "_id": 359102103894914
            },
            {
                "merchant": "Eastern Mountain Sports",
                "name": "Merchant 17328 - Eastern Mountain Sports - Up to 50% off EMS Men's & Women's Techwick Dual Thermo 1/4 Zip! Ends 1/29 - Shop Now and Save at EMS!",
                "url": "http://www.shareasale.com/u.cfm?d=476154&m=17328&u=@@@",
                "source": "ShareASale Coupons/Deals",
                "offerbegin": "2018-01-27 00:00:00",
                "offerend": "2018-01-29 00:00:00",
                "_id": 359102105856732
            },
            {
                "merchant": "MPG Sport",
                "name": "Merchant 65207 - MPG Sport - Sale Extended! Up To 72% Off Select Styles + free standard ground US shipping on all orders over $99. Valid 1/14/18-1/29/18",
                "url": "http://www.shareasale.com/u.cfm?d=474382&m=65207&u=@@@",
                "source": "ShareASale Coupons/Deals",
                "offerbegin": "2018-01-14 00:00:00",
                "offerend": "2018-01-29 00:00:00",
                "_id": 1101400170385066
            },
            {
                "merchant": "MPG Sport",
                "name": "Merchant 65207 - MPG Sport - Sale Extended! Up To 76% Off Select Styles + free standard ground US shipping on all orders over $99. Valid 1/14/18-1/29/18",
                "url": "http://www.shareasale.com/u.cfm?d=474383&m=65207&u=@@@",
                "source": "ShareASale Coupons/Deals",
                "offerbegin": "2018-01-14 00:00:00",
                "offerend": "2018-01-29 00:00:00",
                "_id": 1101400212035843
            },
            {
                "offercode": "NEWYEAR5",
                "merchant": "Live Well Sports",
                "name": "Merchant 41405 - Live Well Sports - New Year Sale: Save $5 off $100 at Live Well Sports and Live Well Stores",
                "url": "http://www.shareasale.com/u.cfm?d=472051&m=41405&u=@@@",
                "source": "ShareASale Coupons/Deals",
                "offerbegin": "2018-01-04 00:00:00",
                "offerend": "2018-01-31 00:00:00",
                "_id": 3495700341482322
            },
            {
                "offercode": "NEWYEAR10",
                "merchant": "Live Well Sports",
                "name": "Merchant 41405 - Live Well Sports - New Year Sale: Save $20 off $400 at Live Well Sports and Live Well Stores",
                "url": "http://www.shareasale.com/u.cfm?d=472053&m=41405&u=@@@",
                "source": "ShareASale Coupons/Deals",
                "offerbegin": "2018-01-04 00:00:00",
                "offerend": "2018-01-31 00:00:00",
                "_id": 3495700430050448
            },
            {
                "offercode": "NEWYEAR20",
                "merchant": "Live Well Sports",
                "name": "Merchant 41405 - Live Well Sports - New Year Sale: Save $10 off $200 at Live Well Sports and Live Well Stores",
                "url": "http://www.shareasale.com/u.cfm?d=472052&m=41405&u=@@@",
                "source": "ShareASale Coupons/Deals",
                "offerbegin": "2018-01-04 00:00:00",
                "offerend": "2018-01-31 00:00:00",
                "_id": 3495700910908973
            },
            {
                "offercode": "NEWYEARBIG5",
                "merchant": "Live Well Sports",
                "name": "Merchant 41405 - Live Well Sports - New Year Sale: Save 5% off $1,000 or more at Live Well Sports and Live Well Stores",
                "url": "http://www.shareasale.com/u.cfm?d=472054&m=41405&u=@@@",
                "source": "ShareASale Coupons/Deals",
                "offerbegin": "2018-01-04 00:00:00",
                "offerend": "2018-01-31 00:00:00",
                "_id": 3495701598840274
            },
            {
                "merchant": "Mountain Hardwear",
                "name": "Affiliate Exclusive! 60% Off Select Styles with promo code MHWWINTER60 at MountainHardwear.com! Valid 1/17-1/30.",
                "url": "http://www.anrdoezrs.net/click-@@@-13209172",
                "source": "Commission Junction Coupons/Deals",
                "offerbegin": "2018-01-16 21:00:00",
                "offerend": "2018-01-30 23:45:00",
                "_id": 3572100038651006
            }
        ],
        "time": 579,
        "networks": [
            {
                "product_count": 11,
                "source": "ShareASale Coupons/Deals",
                "group": "ShareASale",
                "source_id": 8,
                "type": "coupons"
            },
            {
                "product_count": 25,
                "source": "Commission Junction Coupons/Deals",
                "group": "Commission Junction",
                "source_id": 120,
                "type": "coupons"
            },
            {
                "product_count": 1,
                "source": "PepperJam Coupons/Deals",
                "group": "PepperJam",
                "source_id": 9,
                "type": "coupons"
            },
            {
                "product_count": 1,
                "source": "Awin UK Coupons/Deals",
                "group": "AffiliateWindow",
                "source_id": 1362,
                "type": "coupons"
            },
            {
                "product_count": 3,
                "source": "AvantLink US Coupons/Deals",
                "group": "AvantLink",
                "source_id": 127,
                "type": "coupons"
            }
        ],
        "result_count": 41
    }
    

    POST https://api.datafeedr.com/search

    Search for coupons matching specific criteria.

    This calls the same search endpoint as a product search. It just queries different fields so that only coupons and deals are returned and regular products are ignored.

    See a list of queryable Product fields.

    Request Properties

    Property Value Type Required
    query Query Object. object Yes
    sort An array of fields to sort results by. Each field should be preceded by + for ascending or - for descending. Default: relevance ["+price","..."] No
    fields Array of Product properties to include in the results. Default: all. ["name","url","..."] No
    limit Number of results to return. Default: 20 integer No
    offset Offset (for paginating through the results). Default: 0 integer No
    string_ids Encode product ids as strings. Default: false boolean No
    price_groups Number of price groups. Default: 0 integer No
    exclude_duplicates Combination of fields which should be checked for duplicate values, optionally contaning the OR | operator. For example, name image | price excludes products that have the same "name" and either "price" or "image". string No

    Response Properties

    Property Type Description
    products array Array of Product Objects.
    networks array Array of Network Objects with product_count property updated to reflect the number of products included from this network in the search results.
    merchants array Array of Merchant Objects with product_count property updated to reflect the number of products included from this merchant in the search results.
    length integer Number of products returned.
    found_count integer Total number of products matching the query.
    result_count integer Number of products that can be retrieved from the server.
    duplicates_count integer Number of products excluded due to the exclude_duplicates filter.
    status object Status Object.
    time integer Time spent processing the API request (in milliseconds).
    version string The current version of the API.

    Amazon Item Search

    The amazon_item_search endpoint returns product data from Amazon matching your search.

    Amazon Product properties

    The Amazon Product Object contains information about a single Product.

    Amazon Product Object Properties

    The following properties can be found in the Amazon Product Object.

    Property Type Description
    _id integer Product ID (different than ASIN).
    asin string Amazon Standard Identification Number
    brand string Product brand.
    category string Category field(s) product is in.
    currency string Three letter ISO-4217 currency code.
    description string Product description.
    finalprice integer Lowest price of product (either sale or regular price) in least valued currency units (e.g cents).
    image string Product image URL.
    merchant_id integer Merchant ID.
    merchant string Merchant name.
    model string Model number.
    name string Product name.
    onsale integer Indicates if product is on sale. 0=No, 1=Yes.
    price integer Price of product in least valued currency units (e.g cents).
    salediscount integer The percentage that price has been discounted in whole numbers.
    source_id integer Affiliate network ID.
    source string Affiliate network name.
    thumbnail string Product image thumbnail.
    url string Affiliate URL.

    Search Amazon products

    Example Amazon Product Search Request

    curl --request POST \
      --url https://api.datafeedr.com/amazon_item_search \
      --data '{
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "AssociateTag": "AMAZON_TRACKING_ID",
        "AWSAccessKeyId": "AMAZON_ACCESS_KEY",
        "AWSSecretKey": "AMAZON_SECRET_KEY",
        "SearchIndex": "SportingGoods",
        "Keywords": "osprey farpoint 55"
    }'
    
    <?php
    
    $url = "https://api.datafeedr.com/amazon_item_search";
    
    $data = json_encode( [
        'aid'            => 'ACCESS_ID',
        'akey'           => 'ACCESS_KEY',
        'AssociateTag'   => 'AMAZON_TRACKING_ID',
        'AWSAccessKeyId' => 'AMAZON_ACCESS_KEY',
        'AWSSecretKey'   => 'AMAZON_SECRET_KEY',
        'SearchIndex'    => 'SportingGoods',
        'Keywords'       => 'osprey farpoint 55'
    ] );
    
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
        CURLOPT_POSTFIELDS     => $data
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    print_r(json_decode($response));
    
    import requests
    
    url = "https://api.datafeedr.com/amazon_item_search"
    
    data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "AssociateTag": "AMAZON_TRACKING_ID",
        "AWSAccessKeyId": "AMAZON_ACCESS_KEY",
        "AWSSecretKey": "AMAZON_SECRET_KEY",
        "SearchIndex": "SportingGoods",
        "Keywords": "osprey farpoint 55"
    }
    
    response = requests.post(url, json=data)
    print(response.json())
    
    var axios = require('axios');
    
    var url = "https://api.datafeedr.com/amazon_item_search";
    
    var data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "AssociateTag": "AMAZON_TRACKING_ID",
        "AWSAccessKeyId": "AMAZON_ACCESS_KEY",
        "AWSSecretKey": "AMAZON_SECRET_KEY",
        "SearchIndex": "SportingGoods",
        "Keywords": "osprey farpoint 55"
    };
    
    axios.post(url, data).then(function (response) {
        console.log(response.data)
    });
    

    Example Amazon Product Search Response

    {
        "total_found": 19,
        "status": {
            "network_count": 173,
            "plan_id": 10300,
            "user_id": 190,
            "max_total": 10000,
            "merchant_count": 58256,
            "max_requests": 100000,
            "bill_day": 16,
            "request_count": 9125,
            "product_count": 441097498,
            "max_length": 100
        },
        "found_count": 19,
        "products": [
            {
                "category": "Clothing, Shoes & Jewelry > Departments > Men > Shops; Clothing, Shoes & Jewelry > Departments > Luggage & Travel Gear > Backpacks > Casual Daypacks",
                "asin": "B019UTHYNC",
                "merchant_id": 7777,
                "name": "Osprey Farpoint 55 Travel Backpack",
                "merchant": "Amazon United States",
                "suid": "B019UTHYNC",
                "url": "https://www.amazon.com/Osprey-Farpoint-55-Travel-Backpack/dp/B019UTHYNC?SubscriptionId=AKIAJLHNSP4DNCDHN5HQ&tag=@@@&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B019UTHYNC",
                "price": 16995,
                "brand": "Osprey",
                "finalprice": 16995,
                "_id": 777758772250847,
                "currency": "USD",
                "source": "Amazon United States",
                "image": "https://images-na.ssl-images-amazon.com/images/I/41i5ig38EJL.jpg",
                "salediscount": 0,
                "onsale": 0,
                "model": "10000291-P",
                "source_id": 7777,
                "thumbnail": "https://images-na.ssl-images-amazon.com/images/I/41i5ig38EJL._SL160_.jpg",
                "description": "Osprey's Far point 55 is the perfect companion for a long weekend. Feel free to add an extra sweater and a pair of waterproof boots; this pack is designed to handle loads up to 50 pounds. The Light Wire frame suspension transfers the load from harness to hip belt. A mesh back panel improves ventilation and the mesh on the harness and hip belt reduces chafing under load. The entire suspension stows away under a zippered panel creating a sleek silhouette for transport. Unzip the lockable sliders to access the main compartment. Inside there's a mesh pocket for small items. Dual compression straps keep cargo from shifting during transit. Outside you'll find a zippered front panel slash pocket to keep you organized and sewn attachment points to lash on extra gear. No matter how much you choose to carry, dual compression straps stabilize the load. The main Far point 55 pack comes with a detachable Far point daypack to carry the essential for a hike in the hills or an excursion downtown."
            },
            {
                "category": "Clothing, Shoes & Jewelry > Departments > Men > Shops; Clothing, Shoes & Jewelry > Departments > Luggage & Travel Gear > Backpacks > Casual Daypacks",
                "asin": "B00XN1T1NK",
                "merchant_id": 7777,
                "name": "Osprey Men's Atmos 50 AG Backpacks",
                "merchant": "Amazon United States",
                "suid": "B00XN1T1NK",
                "url": "https://www.amazon.com/Osprey-Mens-Atmos-50-Backpacks/dp/B00XN1T1NK?SubscriptionId=AKIAJLHNSP4DNCDHN5HQ&tag=@@@&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B00XN1T1NK",
                "price": 13800,
                "brand": "Osprey",
                "finalprice": 13800,
                "_id": 777753704914444,
                "currency": "USD",
                "source": "Amazon United States",
                "image": "https://images-na.ssl-images-amazon.com/images/I/41mmJZPmFkL.jpg",
                "salediscount": 0,
                "onsale": 0,
                "model": "015250-705-3-LG-saParent",
                "source_id": 7777,
                "thumbnail": "https://images-na.ssl-images-amazon.com/images/I/41mmJZPmFkL._SL160_.jpg",
                "description": "FEATURES of the Osprey Atmos 50 AG Pack Floating, extendable top lid can be removed to save weight FlapJacket provides compression and protection for the main pack when the lid is removed Dual ice tool loops Removable sleeping pad straps provide secure gear attachment when needed Dual zippered front panel pockets provide quick access storage Adjustable harness allows you to easily adjust the torso length Compression straps stabilize pack loads Stow-on-the-Go trekking pole attachment makes for quick and easy storage Fit-on-the-Fly hipbelt extends hipbelt by 5 inches, giving you a custom fit Suspended mesh hip wrap for load transfer and comfort Anti-gravity backpanel made of lightweight mesh provides comfort and ventilation Internal compression Internal reservoir sleeve"
            },
            {
                "category": "Sports & Outdoors > Outdoor Recreation Features; Clothing, Shoes & Jewelry > Departments > Luggage & Travel Gear > Gym Bags",
                "asin": "B071YK4317",
                "merchant_id": 7777,
                "name": "OSPREY Porter 46 Travel",
                "merchant": "Amazon United States",
                "suid": "B071YK4317",
                "url": "https://www.amazon.com/Osprey-10001115-OSPREY-Porter-Travel/dp/B071YK4317?SubscriptionId=AKIAJLHNSP4DNCDHN5HQ&tag=@@@&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B071YK4317",
                "price": 13000,
                "brand": "Osprey",
                "finalprice": 13000,
                "_id": 777764025911987,
                "currency": "USD",
                "source": "Amazon United States",
                "image": "https://images-na.ssl-images-amazon.com/images/I/41xWr+OiEeL.jpg",
                "salediscount": 0,
                "onsale": 0,
                "model": "10001115",
                "source_id": 7777,
                "thumbnail": "https://images-na.ssl-images-amazon.com/images/I/41xWr+OiEeL._SL160_.jpg",
                "description": "With padded sidewalls, convenient organization and a substantial suspension for backpack-style carry that disappears when checking bags, the Porter Series has set the standard for deluxe duffels. This season brings a relocated and dedicated zippered laptop and tablet pocket-and functional storage options for items both big and small-with multiple access points. When a duffel isn't enough and backpacking bags are too much, the Porter is the answer."
            },
            {
                "category": "Sports & Outdoors > Categories > Outdoor Recreation > Camping & Hiking > Backpacks & Bags; Sports & Outdoors > Outdoor Recreation Features",
                "asin": "B019UTHQEY",
                "merchant_id": 7777,
                "name": "Osprey Farpoint 40 Travel Backpack",
                "merchant": "Amazon United States",
                "suid": "B019UTHQEY",
                "url": "https://www.amazon.com/Osprey-Farpoint-40-Travel-Backpack/dp/B019UTHQEY?SubscriptionId=AKIAJLHNSP4DNCDHN5HQ&tag=@@@&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B019UTHQEY",
                "price": 14584,
                "brand": "Osprey",
                "finalprice": 14584,
                "_id": 777701271729346,
                "currency": "USD",
                "source": "Amazon United States",
                "image": "https://images-na.ssl-images-amazon.com/images/I/411shEqQcWL.jpg",
                "salediscount": 0,
                "onsale": 0,
                "model": "10000297-P",
                "source_id": 7777,
                "thumbnail": "https://images-na.ssl-images-amazon.com/images/I/411shEqQcWL._SL160_.jpg",
                "description": "Osprey's far point 40 is perfect for a weekend getaway in the city or the wilderness. The lightwood frame suspension transfers the load from harness to hip belt. A mesh back panel improves ventilation and the mesh on the harness and hip belt reduces chafing under load. The entire suspension stows away under a zippered panel creating a sleek silhouette for transport. Unzip the lockable sliders to access the main compartment. Inside there's a mesh pocket for small items. Dual compression straps keep cargo from shifting during Transit. Outside you'll find a zippered front panel slash pocket to keep you organized and sewn attachment points to lash on extra gear. No matter how much you choose to carry, dual compression straps stabilize the load. The padded top and side handles give you purchase when you need to toss the far point 40 into the back of the bus."
            },
            {
                "category": "Sports & Outdoors > Categories > Outdoor Recreation > Camping & Hiking > Backpacks & Bags > Backpacking Packs > Hiking Daypacks; Sports & Outdoors > Outdoor Recreation Features",
                "asin": "B019UTI40Y",
                "merchant_id": 7777,
                "name": "Osprey Packs Farpoint 70 Travel Backpack",
                "merchant": "Amazon United States",
                "suid": "B019UTI40Y",
                "url": "https://www.amazon.com/Osprey-Packs-Farpoint-Travel-Backpack/dp/B019UTI40Y?SubscriptionId=AKIAJLHNSP4DNCDHN5HQ&tag=@@@&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B019UTI40Y",
                "price": 18771,
                "brand": "Osprey",
                "finalprice": 18771,
                "_id": 777703788917358,
                "currency": "USD",
                "source": "Amazon United States",
                "image": "https://images-na.ssl-images-amazon.com/images/I/4150EVVTVIL.jpg",
                "salediscount": 0,
                "onsale": 0,
                "model": "10000285-P",
                "source_id": 7777,
                "thumbnail": "https://images-na.ssl-images-amazon.com/images/I/4150EVVTVIL._SL160_.jpg",
                "description": "From the streets of Buenos Aires to the foothills of the Andes, Osprey’s Farpoint 70 is ready for anything. Go ahead and fill it up with heavy mountain gear. The LightWire frame suspension transfers the load from harness to hipbelt. A mesh backpanel improves ventilation and the mesh on the harness and hipbelt reduces chafing under load. The entire suspension stows away under a zippered panel creating a sleek silhouette for transport. Unzip the lockable sliders to access the main compartment. Inside there’s a mesh pocket for small items. Dual compression straps keep cargo from shifting during transit. Outside you’ll find a zippered front panel slash pocket to keep you organized and sewn attachment points to lash on extra gear. No matter how much you choose to carry, StraightJacket compression straps stabilize the load. The main Farpoint 70 pack comes with a detachable Farpoint day pack, perfect for use on trips to the local market or to recon your route from the high ridge above base camp."
            },
            {
                "category": "Electronics > Categories > Computers & Accessories > Laptop Accessories > Bags, Cases & Sleeves > Backpacks",
                "asin": "B019UTI8W8",
                "merchant_id": 7777,
                "name": "Osprey Packs Farpoint 80 Travel Backpack",
                "merchant": "Amazon United States",
                "suid": "B019UTI8W8",
                "url": "https://www.amazon.com/Osprey-Packs-Farpoint-Travel-Backpack/dp/B019UTI8W8?SubscriptionId=AKIAJLHNSP4DNCDHN5HQ&tag=@@@&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B019UTI8W8",
                "price": 14000,
                "brand": "Osprey",
                "finalprice": 14000,
                "_id": 777772448139997,
                "currency": "USD",
                "source": "Amazon United States",
                "image": "https://images-na.ssl-images-amazon.com/images/I/51I9ltXCZOL.jpg",
                "salediscount": 0,
                "onsale": 0,
                "model": "10000279-P",
                "source_id": 7777,
                "thumbnail": "https://images-na.ssl-images-amazon.com/images/I/51I9ltXCZOL._SL160_.jpg",
                "description": "Osprey's far point 80 is the right size for a long trip when you need one pack to transport everything from the airport to the back and beyond. Go ahead and fill it up. The lightwood frame suspension transfers the load from harness to hip belt. A mesh back panel improves ventilation and the mesh on the harness and hip belt reduces chafing under load. The entire suspension stows away under a zippered panel creating a sleek silhouette for transport. Unzip the lockable sliders to access the main compartment. Inside there's a mesh pocket for small items. A compartment with floating divider allows separate storage options and dual compression straps keep cargo from shifting during Transit. Outside the pack, you'll find a zippered front panel slash pocket to keep your organized and sewn attachment points to add extra gear. No matter how much you choose to carry, straightjacket compression straps stabilize the load. There are also loops to anchor an optional osprey day Lite day pack if you would like the convenience of a small satellite pack for short forays."
            },
            {
                "category": "Sports & Outdoors > Categories > Outdoor Recreation > Camping & Hiking > Backpacks & Bags > Backpacking Packs > Internal Frame Backpacks; Sports & Outdoors > Outdoor Recreation Features",
                "asin": "B017P6F3NU",
                "merchant_id": 7777,
                "name": "Osprey Women's Aura 65 AG Backpacks",
                "merchant": "Amazon United States",
                "suid": "B017P6F3NU",
                "url": "https://www.amazon.com/Osprey-Womens-Aura-65-Backpacks/dp/B017P6F3NU?SubscriptionId=AKIAJLHNSP4DNCDHN5HQ&tag=@@@&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B017P6F3NU",
                "price": 13995,
                "finalprice": 13995,
                "_id": 777711206462598,
                "currency": "USD",
                "source": "Amazon United States",
                "salediscount": 0,
                "onsale": 0,
                "model": "025265-706-3-WM",
                "source_id": 7777,
                "brand": "Osprey",
                "description": "FEATURES of the Osprey Women's Aura 65 AG Pack Adjustable harness Compression straps Dual zippered front panel pockets Fit-on-the-Fly hipbelt FlapJacket Internal compression Internal reservoir sleeve Removable floating top lid Removable sleeping pad straps Sleeping bag compartment Stow-on-the-Go trekking pole attachment Tool attachment"
            },
            {
                "category": "Sports & Outdoors > Categories > Outdoor Recreation > Camping & Hiking > Backpacks & Bags > Backpacking Packs > Hydration Packs; Sports & Outdoors > Outdoor Recreation Features",
                "asin": "B073QQR4C1",
                "merchant_id": 7777,
                "name": "Osprey Packs Fairview 40 Travel Backpack",
                "merchant": "Amazon United States",
                "suid": "B073QQR4C1",
                "url": "https://www.amazon.com/Osprey-Packs-Fairview-Travel-Backpack/dp/B073QQR4C1?SubscriptionId=AKIAJLHNSP4DNCDHN5HQ&tag=@@@&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B073QQR4C1",
                "price": 14284,
                "brand": "Osprey",
                "finalprice": 14284,
                "_id": 777713351217328,
                "currency": "USD",
                "source": "Amazon United States",
                "image": "https://images-na.ssl-images-amazon.com/images/I/41rtJQfnanL.jpg",
                "salediscount": 0,
                "onsale": 0,
                "model": "10001133",
                "source_id": 7777,
                "thumbnail": "https://images-na.ssl-images-amazon.com/images/I/41rtJQfnanL._SL160_.jpg",
                "description": "KEY FEATURES Traditional backpack construction helps you support and carry the heaviest loads Stowaway Harness and Hipbelt can be zipped away when not in use to prevent snags and hangups Lightweight 210D Nylon Ripstop construction doesnt compromise on durability thanks to 600D Packcloth reinforcement in high wear areas The Osprey Fairview 40 Womens Bag is how you bring backcountry tech on every adventure you go on even the ones that never leave the city The LightWire? frame supports and distributes just like your trail pack would and the Atilon Foam harness and hipbelt keep you comfortable even under heavy loads But when its time to turn your bag over to the baggage handlers at the airport or if you just want a more standard looking piece of luggage simply zip shut the back panel for a sleek snag free carrying option SPECSVolume Liters 40"
            },
            {
                "category": "Clothing, Shoes & Jewelry > Departments > Luggage & Travel Gear > Backpacks",
                "asin": "B00U3N8NAI",
                "merchant_id": 7777,
                "name": "Osprey UltraLight Raincover",
                "merchant": "Amazon United States",
                "suid": "B00U3N8NAI",
                "url": "https://www.amazon.com/Osprey-234102-514-1-LG-P-UltraLight-Raincover/dp/B00U3N8NAI?SubscriptionId=AKIAJLHNSP4DNCDHN5HQ&tag=@@@&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B00U3N8NAI",
                "price": 2400,
                "brand": "Osprey",
                "finalprice": 2400,
                "_id": 777760229864481,
                "currency": "USD",
                "source": "Amazon United States",
                "image": "https://images-na.ssl-images-amazon.com/images/I/51qQRM7RKnL.jpg",
                "salediscount": 0,
                "onsale": 0,
                "model": "234102-514-1-LG-P",
                "source_id": 7777,
                "htmldescription": "Features:<br /><ul><li>Osprey raincover</li><li>Designed to protect 75-110 litre pack</li><li>Crafted with a fully taped lightweight fabric</li><li>Packs down into its own stuffsack</li><li>Reflective graphic printing</li><li><b>Volume Range:</b> 75-110 litres</li><li><b>Weight:</b> 0.1kg</li><li>Pack is securely locked into place with a lightweight wrap around cinch strap and secure hip belt and harness attachment</li></ul><br />",
                "thumbnail": "https://images-na.ssl-images-amazon.com/images/I/51qQRM7RKnL._SL160_.jpg",
                "description": "Features:\nOsprey raincover\nDesigned to protect 75-110 litre pack\nCrafted with a fully taped lightweight fabric\nPacks down into its own stuffsack\nReflective graphic printing\nVolume Range: 75-110 litres\nWeight: 0.1kg\nPack is securely locked into place with a lightweight wrap around cinch strap and secure hip belt and harness attachment"
            },
            {
                "category": "Clothing, Shoes & Jewelry > Departments > Luggage & Travel Gear > Gym Bags > Sports Duffels",
                "asin": "B00OKE6GEQ",
                "merchant_id": 7777,
                "name": "Osprey Porter 65 Travel Duffel Bag",
                "merchant": "Amazon United States",
                "suid": "B00OKE6GEQ",
                "url": "https://www.amazon.com/Osprey-Porter-Travel-Duffel-Bag/dp/B00OKE6GEQ?SubscriptionId=AKIAJLHNSP4DNCDHN5HQ&tag=@@@&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B00OKE6GEQ",
                "price": 10000,
                "brand": "Osprey",
                "finalprice": 10000,
                "_id": 777706568763210,
                "currency": "USD",
                "source": "Amazon United States",
                "image": "https://images-na.ssl-images-amazon.com/images/I/31P2Dh6D1gL.jpg",
                "salediscount": 0,
                "onsale": 0,
                "model": "877257037116-PARENT",
                "source_id": 7777,
                "thumbnail": "https://images-na.ssl-images-amazon.com/images/I/31P2Dh6D1gL._SL160_.jpg",
                "description": "With comfortable shoulder straps and waist belt that quickly tuck away when not needed, the Osprey Porter 65 conversion pack effortlessly distills the essence of a travel pack into its lightest, cleanest form for travelers who prefer to keep things simple. Updated with better organization features and a padded laptop compartment."
            }
        ],
        "version": "0.2",
        "time": 179,
        "result_count": 10
    }
    

    POST https://api.datafeedr.com/amazon_item_search

    Request Properties

    Property Value Type Required
    AssociateTag More information string Yes
    AWSAccessKeyId More information string Yes
    AWSSecretKey More information string Yes
    Search Parameter At least one search parameter. string Yes
    SearchIndex More information string No
    ItemPage Offset (for paginating through results). Default: 1 integer No
    Locale CA CN DE ES FR IT JP UK or US. Default: US string No
    Sort One of the following sort values string No

    Response Properties

    Property Type Description
    products array Array of Amazon Product Objects.
    found_count integer Total number of products matching the query.
    result_count integer Number of products that can be retrieved from the server.
    status object Status Object.
    time integer Time spent processing the API request (in milliseconds).
    version string The current version of the API.

    Zanox Merchant IDs

    The zanox_merchant_ids endpoint returns ZanoxMerchant Objects which can be used to get your Zanox Merchant IDs (zmid) which is the value you will use as your Zanox affiliate ID.

    ZanoxMerchant Properties

    The ZanoxMerchant Object contains information a Zanox merchant.

    Property Type Description
    zmid string Zanox Affiliate ID (Replace @@@ with this value).
    adspace_id integer Zanox Adspace ID.
    program_id string Zanox Program ID.
    merchant_id integer Datafeedr Merchant ID.

    Get Zanox zmid

    Zanox Merchant IDs Request

    curl --request POST \
      --url https://api.datafeedr.com/zanox_merchant_ids \
      --data '{
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "connect_id": "ZANOX_CONNECTION_ID",
        "merchant_ids": [46548, 79142]
    }'
    
    <?php
    
    $url = "https://api.datafeedr.com/zanox_merchant_ids";
    
    $data = json_encode([
        'aid'          => 'ACCESS_ID',
        'akey'         => 'ACCESS_KEY',
        'connect_id'   => 'ZANOX_CONNECTION_ID',
        'merchant_ids' => [46548, 79142]
    ]);
    
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
        CURLOPT_POSTFIELDS     => $data
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    print_r(json_decode($response));
    
    import requests
    
    url = "https://api.datafeedr.com/zanox_merchant_ids"
    
    data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "connect_id": "ZANOX_CONNECTION_ID",
        "merchant_ids": [46548, 79142]
    }
    
    response = requests.post(url, json=data)
    print(response.json())
    
    var axios = require('axios');
    
    var url = "https://api.datafeedr.com/zanox_merchant_ids";
    
    var data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "connect_id": "ZANOX_CONNECTION_ID",
        "merchant_ids": [46548, 79142]
    };
    
    axios.post(url, data).then(function (response) {
        console.log(response.data)
    });
    

    Zanox Merchant IDs Response

    {
        "status": {
            "network_count": 173,
            "plan_id": 10300,
            "user_id": 190,
            "max_total": 10000,
            "merchant_count": 57973,
            "max_requests": 100000,
            "bill_day": 16,
            "request_count": 4402,
            "product_count": 455689593,
            "max_length": 100
        },
        "version": "0.2",
        "zanox_merchant_ids": [
            {
                "zmid": "21612326605C04682",
                "adspace_id": 1234567,
                "merchant_id": 46548,
                "program_id": 10779
            },
            {
                "zmid": "68221612326605C18",
                "adspace_id": 3456789,
                "merchant_id": 79142,
                "program_id": 19192
            }
        ],
        "time": 329
    }
    

    POST https://api.datafeedr.com/zanox_merchant_ids

    Get the zmid values (ie. affiliate IDs) for specific Zanox merchants.

    Request Properties

    Property Value Type Required
    merchant_ids Array of Datafeedr Merchant IDs. [12345, 13524,...] Yes
    connect_id Your Zanox Connection ID. string Yes

    Response Properties

    Property Type Description
    zanox_merchant_ids array An array of ZanoxMerchant Objects.
    status object Status Object.
    time integer Time spent processing the API request (in milliseconds).
    version string The current version of the API.

    Performance Horizon Camref

    The performancehorizon_campaigns endpoint returns PerformanceHorizonCampaign Objects which can be used to get your Performance Horizon camref value which is the value you will use as your Performance Horizon affiliate ID.

    PerformanceHorizonCampaign Properties

    The PerformanceHorizonCampaign Object contains information about a Performance Horizon merchant.

    Property Type Description
    camref string Performance Horizon Affiliate ID (Replace @@@ with this value).
    campaign_id string Performance Horizon Adspace ID.
    merchant_id integer Datafeedr Merchant ID.

    Get Performance Horizon camref

    Performance Horizon Campaign Request

    curl --request POST \
      --url https://api.datafeedr.com/performancehorizon_campaigns \
      --data '{
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "merchant_ids": [80512, 81737],
        "application_key": "PH_APPLICATION_KEY",
        "user_api_key": "PH_USER_API_KEY",
        "publisher_id": "PH_USER_PUBLISHER_ID"
    }'
    
    <?php
    
    $url = "https://api.datafeedr.com/performancehorizon_campaigns";
    
    $data = json_encode([
        'aid'             => 'ACCESS_ID',
        'akey'            => 'ACCESS_KEY',
        'merchant_ids'    => [80512, 81737],
        'application_key' =>  'PH_APPLICATION_KEY',
        'user_api_key'    =>  'PH_USER_API_KEY',
        'publisher_id'    =>  'PH_USER_PUBLISHER_ID'
    ]);
    
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
        CURLOPT_POSTFIELDS     => $data
    ]);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    print_r(json_decode($response));
    
    import requests
    
    url = "https://api.datafeedr.com/performancehorizon_campaigns"
    
    data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "merchant_ids": [80512, 81737],
        "application_key": "PH_APPLICATION_KEY",
        "user_api_key": "PH_USER_API_KEY",
        "publisher_id": "PH_USER_PUBLISHER_ID"
    }
    
    response = requests.post(url, json=data)
    print(response.json())
    
    var axios = require('axios');
    
    var url = "https://api.datafeedr.com/performancehorizon_campaigns";
    
    var data = {
        "aid": "ACCESS_ID",
        "akey": "ACCESS_KEY",
        "merchant_ids": [80512, 81737],
        "application_key": "PH_APPLICATION_KEY",
        "user_api_key": "PH_USER_API_KEY",
        "publisher_id": "PH_USER_PUBLISHER_ID"
    };
    
    axios.post(url, data).then(function (response) {
        console.log(response.data)
    });
    

    Zanox Merchant IDs Response

    {
        "status": {
            "network_count": 173,
            "plan_id": 10300,
            "user_id": 190,
            "max_total": 10000,
            "merchant_count": 58018,
            "max_requests": 100000,
            "bill_day": 16,
            "request_count": 5003,
            "product_count": 428272607,
            "max_length": 100
        },
        "version": "0.2",
        "time": 851,
        "performancehorizon_campaigns": [
            {
                "merchant_id": 80512,
                "campaign_id": "1101l991",
                "camref": "1199l3eMb"
            },
            {
                "merchant_id": 81737,
                "campaign_id": "1101l876",
                "camref": "1034l3bMe"
            }
        ]
    }
    

    POST https://api.datafeedr.com/performancehorizon_campaigns

    Get the camref values (ie. affiliate IDs) for specific Performance Horizon merchants.

    Request Properties

    Property Value Type Required
    merchant_ids Array of Datafeedr Merchant IDs. [12345, 13524,...] Yes
    application_key Your Performance Horizon Application Key. string Yes
    user_api_key Your Performance Horizon User API Key. string Yes
    publisher_id Your Performance Horizon Publisher ID. string Yes

    Response Properties

    Property Type Description
    performancehorizon_campaigns array An array of PerformanceHorizonCampaign Objects.

    Error Codes

    Possible error codes and their respective messages and HTTP status codes:

    Error Code Error Message HTTP Status
    101 Invalid request method 400
    102 Content length not specified 400
    103 No content 400
    104 Content too long 400
    105 Invalid mime type 400
    106 JSON parse error 400
    107 Invalid request compression 400
    111 Required parameter missing 400
    112 Invalid parameter type 400
    113 Invalid timestamp 400
    114 Unknown action 400
    115 Request expired 400
    201 Access denied 403
    202 Invalid access id 403
    203 Invalid signature 403
    204 Wrong authorization 403
    205 Invalid access key 403
    301 Request limit exceeded 400
    302 Response too long 400
    303 Total limit exceeded 400
    304 Limit too big 400
    401 Query syntax error 400
    402 Query was empty 400
    403 Invalid integer 400
    404 Invalid date 400
    405 Invalid currency 400
    406 Invalid source id 400
    407 Invalid merchant id 400
    410 Invalid field 400
    411 Wrong field type 400
    412 Bad argument 400
    413 Field is not sortable 400
    420 Impossible field combination 400
    421 Query not computable 400
    422 Condition is always false 400
    432 Amazon query error 400
    433 Zanox query error 400
    701 Amazon API error 500
    751 Zanox API error 500
    752 PerformanceHorizon API error 500
    901 Service unavailable 503
    903 Query timed out 504
    990 Unspecified error 500
    999 Internal error 500