Review monitoring API V2

For better integration with your system!

FeedCheck REST API V2 documentation

FeedCheck offers an API in order to help consumer brands easily integrate review management into their platforms. Below you will find the technical documentation required for your integration. You can play with the api using our swagger page.

Authentication

The first interaction with our API is the authentication. The FeedCheck API uses Basic Authentication with username and password (Secret API Key). You can find this information in the Settings section ( https://app.feedcheck.co/settings ). The Secret API Key needs to be included in any of the following API calls. Otherwise, a 401 error code with the message "Could not verify your access level for that URL" will be returned.

Basic authentication is a simple authentication scheme built into the HTTP protocol. The client sends HTTP requests with the Authorization header that contains the word Basic word followed by a space and a base64-encoded string username:password.

Products

In FeedCheck, a product is defined by a group of links, each link pointing out to a product page (e.g. https://www.amazon.com/Apple-iPhone-Fully-Unlocked-5-8/dp/B075QNGDZD/ ).

Adding a product

For adding a product you need to make a POST request at /api/v2/products endpoint with the following payload:

{
	"name":"product name", 
	"owner":"my product",
        "links": [
          "https://www.amazon.com/Apple-Generation-Cancelling-Transparency-Personalized/dp/B0BDHWDR12?ref_=ast_sto_dp"
        ]
}
where "name" contains your product name, owner contains "my product" or "competitor" value, "links" is a list of string which contains the links related to this product.

Below is the request in cURL format:
curl -X POST "https://app.feedcheck.co/api/v2/products"
    -H "accept: application/json"
    -H "Authorization: Basic {{ base64 encoded username:password }}"
    -H "Content-Type: application/json"
    -d "{
        "name":"product name",
        "owner":"my product",
        "links":["https://www.amazon.com/Apple-Generation-Cancelling-Transparency-Personalized/dp/B0BDHWDR12?ref_=ast_sto_dp"]
    }"
where username and password are auth informations.

Retrieving products

Retrieving products from your account is done by GET request at /api/v2/products . The response has the following format:

[
    {
        "groups": [],
        "id": 29438,
        "links": [
          119105
        ],
        "name": "Webcam Cover Slide 6 Pack, 0.027 inch Ultra-Thin Metal Magnet Web Camera Cover for MacBook Pro iMac Laptop PC iPad Pro iPhone Surface Pro Echo Show Camera Blocker Slider, Protect Your Visual Prvacy",
        "owner": "my product",
        "rating": 3.8,
        "ratingsNumber": 203
    },
    {
        "groups": [],
        "id": 29439,
        "links": [
          119106
        ],
        "name": "Portable Monitor, InnoView 15.8 Inch FHD 1080P USB C HDMI Second External Monitor for Laptop, Desktop, MacBook, Phones, Tablet, PS5/4, Xbox, Switch, Built-in Speaker with Protective Case",
        "owner": "my product",
        "rating": 4.5,
        "ratingsNumber": 2032
    }
]

Below is the request in cURL format:

curl -X GET "https://app.feedcheck.co/api/v2/products"
    -H "accept: application/json"
    -H "Authorization: Basic {{ base64 encoded username:password }}"

Adding product to group

In FeedCheck the products can be added one by one to a group with a POST request at /api/v2/groups/{groupId}/addProduct with the following payload:

{
	"productId": 31490
}
where "productId" contains the id of the product and "groupId" is a integer which represents the id of a group that exists in FeedCheck.

Below is the request in cURL format:
curl -X POST "https://app.feedcheck.co/api/v2/groups/2804/addProduct"
    -H "accept: application/json"
    -H "Authorization: Basic {{ base64 encoded username:password }}"
    -H "Content-Type: application/json"
    -d "{"productId":31490}"

Retrieving products from group

In FeedCheck we can fetch products from a specific group making a request at /api/v2/groups/{groupId}/products and "groupId" is a integer which represents the id of a group that exists in FeedCheck.

Below is the request in cURL format:
curl -X GET "https://app.feedcheck.co/api/v2/groups/2804/products"
    -H "accept: application/json"
    -H "Authorization: Basic {{ base64 encoded username:password }}"
The request returns the next response:
[
    {
        "groups": [
            2804
        ],
        "id": 31490,
        "links": [
            127737
        ],
        "name": "My apple",
        "owner": "my product",
        "rating": 4.7,
        "ratingsNumber": 9258
    }
]

Links

In FeedCheck the links are the places from where reviews are collected. A link point to a product page. All links belong to products, as we mentioned previously.

Adding a link to a product

Adding a link to a product is done by a POST request at /api/products/{productId}/links endpoint with the following payload:

{
	"link":"https://www.amazon.com/Apple-iPhone-Fully-Unlocked-5-8/dp/B075QNGDZD/"
}

Retrieving links

Retrieving links for a specific product is done by GET request at /api/products/{productId}/links . The response has the following format:

[
    {
        "id": 31978,
        "productLink": "https://www.amazon.com/Apple-iPhone-Fully-Unlocked-5-8/dp/B075QNGDZD/",
        "productDataCreated": 0,
        "httpStatus": 0,
        "productName": "",
        "productStatus": "Processing",
        "domain": "amazon.com",
        "product": 3351,
        "customer": 965
    }
]

Reviews

Get all reviews from FeedCheck

We can fetch all reviews from the database using a single GET request to the endpoint /api/v2/reviews In this way we will get a list of reviews that looks like this:

[
    {
        "id": 12551741,
        "title": "Beautiful phone, happy with the upgrade",
        "content": "Phone freezes a bit and I need to reboot but that is maybe once a week. I am hopeful that a future update will fix this. Annoying that it doesn't read my face properly when I am wearing my glasses. Not many apps are up to the speed with the facial scan so I need to type in my password every time I check my banking statements. The missing fingerprint button took some time getting used to but once I did, I don't even miss it. The camera is lovely as is the speed. I wish there were more color and size choices, but prob next year.",
        "translatedEnTitle": "",
        "translatedEnContent": "",
        "rating": "4.0",
        "website": "amazon.com",
        "user": "Ofelia P.",
        "dataCreated": 1486447200,
        "dataDiscovered": 1486447200,
        "productId": 31978,
        "linkId": 121521,
        "signature": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }
]

Retrieving product reviews

Retrieving reviews for a specific product is done by GET request at /api/v2/products/{productId}/reviews. If you want to get reviews that are newer than a certain date you can use the URL param start_timestamp with a timestamp in UNIX format. The response has the following format:

[
    {
        "id": 12551741,
        "title": "Beautiful phone, happy with the upgrade",
        "content": "Phone freezes a bit and I need to reboot but that is maybe once a week. I am hopeful that a future update will fix this. Annoying that it doesn't read my face properly when I am wearing my glasses. Not many apps are up to the speed with the facial scan so I need to type in my password every time I check my banking statements. The missing fingerprint button took some time getting used to but once I did, I don't even miss it. The camera is lovely as is the speed. I wish there were more color and size choices, but prob next year.",
        "translatedEnTitle": "",
        "translatedEnContent": "",
        "rating": "4.0",
        "website": "amazon.com",
        "user": "Ofelia P.",
        "dataCreated": 1486447200,
        "dataDiscovered": 1486447200,
        "productId": 31978,
        "linkId": 121521,
        "signature": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
    }
]

Retrieving group reviews

Retrieving reviews for a specific group is done by GET request at /api/v2/group/{groupId}/reviews. If you want to get reviews that are newer than a certain date you can use the URL param start_timestamp with a timestamp in UNIX format. The response has the same format as reviews endpoint.

Retrieving link reviews

Retrieving reviews for a specific link is done by GET request at /api/v2/links/{linkId}/reviews. If you want to get reviews that are newer than a certain date you can use the URL param start_timestamp with a timestamp in UNIX format. The response has the same format as reviews endpoint.

Get histogram values

We can fetch all values needed for histogram to be displayed. We have to make a single GET request to the endpoint /api/v2/product/{productId}/histogram

In this way we will get an object with values which describes the histogram and it looks like this:
{
  "histogram": [
    {
      "reviewsNumber": 1026,
      "percentFromTotal": 70,
      "rating": 5
    },
    {
      "reviewsNumber": 164,
      "percentFromTotal": 11,
      "rating": 4
    },
    {
      "reviewsNumber": 98,
      "percentFromTotal": 6,
      "rating": 3
    },
    {
      "reviewsNumber": 62,
      "percentFromTotal": 4,
      "rating": 2
    },
    {
      "reviewsNumber": 105,
      "percentFromTotal": 7,
      "rating": 1
    }
  ],
  "totals": {
    "nps": 52.3,
    "reviewAverageNorm": 0.67,
    "reviewAverageRank": 4.34,
    "reviewCount": 1455
  }
}
Below is the request in cURL format:
curl -X GET "http://0.0.0.0:32323/api/v2/histogram/29444"
    -H "accept: application/json"
    -H "Authorization: Basic {{ base64 encoded username:password }}"

Groups

Retrieving groups

Retrieving all groups in your account is done by GET request at /api/v2/groups . The response has the following format:

[
    {
        "id": 123,
        "name": "The group name",
        "productIds": [
            29440,
            29881
        ]
    }
]

Create group

In FeedCheck groups can be created with a POST request at /api/v2/groups with the following payload:

{
	"name": "Group Name"
}
Below is the request in cURL format:
curl -X POST "https://app.feedcheck.co/api/v2/groups"
    -H "accept: application/json"
    -H "Authorization: Basic {{ base64 encoded username:password }}"
    -H "Content-Type: application/json"
    -d "{"name":"Group Name"}"

The above request returns the created group id.

Retrieving group by Id

Retrieving a group by id from your account is done by GET request at /api/v2/groups/{groupId} . The response has the following format:

{
    "id": 123,
    "name": "The group name",
    "productIds": [
        29440,
        29881
    ]
}

If you have different products with the same links in a group you may receive duplicate reviews. If you want to deduplicate reviews use the query parameter deduplicate=1