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:
- have an account at any affiliate network you want to promote products from
- be approved by any merchant you want to promote products from
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:
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.POST Only - All Requests to the API should be
POST
Requests.JSON Only - All Request parameters should be in JSON format.
Body Only - All Request parameters should be sent in the
body
of thePOST
.
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:
JSON Only - Responses to every Request are sent in JSON format.
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 (Partnerize, 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.
- Conditions are essentially "filters".
- Each Condition is a single filter.
- All Conditions are of the type
string
. - All Conditions are AND'd together.
Condition Format
Conditions take the form: field operator argument(optional)
.
field
- AnObject
property name orANY
to use any field. See Fieldsoperator
- Depends on the field type. See Operatorsargument
- Depends on the field type. Sometimes 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:
- Product name contains the terms "farpoint 55"
- and Product brand contains the term "osprey"
- and Product is on sale.
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:
- ANY field contains the terms "petzl climbing harness"
- and Product price is greater than 100.00
- and Product price is less than 200.00.
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.
Partnerize Affiliate IDs
Partnerize (formally 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 Partnerize camref
value for each Partnerize merchant.
The @@@
characters in the URL are replaced with the camref
value.
See the Get Partnerize camref section to learn how to get your Partnerize 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:
request_count
- This is the total number of API Requests you have made since the start of your billing cycle.max_requests
- This is the total number of API Requests you are allowed to make during a billing cycle.
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_find \
--data '{
"aid": "ACCESS_ID",
"akey": "ACCESS_KEY",
"amz_tag": "AMAZON_TRACKING_ID",
"amz_access": "AMAZON_ACCESS_KEY",
"amz_key": "AMAZON_SECRET_KEY",
"locale": "US",
"operation": "SearchItems",
"params": {
"keywords": "osprey farpoint 55"
}
}'
<?php
$url = "https://api.datafeedr.com/amazon_find";
$data = json_encode([
'aid' => 'ACCESS_ID',
'akey' => 'ACCESS_KEY',
'amz_tag' => 'AMAZON_TRACKING_ID',
'amz_access' => 'AMAZON_ACCESS_KEY',
'amz_key' => 'AMAZON_SECRET_KEY',
'locale' => 'US',
'operation' => 'SearchItems',
'params' => [
"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_find"
data = {
"aid": "ACCESS_ID",
"akey": "ACCESS_KEY",
"amz_tag": "AMAZON_TRACKING_ID",
"amz_access": "AMAZON_ACCESS_KEY",
"amz_key": "AMAZON_SECRET_KEY",
"locale": "US",
"operation": "SearchItems",
"params": {
"keywords": "osprey farpoint 55"
}
}
response = requests.post(url, json=data)
print(response.json())
var axios = require('axios');
var url = "https://api.datafeedr.com/amazon_find";
var data = {
"aid": "ACCESS_ID",
"akey": "ACCESS_KEY",
"amz_tag": "AMAZON_TRACKING_ID",
"amz_access": "AMAZON_ACCESS_KEY",
"amz_key": "AMAZON_SECRET_KEY",
"locale": "US",
"operation": "SearchItems",
"params": {
"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. |
Partnerize Camref
The performancehorizon_campaigns
endpoint returns PerformanceHorizonCampaign
Objects which can be used to get your Partnerize camref
value which is the value you will use as your Partnerize affiliate ID.
PerformanceHorizonCampaign Properties
The PerformanceHorizonCampaign
Object contains information about a Partnerize merchant.
Property | Type | Description |
---|---|---|
camref |
string | Partnerize Affiliate ID (Replace @@@ with this value). |
campaign_id |
string | Partnerize Adspace ID. |
merchant_id |
integer | Datafeedr Merchant ID. |
Get Partnerize camref
Partnerize 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)
});
Partnerize Campaign 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 Partnerize merchants.
Request Properties
Property | Value | Type | Required |
---|---|---|---|
merchant_ids |
Array of Datafeedr Merchant IDs. |
[12345, 13524,...] |
Yes |
application_key |
Your Partnerize Application Key. | string |
Yes |
user_api_key |
Your Partnerize User API Key. | string |
Yes |
publisher_id |
Your Partnerize 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 |