ReviewsAPI V2.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Introduction
The ReviewsAPI facilitates extensive monitoring of review data for 2m+ hotels worldwide, including textual content of reviews, numerical scoring associated with the reviews, and sentiment analysis indicating the sentiment expressed in the reviews. Every day, thousands of customers rely on our ReviewsAPI to monitor customer feedback, improve their brand’s online presence, and monitor competitor reviews. Users have the flexibility to choose between scheduling extraction requests at specific intervals or making real-time requests to fetch the latest reviews and related data. Our ReviewsAPI integration is fully scalable, accurate and provides a fast and easy solution that can help you stay ahead of the competition.
The ReviewsAPI follows a REST architecture, providing a structured approach to accessing its resources. It utilizes resource-oriented URLs, accepts request bodies primarily in JSON format, returns responses encoded in JSON, and adheres to standard HTTP response codes, authentication methods, and HTTP verbs.
The API's endpoints can be broadly categorized into the following modules:
Review API is a Review data fetching service.It enables you to request and schedule ('create shops') reviews data and scoring ('rating') for specific hotels and from specific sources. Hotel rating and review data provides insights to the quality, service, and overall guest experience of a hotel. This data typically includes:
Ratings: Numerical scores assigned to hotels. Ratings are presented as total for property and per their categories such as cleanliness, location, service, amenities etc.
Reviews: Full review content from guests sharing their personal experiences, opinions, and recommendations.
Sentiment Analysis: The process of identifying and categorizing the emotional tone of reviews (positive, negative, or neutral).
This Swagger document outlines the methods organized into the following groups for interacting with the ReviewsAPI.
Authentication - Gain access to the API using authentication methods
Hotel Information - Search for hotels and retrieve detailed hotel information
Review Shops - Manage shop configurations for reviews
Review Schedules - Set up a schedule to run a Review Shop
Reviews and Ratings Information - Fetch ratings and review information for hotels
Hooks - Define the endpoint to receive Shop alerts
Synopsis - Fetch reviews count for the last one year
References - Retrieve reference values used in ReviewsAPI
Time Zone - All timestamps and time-related values returned by the API are in Coordinated Universal Time (UTC).
This Swagger Explorer offers an environment for users to test all methods by passing the appropriate parameters outlined in this document. It functions exactly as it would within the application, allowing users to evaluate different combinations of parameter values and explore various use cases.
Authorization
Each request to the Reviews API must be authenticated with an access token. You can obtain this token by logging in with the credentials provided in your ReviewsAPI packet. The access token is valid for 24 hours from the time of generation.
The access token must be included in the 'Authorization' header, as shown in the example below:
If your access token is A90324XXZUZUgpO0dd6npHcM83CJ..., every request should include the following header:
Authorization: Bearer A90324XXZUZUgpO0dd6npHcM83CJ...
In summary, the ReviewsAPI adopts a RESTful design, offering well-defined endpoints and adhering to standard practices for resource access and manipulation. Its modules cover user authentication, source exploration, dependency retrieval, schedule management, and shop-specific data extraction for hotel reviews.
Web: Aggregate Intelligence Inc.
Authentication
User Login
Code samples
# You can also use wget
curl -X POST /auth/token \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /auth/token HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"userName": "string",
"password": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('/auth/token',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post '/auth/token',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('/auth/token', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/auth/token', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/auth/token");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/auth/token", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /auth/token
Implementation Notes:
This endpoint authenticates the validity of a username and password combination. A valid token will be generated if the authentication is successful. Use the username and password provided to you in your ReviewsAPI packet.
Mandatory Fields:
- userName
- password
Body parameter
{
"userName": "string",
"password": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | userauth | false | none |
Example responses
200 Response
{
"accessToken": "string",
"tokenType": "Bearer",
"expiresIn": "1d",
"userName": "string",
".issued": "2025-05-06T14:15:22Z",
".expires": "2025-05-06T14:15:22Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | userresp |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authentication Failed or Account validity expired | None |
404 | Not Found | User Not Found | None |
500 | Internal Server Error | Internal server error | None |
Reference
Get Sources
Code samples
# You can also use wget
curl -X GET /reference/sources \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET /reference/sources HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/reference/sources',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get '/reference/sources',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('/reference/sources', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/reference/sources', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/reference/sources");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/reference/sources", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /reference/sources
Implementation Notes:
This API call returns a list of available sources along with their unique identifiers in the ReviewsAPI. This enables you to specify a particular source ID when defining a ReviewShop.
Example responses
200 Response
[
{
"sourceCode": 1,
"sourceName": "expedia"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | Inline |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal server error | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» sourceCode | number | false | none | It represents the unique identifier of the source code. |
» sourceName | string | false | none | It represents the name of the source. |
Get Languages
Code samples
# You can also use wget
curl -X GET /reference/languages \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET /reference/languages HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/reference/languages',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get '/reference/languages',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('/reference/languages', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/reference/languages', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/reference/languages");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/reference/languages", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /reference/languages
Implementation Notes:
This API call retrieves a list of all available language codes along with their corresponding language names.
language: The code representing the language (e.g., "en" for English).
languageName: The full name of the language associated with the code (e.g., "English").
Example responses
200 Response
[
{
"language": "af",
"languageName": "Afrikaans"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | Inline |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal server error | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» language | string | false | none | It represents the unique identifier of the language code. |
» languageName | string | false | none | It represents the name of the language. |
Hotel Information
Search Hotels
Code samples
# You can also use wget
curl -X POST /hotels \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST /hotels HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"hotelName": "Ocean Lodge Santa Monica Beach Hotel",
"city": "Los Angeles",
"state": "California",
"country": "United States of America",
"zip": "90401",
"geoLocationFilter": {
"latitude": "34.01",
"longitude": "-118.49",
"radius": "50km"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/hotels',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/hotels',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('/hotels', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/hotels', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/hotels");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/hotels", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /hotels
Implementation Notes:
This API call retrieves a list of all hotels available in the ReviewsAPI database for review retrieval. If a hotel you wish to retrieve reviews for is not listed, please send the request using POST /Hotelmaprequest endpoint. We will make efforts to add the hotel to our database within 24 to 48 business hours.
- hotelName: The name of the hotel.
- city: The name of the city where the hotel is located.
- state: The name of the state where the hotel is located.
- country: The name of the country where the hotel is located.
- zip: The postal code of the hotel.
- geoLocationFilter: The geographical location parameters.
- latitude: The latitude of the area.
- longitude: The longitude of the area.
- radius: The radius (in kilometers) around the specified latitude and longitude.
Mandatory Fields:
- country or geoLocationFilter
Note: Either the country or geoLocationFilter are mandatory parameters. When using geoLocationFilter, all three sub-parameters (latitude, longitude, and radius) are required. All other parameters are optional.
Body parameter
{
"hotelName": "Ocean Lodge Santa Monica Beach Hotel",
"city": "Los Angeles",
"state": "California",
"country": "United States of America",
"zip": "90401",
"geoLocationFilter": {
"latitude": "34.01",
"longitude": "-118.49",
"radius": "50km"
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
hotelsPerPage | query | integer | false | The number of items to display in a page |
pageNumber | query | integer | false | Indicates the current page number |
body | body | hotelsReq | false | none |
Example responses
200 Response
{
"totalRecords": 10000,
"fetchedRecords": 10,
"totalPages": 1000,
"currentPage": 1,
"pageSize": 10,
"hotels": [
{
"hotelCode": 1362151,
"hotelName": "Ocean Lodge Santa Monica Beach Hotel",
"address": "1667 Ocean Avenue",
"city": "Los Angeles",
"state": "California",
"country": "United States of America",
"location": [{
"latitude": "34.01012891",
"longitude": "-118.49312648"
}],
"zip": "90401",
"matchScore": 72.228226,
"reviewsCount": 0
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Ok | hotelsResp |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Search by Hotel Code
Code samples
# You can also use wget
curl -X POST /hotelinfo \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST /hotelinfo HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"hotelCode": 2005,
"hotelCodes": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/hotelinfo',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/hotelinfo',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('/hotelinfo', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/hotelinfo', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/hotelinfo");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/hotelinfo", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /hotelinfo
Implementation Notes:
This API call utilizes the hotelcode obtained from the POST/hotels endpoint to retrieve a list of sources available for a specific hotel. If a source you wish to retrieve reviews for is not configured with the hotel, please send the request using POST /sourcemaprequest endpoint. We will make efforts to add the hotel to our database within 24 to 48 business hours.
Parameters:
- hotelCode: Retrieve information for a single hotel code.
- hotelCodes: Retrieve information for multiple hotel codes.
Mandatory Fields:
- hotelCode or hotelCodes
Body parameter
{
"hotelCode": 2005,
"hotelCodes": [
0
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | hotelinfo | false | none |
Example responses
200 Response
{
"hotelCode": 0,
"hotelName": "string",
"address": "string",
"city": "string",
"state": "string",
"country": "string",
"starRating": "string",
"zip": "string",
"lat": 0,
"long": 0,
"sources": {
"websiteCode": 0,
"websiteName": "string",
"url": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | hotelinforesp |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Create Hotel Map Request
Code samples
# You can also use wget
curl -X POST /hotelmaprequest \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST /hotelmaprequest HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"hotelName": "",
"address": "",
"city": "",
"state": "",
"country": "",
"zip": "",
"latitude": 0,
"longitude": 0,
"url": [
"string"
],
"websiteCodes": [
0
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/hotelmaprequest',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/hotelmaprequest',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('/hotelmaprequest', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/hotelmaprequest', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/hotelmaprequest");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/hotelmaprequest", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /hotelmaprequest
Implementation Notes:
This method enables users to add a new hotel to the ReviewsAPI database if it is not already listed. Users can provide details such as the hotel name, address, geographic coordinates, and optionally include reference URLs or preferred website codes to assist with mapping. A unique requestid is automatically generated for each mapping request.
Mandatory Fields:
- hotelName
- address
- city
- state
- country
- zip
Status Code:
- 1 - Queued
- 2 - Work in progress
- 3 - Completed
- 4 - Hotel exists
- 5 - Feasibility failed
- 6 - Source unavailable
Body parameter
{
"hotelName": "",
"address": "",
"city": "",
"state": "",
"country": "",
"zip": "",
"latitude": 0,
"longitude": 0,
"url": [
"string"
],
"websiteCodes": [
0
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | newmapreq | false | none |
Example responses
201 Response
{
"requestId": 0,
"referenceHotelCodes": [
0
],
"statusCode": 1,
"statusMsg": "string",
"approximateTime": "2025-05-06",
"createdDate": "2024-04-30T08:10:49.835Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Created | newmapresp |
400 | Bad Request | Bad request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Get Hotel Map Request
Code samples
# You can also use wget
curl -X GET /hotelmaprequest/{requestId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET /hotelmaprequest/{requestId} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/hotelmaprequest/{requestId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get '/hotelmaprequest/{requestId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('/hotelmaprequest/{requestId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/hotelmaprequest/{requestId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/hotelmaprequest/{requestId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/hotelmaprequest/{requestId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /hotelmaprequest/{requestId}
Implementation Notes:
This endpoint returns the status of a hotel map request. It requires the requestid as an input parameter to retrieve the current status.
Status Codes:
- 1 - Queued
- 2 - Work in progress
- 3 - Completed
- 4 - Hotel exists
- 5 - Feasibility failed
- 6 - Source unavailable
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
requestId | path | integer(int32) | true | none |
Example responses
200 Response
{
"requestId": 0,
"referenceHotelCodes": [
0
],
"statusCode": 1,
"statusMsg": "string",
"approximateTime": "2025-05-06",
"createdDate": "2024-04-30T08:10:49.835Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | newmapresp |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Create Source Map Request
Code samples
# You can also use wget
curl -X POST /sourcemaprequest \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST /sourcemaprequest HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"hotelCode": 0,
"sourceCodes": [
0
],
"urls": [
"string"
]
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/sourcemaprequest',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/sourcemaprequest',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('/sourcemaprequest', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/sourcemaprequest', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/sourcemaprequest");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/sourcemaprequest", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /sourcemaprequest
Implementation Notes:
This method allows users to request the mapping of a hotel to a source that it is not currently linked to. Users must provide the hotelcode and the sourceCode. A unique requestid is automatically generated for each mapping request. You can refer to the list of supported sources for Ratings and Review extraction at the GET/reference/sources endpoint in the Reference section.
Parameters
- hotelCode: The code for the hotel to be mapped.
- sourceCodes: The code of the source if it exists in our database.
- url: The base URL of the source to be mapped.
Mandatory Fields:
- hotelCode
- sourceCodes
Status Codes:
- 1 - Queue
- 2 - Work in progress
- 3 - Completed
- 4 - Source already exists in the system and website code is available
- 5 - Not Feasible
Body parameter
{
"hotelCode": 0,
"sourceCodes": [
0
],
"urls": [
"string"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | sourcemapreq | false | none |
Example responses
201 Response
{
"requestId": 0,
"hotelCode": 0,
"sourceCodes": [
0
],
"urls": [
"string"
],
"status": 1,
"approximateTime": 0,
"createdDate": "2024-04-30T08:10:49.835Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Created | sourcemapresp |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Get Source Map Request
Code samples
# You can also use wget
curl -X GET /sourcemaprequest/{requestId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET /sourcemaprequest/{requestId} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/sourcemaprequest/{requestId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get '/sourcemaprequest/{requestId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('/sourcemaprequest/{requestId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/sourcemaprequest/{requestId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/sourcemaprequest/{requestId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/sourcemaprequest/{requestId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /sourcemaprequest/{requestId}
Implementation Notes:
This endpoint returns the status of a source map request. It requires the requestid as an input parameter to retrieve the current status.
Status Codes:
- 1 - Queued
- 2 - Work in progress
- 3 - Completed
- 4 - Source already exists in the system and websitecode is available
- 5 - Not Feasible
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
requestId | path | integer(int32) | true | none |
Example responses
200 Response
{
"requestId": 0,
"hotelCode": 0,
"sourceCodes": [
0
],
"urls": [
"string"
],
"status": 1,
"approximateTime": 0,
"createdDate": "2024-04-30T08:10:49.835Z"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | sourcemapresp |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Review Shops
Create Shop
Code samples
# You can also use wget
curl -X POST /shop \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST /shop HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"shopName": "Abc",
"hotelCodes": [
1,
123
],
"sourceCodes": [
1,
283
],
"shopType": 1
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/shop',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/shop',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('/shop', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/shop', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/shop");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/shop", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /shop
Implementation Notes:
This endpoint allows you to create a review shop, which is a collection of hotel codes and source codes for which review or rating information is requested. It also lets you specify the type of review information needed using the shoptype parameter.
Parameters:
- shopName: The name of the review shop.
- hotelCodes: The hotel codes to include in the review shop.
- sourceCodes: The source codes to include in the review shop.
- shopType: The type of review information needed:
- 1 - Only Rating Information
- 2 - Rating and Reviews Information
- 3 - Rating and Reviews Information with Sentiment Analysis
Mandatory Fields:
- shopName
- hotelCodes
- sourceCodes
- shopType
Body parameter
{
"shopName": "Abc",
"hotelCodes": [
1,
123
],
"sourceCodes": [
1,
283
],
"shopType": 1
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | createShopReq | false | none |
Example responses
201 Response
{
"message": "Shops details inserted successfully!",
"shopId": 1122
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Created | createshopRes |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Get All Shops
Code samples
# You can also use wget
curl -X GET /shop/list \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET /shop/list HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/shop/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get '/shop/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('/shop/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/shop/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/shop/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/shop/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /shop/list
Implementation Notes:
This endpoint retrieves details of all the review shops created by the user. It also allows you to configure the following:
- ShopsPerPage: Specifies the number of shops to display per page. This setting helps limit the number of records fetched at a time.
- pageNumber: Determines which page of results to view.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
shopsPerPage | query | integer | false | The number of items to display in a page |
pageNumber | query | integer | false | Indicates the current page number |
Example responses
200 Response
[
{
"totalRecords": 2,
"fetchedRecords": 2,
"totalPages": 1,
"currentPage": 1,
"pageSize": 10,
"shops": [
{
"shopId": 20,
"hotelCodes": [
1,
123
],
"sourceCodes": [
1,
283
],
"shopName": "Abc",
"userId": 1,
"userName": "reviews@ai.com",
"createdDate": "2025-05-06T14:15:22Z",
"modifiedDate": "2025-05-06T14:15:22Z",
"status": 1,
"shopType": 1
}
]
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | shop details display | reviewsShopGetAllResp |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Get Shop
Code samples
# You can also use wget
curl -X GET /shop/{shopId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET /shop/{shopId} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/shop/{shopId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get '/shop/{shopId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('/shop/{shopId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/shop/{shopId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/shop/{shopId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/shop/{shopId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /shop/{shopId}
Implementation Notes:
This endpoint retrieves all details for the specified shopID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
shopId | path | integer | true | Enter shopId |
Example responses
200 Response
{
"shopId": 1,
"hotelCodes": [
1,
123
],
"sourceCodes": [
1,
283
],
"shopName": "Abc",
"userId": 1,
"userName": "gokul@aggregateintelligence.in",
"createdDate": "2023-05-10T06:12:58.097Z",
"modifiedDate": "2023-05-10T06:12:58.097Z",
"status": 1,
"shopType": 1
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | shop details display | reviewsShopGetResp |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Update Shop
Code samples
# You can also use wget
curl -X PUT /shop/{shopId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
PUT /shop/{shopId} HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"shopName": "Abc",
"hotelCodes": [
1,
123
],
"sourceCodes": [
1,
283
],
"shopType": 1
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/shop/{shopId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.put '/shop/{shopId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.put('/shop/{shopId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','/shop/{shopId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/shop/{shopId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/shop/{shopId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /shop/{shopId}
Implementation Notes:
This method enables you to edit a shop by providing the shopID as an input.
Body parameter
{
"shopName": "Abc",
"hotelCodes": [
1,
123
],
"sourceCodes": [
1,
283
],
"shopType": 1
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
shopId | path | integer | true | Enter shopId |
body | body | createShopReq | false | none |
Example responses
200 Response
{
"message": "Shops details updated successfully"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Updated | reviewsShopPutResp |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
404 | Not Found | Not found | None |
500 | Internal Server Error | Internal Server Error | None |
Delete Shop
Code samples
# You can also use wget
curl -X DELETE /shop/{shopId} \
-H 'Authorization: API_KEY'
DELETE /shop/{shopId} HTTP/1.1
const headers = {
'Authorization':'API_KEY'
};
fetch('/shop/{shopId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'API_KEY'
}
result = RestClient.delete '/shop/{shopId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'API_KEY'
}
r = requests.delete('/shop/{shopId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','/shop/{shopId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/shop/{shopId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/shop/{shopId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /shop/{shopId}
This method allows you to delete a shop using the shopID of the review shop.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
shopId | path | integer | true | Enter shopId |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Deleted | None |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Review Schedules
Create Schedule
Code samples
# You can also use wget
curl -X POST /schedule \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST /schedule HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"scheduleName": "X-Mas",
"shopId": 1234,
"year": "*",
"month": "*",
"dow": "*",
"day": "*",
"hour": "1",
"minute": "00",
"seconds": "00",
"startDate": "2025-05-06",
"endDate": "2025-05-06"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/schedule',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/schedule',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('/schedule', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/schedule', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/schedule");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/schedule", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /schedule
Implementation Notes:
This endpoint allows you to create custom schedules for executing review shops at specified dates and times.
Parameters
- Year: Specifies the years for scheduling.
- "*": No specific year
- "2016": Only in 2016
- "2016, 2017": In 2016 and 2017
- Month: Specifies the months for scheduling.
- "*": All 12 months
- "1": January
- "2": February
- "3": March
- "4": April
- "5": May
- "6": June
- "7": July
- "8": August
- "9": September
- "10": October
- "11": November
- "12": December
- "1,3": January and March
- Day of Week: Specifies the days of the week for scheduling.
- "*": All days
- "1": Monday
- "2": Tuesday
- "3": Wednesday
- "4": Thursday
- "5": Friday
- "6": Saturday
- "0": Sunday
- "1,3,5": Monday, Wednesday, and Friday
- Day: Specifies the days of the month for scheduling.
- "*": All days
- "1-31": Specific days or ranges within the month (e.g., "1,3,5")
- Hour: Specifies the hour of the day (0-23) when the review shop is triggered.
- "*": Any hour within the day
- Minute: Specifies the minute (0-59) within the hour when the review shop is triggered.
- Seconds: Specifies the second (0-59) within the minute when the review shop is triggered
- Status: Indicates whether the schedule is active or inactive.
- 1 - Active
- 0 - Inactive
- startdate: Specifies when the schedule should start.
- enddate: Specifies when the schedule should end. If left undefined, the schedule will run indefinitely.
Note: All schedules are queued every fifteen minutes. Therefore, jobs scheduled within the current fifteen minutes will run from the next hour.
Mandatory Fields:
- scheduleName
- shopId
- year
- month
- dow
- day
- hour
- minute
- seconds
- startDate
Body parameter
{
"scheduleName": "X-Mas",
"shopId": 1234,
"year": "*",
"month": "*",
"dow": "*",
"day": "*",
"hour": "1",
"minute": "00",
"seconds": "00",
"startDate": "2025-05-06",
"endDate": "2025-05-06"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | createScheduleReq | false | none |
Example responses
201 Response
{
"message": "Schedule details inserted successfully!",
"scheduleId": 2233
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Created | createscheduleRes |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
404 | Not Found | Not found | None |
500 | Internal Server Error | Internal Server Error | None |
Get All Schedules
Code samples
# You can also use wget
curl -X GET /schedule/list \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET /schedule/list HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/schedule/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get '/schedule/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('/schedule/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/schedule/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/schedule/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/schedule/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /schedule/list
Implementation Notes:
This API call retrieves the list of schedules defined in your account. You can fetch schedule details for a specific shop by providing the shopId. If no shopId is provided, all schedules will be displayed.
Parameters:
- shopId: The identifier of the shop for which to retrieve schedules. If omitted, schedules for all shops will be shown.
- SchedulesPerPage: Specifies the number of records (schedules) to display per page, helping to limit the number of records fetched at one time.
- pageNumber: Determines the page number of the results to view.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
shopId | query | integer | false | Enter shopId |
schedulesPerPage | query | integer | false | The number of items to display in a page |
pageNumber | query | integer | false | Indicates the current page number |
Example responses
200 Response
[
{
"totalRecords": 2,
"fetchedRecords": 2,
"totalPages": 1,
"currentPage": 1,
"pageSize": 10,
"schedules": [
{
"scheduleId": 1,
"scheduleName": "X-Mas",
"shopId": 1234,
"year": "*",
"month": "*",
"dow": "*",
"day": "*",
"hour": "1",
"minute": "*",
"seconds": "*",
"startDate": "2025-05-06",
"endDate": "2025-05-06"
}
]
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | schedulesGetAllResp |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Get Schedule
Code samples
# You can also use wget
curl -X GET /schedule/{scheduleId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET /schedule/{scheduleId} HTTP/1.1
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/schedule/{scheduleId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get '/schedule/{scheduleId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('/schedule/{scheduleId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','/schedule/{scheduleId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/schedule/{scheduleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/schedule/{scheduleId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /schedule/{scheduleId}
Implementation Notes:
This API call retrieves the details of a specific schedule based on the provided schedule ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
scheduleId | path | integer | true | Enter scheduleId |
Example responses
200 Response
[
{
"scheduleId": 16,
"scheduleName": "testingschedule",
"shopId": 23,
"month": "12",
"dayOfWeek": "6",
"day": "20",
"hour": "20",
"minute": "30",
"startDate": "2023-30-12",
"endDate": "2023-30-14",
"createdDate": "2023-04-28T09:57:19.347Z",
"modifiedDate": "2023-04-28T09:57:19.347Z",
"status": 1
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | scheduleGetResp |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Update Schedule
Code samples
# You can also use wget
curl -X PUT /schedule/{scheduleId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
PUT /schedule/{scheduleId} HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"scheduleName": "X-Mas",
"year": "*",
"month": "*",
"dow": "*",
"day": "*",
"hour": "1",
"minute": "00",
"seconds": "00",
"startDate": "2025-05-06",
"endDate": "2025-05-06"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/schedule/{scheduleId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.put '/schedule/{scheduleId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.put('/schedule/{scheduleId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','/schedule/{scheduleId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/schedule/{scheduleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/schedule/{scheduleId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /schedule/{scheduleId}
Implementation Notes:
This method enables you to edit a schedule by providing the scheduleID as an input.
Body parameter
{
"scheduleName": "X-Mas",
"year": "*",
"month": "*",
"dow": "*",
"day": "*",
"hour": "1",
"minute": "00",
"seconds": "00",
"startDate": "2025-05-06",
"endDate": "2025-05-06"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
scheduleId | path | integer | true | Enter your scheduleId |
body | body | putScheduleReq | false | none |
Example responses
200 Response
{
"message": "Schedules details updated successfully"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Updated | scheduleputResp |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Delete Schedule
Code samples
# You can also use wget
curl -X DELETE /schedule/{scheduleId} \
-H 'Authorization: API_KEY'
DELETE /schedule/{scheduleId} HTTP/1.1
const headers = {
'Authorization':'API_KEY'
};
fetch('/schedule/{scheduleId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'API_KEY'
}
result = RestClient.delete '/schedule/{scheduleId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'API_KEY'
}
r = requests.delete('/schedule/{scheduleId}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','/schedule/{scheduleId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/schedule/{scheduleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/schedule/{scheduleId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /schedule/{scheduleId}
Implementation Notes:
This endpoint allows you to delete an existing schedule by providing the scheduleID as an input.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
scheduleId | path | integer | true | Enter your scheduleId |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Deleted | None |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Shop Status
Get Shop Status
Code samples
# You can also use wget
curl -X POST /shop/status \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST /shop/status HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"shopId": 6,
"scheduleId": 47,
"sinceDate": "2025-05-06"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/shop/status',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/shop/status',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('/shop/status', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/shop/status', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/shop/status");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/shop/status", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /shop/status
Implementation Notes:
This method retrieves the status of a specified shopID, indicating whether the shop is completed or still in progress
Mandatory Fields:
- shopId
- scheduleId
Status Codes:
- 1 - In-progress
- 2 - Completed
- 3 - Terminated with errors
- 4 - Terminated, No credits available
Body parameter
{
"shopId": 6,
"scheduleId": 47,
"sinceDate": "2025-05-06"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | shopStatusReq | false | none |
Example responses
200 Response
[
{
"shopId": 1,
"scheduleId": 2,
"statusMessage": "InProgress"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | shop status display | shopstatusList |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
404 | Not Found | Not Found | None |
500 | Internal Server Error | Internal Server Error | None |
Reviews Summary and Details
Get Reviews Summary
Code samples
# You can also use wget
curl -X POST /reviews/summary \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST /reviews/summary HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"hotelCodes": [
2005,
3960748
],
"sourceCodes": [
1,
283
],
"shopId": 10
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/reviews/summary',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/reviews/summary',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('/reviews/summary', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/reviews/summary', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/reviews/summary");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/reviews/summary", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /reviews/summary
Implementation Notes:
This method allows you to retrieve a Reviews Summary for a specific hotel by providing the hotelcodes, sourcecodes, and shopid.
Mandatory Fields:
- hotelCodes
- shopId
Additionally, this endpoint enables you to configure the following options:
- reviewsPerPage: Specifies the number of records (reviews summary) to display per page, helping to limit the number of records fetched at one time.
- pageNumber: Determines the page number of the results to view.
Body parameter
{
"hotelCodes": [
2005,
3960748
],
"sourceCodes": [
1,
283
],
"shopId": 10
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
reviewsPerPage | query | integer | false | The number of items to display in a page |
pageNumber | query | integer | false | Indicates the current page number |
body | body | reviewsSummaryReq | false | none |
Example responses
200 Response
[
{
"totalRecords": 2,
"fetchedRecords": 2,
"totalPages": 1,
"currentPage": 1,
"pageSize": 10,
"summaryDetails": [
{
"hotelCode": 3960748,
"websiteCode": 1,
"hotelReview": 6,
"outOfReview": 10,
"totalReviewCount": 3,
"cleanliness": 7.4,
"comfort": 8,
"facilities": 4.8,
"staff": 7.4,
"valueForMoney": 4.2,
"freeWifi": 4.6,
"location": 4.2,
"foodDrinks": 6,
"room": 5,
"hotelCondition": 4.8,
"service": 7.4,
"pool": 5,
"sleepQuality": 5,
"statusCode": 200,
"reviewUrl": "https://www.expedia.co.in/Guadalajara-Hotels-Expo-Satelite-Hotel-Suites.h91821001.Hotel-Information",
"dtCollected": "2025-05-06T14:15:22Z",
"hotelId": 91821001,
"userId": 7,
"queueId": 1986,
"shopId": 10,
"rank": 10,
"city": "Guadalajara",
"websiteName": "Expedia",
"starRating": 7
}
]
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Ok | reviewsSummaryResp |
400 | Bad Request | Validation Error | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Get Reviews Details
Code samples
# You can also use wget
curl -X POST /reviews/details \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST /reviews/details HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"hotelCode": 3960748,
"sourceCodes": [
1,
283
],
"shopId": 10,
"reviewDateFilter": {
"start": "2025-05-06",
"end": "2025-05-06"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/reviews/details',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/reviews/details',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('/reviews/details', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/reviews/details', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/reviews/details");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/reviews/details", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /reviews/details
Implementation Notes:
This method allows you to retrieve detailed reviews for a specific hotel by providing the hotelcodes, sourcecodes, and shopid. You can also filter the review details by specifying a start and end date.
Mandatory Fields:
- hotelCode
- shopId
Additionally, this endpoint enables you to configure the following options:
- reviewsPerPage: Specifies the number of records (reviews details) to display per page, helping to limit the number of records fetched at one time.
- pageNumber: Determines the page number of the results to view.
Body parameter
{
"hotelCode": 3960748,
"sourceCodes": [
1,
283
],
"shopId": 10,
"reviewDateFilter": {
"start": "2025-05-06",
"end": "2025-05-06"
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
reviewsPerPage | query | integer | false | The number of items to display in a page |
pageNumber | query | integer | false | Indicates the current page number |
body | body | reviewsDetailsReq | false | none |
Example responses
200 Response
{
"totalRecords": 670,
"fetchedRecords": 10,
"totalPages": 67,
"currentPage": 1,
"pageSize": 10,
"reviewDetails": [
{
"hotelCode": 133268,
"websiteCode": 1,
"reviewHeader": "",
"reviewerName": "Peter",
"reviewedDate": "2024-07-22T00:00:00.000Z",
"reviewScore": 10,
"location": null,
"replyFromHotel": "",
"reviewContent": "Great place with nice rooms and beautiful view (both to Mt Kinabalu and Kota Kinabalu). Standard Malaysian breakfast and decent lunch and dinner menu. Staff was very friendly and helpful. The room (104) was very good although there are a few ants around (so make sure not to leave food around). Bed, shower and toilet were nice and clean. Internet worked quite well (not guaranteed in this area). Our best place in Sabah so far (out of 6 good hotels).",
"tripType": "Travelled with partner",
"language": "en",
"reviewId": "669dd2dc198e214ac36d85f4",
"hotelId": 8011143,
"dtCollected": "2024-09-03T09:35:52.353Z",
"dtModified": null,
"userId": 9,
"queueId": 13939,
"shopId": 1110,
"url": "https://www.expedia.co.in/Kota-Kinabalu-Hotels-Kasih-Sayang-Health-Resort.h8011143.Hotel-Information",
"websiteName": "EXPEDIA",
"properties": null,
"polarity": null,
"sentimentScore": null,
"authorCountry": "",
"breakfastRating": null,
"cleanlinessRating": null,
"locationRating": null,
"roomsRating": null,
"serviceRating": null,
"sleepQualityRating": null,
"spaRating": null,
"valueRating": null,
"reviewsCount": 28,
"reviewerType": null,
"respondUrl": null,
"outOfReview": 10
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Ok | reviewsDetailsResp |
400 | Bad Request | Validation Error | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Get Delta Reviews Details
Code samples
# You can also use wget
curl -X POST /delta/reviews/details \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST /delta/reviews/details HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"shopId": 10
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/delta/reviews/details',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/delta/reviews/details',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('/delta/reviews/details', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/delta/reviews/details', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/delta/reviews/details");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/delta/reviews/details", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /delta/reviews/details
Implementation Notes:
This method enables you to fetch Delta Review Details (reviews that are newly added since your last retrieval) for a specific shopid.
Mandatory Fields:
- shopId
Body parameter
{
"shopId": 10
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
reviewsPerPage | query | integer | false | The number of items to display in a page |
pageNumber | query | integer | false | Indicates the current page number |
body | body | reviewsDeltaReq | false | none |
Example responses
200 Response
{
"totalRecords": 670,
"fetchedRecords": 10,
"totalPages": 67,
"currentPage": 1,
"pageSize": 10,
"reviewDeltaDetails": [
{
"hotelCode": 133268,
"websiteCode": 1,
"reviewHeader": "",
"reviewerName": "Peter",
"reviewedDate": "2024-07-22T00:00:00.000Z",
"reviewScore": 10,
"location": null,
"replyFromHotel": "",
"reviewContent": "Great place with nice rooms and beautiful view (both to Mt Kinabalu and Kota Kinabalu). Standard Malaysian breakfast and decent lunch and dinner menu. Staff was very friendly and helpful. The room (104) was very good although there are a few ants around (so make sure not to leave food around). Bed, shower and toilet were nice and clean. Internet worked quite well (not guaranteed in this area). Our best place in Sabah so far (out of 6 good hotels).",
"tripType": "Travelled with partner",
"language": "en",
"reviewId": "669dd2dc198e214ac36d85f4",
"hotelId": 8011143,
"dtCollected": "2024-09-03T09:35:52.353Z",
"dtModified": null,
"userId": 9,
"queueId": 13939,
"shopId": 1110,
"url": "https://www.expedia.co.in/Kota-Kinabalu-Hotels-Kasih-Sayang-Health-Resort.h8011143.Hotel-Information",
"websiteName": "EXPEDIA",
"properties": null,
"polarity": null,
"sentimentScore": null,
"authorCountry": "",
"breakfastRating": null,
"cleanlinessRating": null,
"locationRating": null,
"roomsRating": null,
"serviceRating": null,
"sleepQualityRating": null,
"spaRating": null,
"valueRating": null,
"reviewsCount": 28,
"reviewerType": null,
"respondUrl": null,
"outOfReview": 10
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Ok | reviewsDeltaResp |
204 | No Content | No Content | None |
400 | Bad Request | Validation Error | None |
401 | Unauthorized | Authorization Failed | None |
500 | Internal Server Error | Internal Server Error | None |
Synopsis
POST Synopsis Last One Year
Code samples
# You can also use wget
curl -X POST /synopsis/lastoneyear \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST /synopsis/lastoneyear HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"hotelCodes": [
72110
],
"sourceCodes": [
1
],
"shopId": 537
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/synopsis/lastoneyear',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/synopsis/lastoneyear',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('/synopsis/lastoneyear', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/synopsis/lastoneyear', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/synopsis/lastoneyear");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/synopsis/lastoneyear", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /synopsis/lastoneyear
This method retrieves the number of reviews available for a specific hotel over the past year by providing the hotelcodes, sourcecodes, and shopid. The result will include a month-by-month count of reviews, organized by each hotel and source.
Mandatory Fields:
- hotelCodes
- shopId
Body parameter
{
"hotelCodes": [
72110
],
"sourceCodes": [
1
],
"shopId": 537
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | synopsisReq | false | none |
Example responses
200 Response
{
"websiteName": "Makemytrip",
"counts": {
"2024-02": 2
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Ok | synopsisResp |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
404 | Not Found | Not found | None |
500 | Internal Server Error | Internal Server Error | None |
Hooks
Create Hook
Code samples
# You can also use wget
curl -X POST /hooks/shopalerts \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST /hooks/shopalerts HTTP/1.1
Content-Type: application/json
Accept: application/json
const inputBody = '{
"endpoint": "www.sample.com",
"authType": "Basic",
"userName": "username",
"password": "password",
"token": ""
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('/hooks/shopalerts',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post '/hooks/shopalerts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('/hooks/shopalerts', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','/hooks/shopalerts', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("/hooks/shopalerts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/hooks/shopalerts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /hooks/shopalerts
Implementation Notes:
This API call uses a Web Hook to deliver the Queue status to a specified endpoint. Once a hook is defined, the status whether a successful completion will be sent to your endpoint.
Mandatory Fields:
- Endpoint
- Authtype (Can be “none”, “basic”, “querystring”, “authheader”, “header”, “bearer”)
- Token OR Username & Password
Body parameter
{
"endpoint": "www.sample.com",
"authType": "Basic",
"userName": "username",
"password": "password",
"token": ""
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | reviewhookreq | false | none |
Example responses
201 Response
{
"requestId": 1,
"message": "Hook created successfully"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | Success | reviewhookresp |
400 | Bad Request | Bad Request | None |
401 | Unauthorized | Authorization Failed | None |
409 | Conflict | Already Exists | None |
500 | Internal Server Error | Internal Server Error | None |
Schemas
userauth
{
"userName": "string",
"password": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
userName | string | false | none | It represents the username of the user. |
password | string | false | none | It represents the password associated with the user. |
userresp
{
"accessToken": "string",
"tokenType": "Bearer",
"expiresIn": "1d",
"userName": "string",
".issued": "2025-05-06T14:15:22Z",
".expires": "2025-05-06T14:15:22Z"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
accessToken | string | false | none | An access token is a credential that is used to authenticate and authorize access to a specific resource. |
tokenType | string | false | none | It represents the type of token being used. |
expiresIn | string | false | none | It represents expiration time of the access token. |
userName | string | false | none | It represents the username associated with the user. |
.issued | string(date-time) | false | none | It represents the timestamp when the access token was issued. |
.expires | string(date-time) | false | none | It represents the timestamp when the access token will expire. |
userregreq
{
"userName": "string",
"password": "string",
"validTill": "2024-12-31",
"monthlyCalls": 0,
"weeklyCalls": 0,
"dailyCalls": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
userName | string | false | none | It represents the username associated with the user. |
password | string | false | none | It represents the password associated with the user. |
validTill | string(date) | false | none | none |
monthlyCalls | number | false | none | none |
weeklyCalls | number | false | none | none |
dailyCalls | number | false | none | none |
reviewsSummaryReq
{
"hotelCodes": [
2005,
3960748
],
"sourceCodes": [
1,
283
],
"shopId": 10
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
hotelCodes | [number] | false | none | Unique code of the hotel to fetch reviews for (as obtained e.g from POST /entity/hotels ) |
sourceCodes | [number] | false | none | Optionally filter by reviews from these specific website/sources only (as obtained from GET /references/sources ). By default, it will fetch from all sources available. |
shopId | integer | false | none | Identifier of the shop. |
reviewsDetailsReq
{
"hotelCode": 3960748,
"sourceCodes": [
1,
283
],
"shopId": 10,
"reviewDateFilter": {
"start": "2025-05-06",
"end": "2025-05-06"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
hotelCode | number | false | none | Unique code of the hotel to fetch reviews for (as obtained e.g from POST /entity/hotels ) |
sourceCodes | [number] | false | none | Optionally filter by reviews from these specific website/sources only (as obtained from GET /references/sources ). By default, it will fetch from all sources available. |
shopId | number | false | none | none |
reviewDateFilter | object | false | none | none |
» start | string(date) | true | none | Specified date should be MM/DD/YYYY format |
» end | string(date) | false | none | Specified date should be MM/DD/YYYY format. Note that , if unspecified, this default is today's date |
reviewsDeltaReq
{
"shopId": 10
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
shopId | number | false | none | none |
reviewsSummaryResp
[
{
"totalRecords": 2,
"fetchedRecords": 2,
"totalPages": 1,
"currentPage": 1,
"pageSize": 10,
"summaryDetails": [
{
"hotelCode": 3960748,
"websiteCode": 1,
"hotelReview": 6,
"outOfReview": 10,
"totalReviewCount": 3,
"cleanliness": 7.4,
"comfort": 8,
"facilities": 4.8,
"staff": 7.4,
"valueForMoney": 4.2,
"freeWifi": 4.6,
"location": 4.2,
"foodDrinks": 6,
"room": 5,
"hotelCondition": 4.8,
"service": 7.4,
"pool": 5,
"sleepQuality": 5,
"statusCode": 200,
"reviewUrl": "https://www.expedia.co.in/Guadalajara-Hotels-Expo-Satelite-Hotel-Suites.h91821001.Hotel-Information",
"dtCollected": "2025-05-06T14:15:22Z",
"hotelId": 91821001,
"userId": 7,
"queueId": 1986,
"shopId": 10,
"rank": 10,
"city": "Guadalajara",
"websiteName": "Expedia",
"starRating": 7
}
]
}
]
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalRecords | number | false | none | Total number of records available. |
fetchedRecords | number | false | none | Number of records fetched in the current response. |
totalPages | number | false | none | Total number of pages available. |
currentPage | number | false | none | Current page number. |
pageSize | number | false | none | Number of records per page. |
summaryDetails | [object] | false | none | It provides a summary of reviews. |
» hotelCode | number | false | none | A unique identifier for the hotel associated with the review. |
» websiteCode | number | false | none | Code of the website where the review was posted. |
» hotelReview | number | false | none | It represents the reviews available for the hotel. |
» outOfReview | number | false | none | It represents the maximum score or rating that can be given in the review (e.g., a review scale of 1 to 5) |
» totalReviewCount | number | false | none | none |
» cleanliness | number | false | none | It represents the rating given to the cleanliness of the hotel by the reviewer. |
» comfort | number | false | none | It represents the rating given to the comfort level of the hotel by the reviewer. |
» facilities | number | false | none | none |
» staff | number | false | none | It represents the rating given to the hotel staff by the reviewer. |
» valueForMoney | number | false | none | It represents rating given to the value for money provided by the hotel according to the reviewer. |
» freeWifi | number | false | none | It represents the rating given to the quality of free WiFi provided by the hotel according to the reviewer. |
» location | number | false | none | It represents the rating given to the hotel's location by the reviewer. |
» foodDrinks | number | false | none | none |
» room | number | false | none | none |
» hotelCondition | number | false | none | It represents the score or rating given to the overall condition of the hotel by the reviewer. |
» service | number | false | none | It represents the score or rating given to the specific service provided by the hotel according to the reviewer. |
» pool | number | false | none | none |
» sleepQuality | number | false | none | none |
» statusCode | number | false | none | none |
» reviewUrl | string | false | none | It represents the URL or link to the full review. |
» dtCollected | string(date-time) | false | none | none |
» hotelId | string | false | none | none |
» userId | number | false | none | It reprents the id of the user associated with the shop reviews. |
» queueId | number | false | none | none |
» shopId | number | false | none | The unique identifier of the shop. |
» rank | string | false | none | It represents rank or position of the hotel among other hotels. |
» city | string | false | none | It represents the city where the hotel is located. |
» websiteName | string | false | none | It represents name of the website from which the review originated. |
» starRating | number | false | none | It represents the star rating of the hotel. |
reviewsDetailsResp
{
"totalRecords": 670,
"fetchedRecords": 10,
"totalPages": 67,
"currentPage": 1,
"pageSize": 10,
"reviewDetails": [
{
"hotelCode": 133268,
"websiteCode": 1,
"reviewHeader": "",
"reviewerName": "Peter",
"reviewedDate": "2024-07-22T00:00:00.000Z",
"reviewScore": 10,
"location": null,
"replyFromHotel": "",
"reviewContent": "Great place with nice rooms and beautiful view (both to Mt Kinabalu and Kota Kinabalu). Standard Malaysian breakfast and decent lunch and dinner menu. Staff was very friendly and helpful. The room (104) was very good although there are a few ants around (so make sure not to leave food around). Bed, shower and toilet were nice and clean. Internet worked quite well (not guaranteed in this area). Our best place in Sabah so far (out of 6 good hotels).",
"tripType": "Travelled with partner",
"language": "en",
"reviewId": "669dd2dc198e214ac36d85f4",
"hotelId": 8011143,
"dtCollected": "2024-09-03T09:35:52.353Z",
"dtModified": null,
"userId": 9,
"queueId": 13939,
"shopId": 1110,
"url": "https://www.expedia.co.in/Kota-Kinabalu-Hotels-Kasih-Sayang-Health-Resort.h8011143.Hotel-Information",
"websiteName": "EXPEDIA",
"properties": null,
"polarity": null,
"sentimentScore": null,
"authorCountry": "",
"breakfastRating": null,
"cleanlinessRating": null,
"locationRating": null,
"roomsRating": null,
"serviceRating": null,
"sleepQualityRating": null,
"spaRating": null,
"valueRating": null,
"reviewsCount": 28,
"reviewerType": null,
"respondUrl": null,
"outOfReview": 10
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalRecords | number | false | none | Total number of records available. |
fetchedRecords | number | false | none | Number of records fetched in the current response. |
totalPages | number | false | none | Total number of pages available. |
currentPage | number | false | none | Current page number. |
pageSize | number | false | none | Number of records per page. |
reviewDetails | [object] | false | none | List of review details. |
» hotelCode | number | false | none | Code of the hotel. |
» websiteCode | number | false | none | Code of the website where the review was posted. |
» reviewHeader | string | false | none | Header of the review. |
» reviewerName | string | false | none | Name of the reviewer. |
» reviewedDate | string(date-time) | false | none | Date when the review was posted. |
» reviewScore | number | false | none | Score given in the review. |
» location | string | false | none | Location of the reviewer (if available). |
» replyFromHotel | string | false | none | Reply from the hotel to the review. |
» reviewContent | string | false | none | Content of the review. |
» tripType | string | false | none | Type of trip for which the review was written. |
» language | string | false | none | Language of the review. |
» reviewId | string | false | none | Unique identifier of the review. |
» hotelId | string | false | none | Unique identifier of the hotel. |
» dtCollected | string(date-time) | false | none | Date and time when the review was collected. |
» dtModified | string(date-time) | false | none | Date and time when the review was last modified (if applicable). |
» userId | number | false | none | Unique identifier of the user who wrote the review. |
» queueId | number | false | none | Identifier for the review queue. |
» shopId | number | false | none | Identifier for the shop. |
» url | string | false | none | URL where the review can be found. |
» websiteName | string | false | none | Name of the website where the review was posted. |
» properties | string | false | none | Additional properties related to the review. |
» polarity | string | false | none | Polarity of the review (if applicable). |
» sentimentScore | number | false | none | Sentiment score of the review (if applicable). |
» authorCountry | string | false | none | Country of the reviewer. |
» breakfastRating | number | false | none | Rating for breakfast provided by the hotel. |
» cleanlinessRating | number | false | none | Rating for cleanliness provided by the hotel. |
» locationRating | number | false | none | Rating for the location of the hotel. |
» roomsRating | number | false | none | Rating for the rooms provided by the hotel. |
» serviceRating | number | false | none | Rating for the service provided by the hotel. |
» sleepQualityRating | number | false | none | Rating for sleep quality provided by the hotel. |
» spaRating | number | false | none | Rating for the spa facilities provided by the hotel. |
» valueRating | number | false | none | Rating for the value of the hotel stay. |
» reviewsCount | number | false | none | Number of reviews for the hotel. |
» reviewerType | string | false | none | Type of reviewer (if applicable). |
» respondUrl | string | false | none | URL where responses to the review can be found (if applicable). |
» outOfReview | number | false | none | Maximum score out of which the review score is given. |
reviewsDeltaResp
{
"totalRecords": 670,
"fetchedRecords": 10,
"totalPages": 67,
"currentPage": 1,
"pageSize": 10,
"reviewDeltaDetails": [
{
"hotelCode": 133268,
"websiteCode": 1,
"reviewHeader": "",
"reviewerName": "Peter",
"reviewedDate": "2024-07-22T00:00:00.000Z",
"reviewScore": 10,
"location": null,
"replyFromHotel": "",
"reviewContent": "Great place with nice rooms and beautiful view (both to Mt Kinabalu and Kota Kinabalu). Standard Malaysian breakfast and decent lunch and dinner menu. Staff was very friendly and helpful. The room (104) was very good although there are a few ants around (so make sure not to leave food around). Bed, shower and toilet were nice and clean. Internet worked quite well (not guaranteed in this area). Our best place in Sabah so far (out of 6 good hotels).",
"tripType": "Travelled with partner",
"language": "en",
"reviewId": "669dd2dc198e214ac36d85f4",
"hotelId": 8011143,
"dtCollected": "2024-09-03T09:35:52.353Z",
"dtModified": null,
"userId": 9,
"queueId": 13939,
"shopId": 1110,
"url": "https://www.expedia.co.in/Kota-Kinabalu-Hotels-Kasih-Sayang-Health-Resort.h8011143.Hotel-Information",
"websiteName": "EXPEDIA",
"properties": null,
"polarity": null,
"sentimentScore": null,
"authorCountry": "",
"breakfastRating": null,
"cleanlinessRating": null,
"locationRating": null,
"roomsRating": null,
"serviceRating": null,
"sleepQualityRating": null,
"spaRating": null,
"valueRating": null,
"reviewsCount": 28,
"reviewerType": null,
"respondUrl": null,
"outOfReview": 10
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalRecords | number | false | none | Total number of records available. |
fetchedRecords | number | false | none | Number of records fetched in the current response. |
totalPages | number | false | none | Total number of pages available. |
currentPage | number | false | none | Current page number. |
pageSize | number | false | none | Number of records per page. |
reviewDeltaDetails | [object] | false | none | List of review details. |
» hotelCode | number | false | none | Code of the hotel. |
» websiteCode | number | false | none | Code of the website where the review was posted. |
» reviewHeader | string | false | none | Header of the review. |
» reviewerName | string | false | none | Name of the reviewer. |
» reviewedDate | string(date-time) | false | none | Date when the review was posted. |
» reviewScore | number | false | none | Score given in the review. |
» location | string | false | none | Location of the reviewer (if available). |
» replyFromHotel | string | false | none | Reply from the hotel to the review. |
» reviewContent | string | false | none | Content of the review. |
» tripType | string | false | none | Type of trip for which the review was written. |
» language | string | false | none | Language of the review. |
» reviewId | string | false | none | Unique identifier of the review. |
» hotelId | string | false | none | Unique identifier of the hotel. |
» dtCollected | string(date-time) | false | none | Date and time when the review was collected. |
» dtModified | string(date-time) | false | none | Date and time when the review was last modified (if applicable). |
» userId | number | false | none | Unique identifier of the user who wrote the review. |
» queueId | number | false | none | Identifier for the review queue. |
» shopId | number | false | none | Identifier for the shop. |
» url | string | false | none | URL where the review can be found. |
» websiteName | string | false | none | Name of the website where the review was posted. |
» properties | string | false | none | Additional properties related to the review. |
» polarity | string | false | none | Polarity of the review (if applicable). |
» sentimentScore | number | false | none | Sentiment score of the review (if applicable). |
» authorCountry | string | false | none | Country of the reviewer. |
» breakfastRating | number | false | none | Rating for breakfast provided by the hotel. |
» cleanlinessRating | number | false | none | Rating for cleanliness provided by the hotel. |
» locationRating | number | false | none | Rating for the location of the hotel. |
» roomsRating | number | false | none | Rating for the rooms provided by the hotel. |
» serviceRating | number | false | none | Rating for the service provided by the hotel. |
» sleepQualityRating | number | false | none | Rating for sleep quality provided by the hotel. |
» spaRating | number | false | none | Rating for the spa facilities provided by the hotel. |
» valueRating | number | false | none | Rating for the value of the hotel stay. |
» reviewsCount | number | false | none | Number of reviews for the hotel. |
» reviewerType | string | false | none | Type of reviewer (if applicable). |
» respondUrl | string | false | none | URL where responses to the review can be found (if applicable). |
» outOfReview | number | false | none | Maximum score out of which the review score is given. |
reviewhookreq
{
"endpoint": "www.sample.com",
"authType": "Basic",
"userName": "username",
"password": "password",
"token": ""
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
endpoint | string | false | none | none |
authType | string | false | none | none |
userName | string | false | none | none |
password | string | false | none | none |
token | string | false | none | none |
reviewhookresp
{
"requestId": 1,
"message": "Hook created successfully"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
requestId | number | false | none | none |
message | string | false | none | none |
sourcemapreq
{
"hotelCode": 0,
"sourceCodes": [
0
],
"urls": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
hotelCode | integer | false | none | none |
sourceCodes | [integer] | false | none | none |
urls | [string] | false | none | none |
sourcemapresp
{
"requestId": 0,
"hotelCode": 0,
"sourceCodes": [
0
],
"urls": [
"string"
],
"status": 1,
"approximateTime": 0,
"createdDate": "2024-04-30T08:10:49.835Z"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
requestId | integer | false | none | none |
hotelCode | integer | false | none | none |
sourceCodes | [integer] | false | none | none |
urls | [string] | false | none | none |
status | integer | false | none | none |
approximateTime | integer | false | none | This method provides the approximate turnaround time for the request. The default minimum is 72 hours and will vary based on parameter values |
createdDate | string | false | none | none |
newmapreq
{
"hotelName": "",
"address": "",
"city": "",
"state": "",
"country": "",
"zip": "",
"latitude": 0,
"longitude": 0,
"url": [
"string"
],
"websiteCodes": [
0
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
hotelName | string | false | none | The name of the hotel. |
address | string | false | none | none |
city | string | false | none | none |
state | string | false | none | none |
country | string | false | none | none |
zip | string | false | none | none |
latitude | number | false | none | none |
longitude | number | false | none | none |
url | [string] | false | none | none |
websiteCodes | [integer] | false | none | none |
newmapresp
{
"requestId": 0,
"referenceHotelCodes": [
0
],
"statusCode": 1,
"statusMsg": "string",
"approximateTime": "2025-05-06",
"createdDate": "2024-04-30T08:10:49.835Z"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
requestId | integer | false | none | none |
referenceHotelCodes | [integer] | false | none | none |
statusCode | integer | false | none | none |
statusMsg | string | false | none | none |
approximateTime | string(date) | false | none | none |
createdDate | string | false | none | none |
hotelsReq
{
"hotelName": "Ocean Lodge Santa Monica Beach Hotel",
"city": "Los Angeles",
"state": "California",
"country": "United States of America",
"zip": "90401",
"geoLocationFilter": {
"latitude": "34.01",
"longitude": "-118.49",
"radius": "50km"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
hotelName | string | false | none | The name of the hotel. |
city | string | false | none | Match the hotel in this city. |
state | string | false | none | Match the hotels in this state. |
country | string | false | none | Match the hotels in this country. |
zip | string | false | none | Match the hotels in this zip code (highest priority). |
geoLocationFilter | object | false | none | Filter matched hotels by geolocation. |
» latitude | string | false | none | Latitude of the location. |
» longitude | string | false | none | Longitude of the location. |
» radius | string | false | none | Radius from the location. |
hotelsResp
{
"totalRecords": 10000,
"fetchedRecords": 10,
"totalPages": 1000,
"currentPage": 1,
"pageSize": 10,
"hotels": [
{
"hotelCode": 1362151,
"hotelName": "Ocean Lodge Santa Monica Beach Hotel",
"address": "1667 Ocean Avenue",
"city": "Los Angeles",
"state": "California",
"country": "United States of America",
"location": {
"latitude": "34.01012891",
"longitude": "-118.49312648"
},
"zip": "90401",
"matchScore": 72.228226,
"reviewsCount": 0
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalRecords | number | false | none | Total number of records available. |
fetchedRecords | number | false | none | Number of records fetched in the current response. |
totalPages | number | false | none | Total number of pages available. |
currentPage | number | false | none | Current page number. |
pageSize | number | false | none | Number of records per page. |
hotels | [object] | false | none | List of hotels. |
» hotelCode | number | false | none | Code of the hotel. |
» hotelName | string | false | none | Name of the hotel. |
» address | string | false | none | Address of the hotel. |
» city | string | false | none | City of the hotel. |
» state | string | false | none | State of the hotel. |
» country | string | false | none | Country of the hotel. |
» location | object | false | none | Geolocation of the hotel. |
»» latitude | string | false | none | Latitude of the hotel location. |
»» longitude | string | false | none | Longitude of the hotel location. |
» zip | string | false | none | Zip code of the hotel. |
» matchScore | number | false | none | Match score for the hotel. |
» reviewsCount | number | false | none | Number of reviews for the hotel. |
hotelinfo
{
"hotelCode": 2005,
"hotelCodes": [
0
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
hotelCode | number | false | none | none |
hotelCodes | [number] | false | none | none |
hotelinforesp
{
"hotelCode": 0,
"hotelName": "string",
"address": "string",
"city": "string",
"state": "string",
"country": "string",
"starRating": "string",
"zip": "string",
"lat": 0,
"long": 0,
"sources": {
"websiteCode": 0,
"websiteName": "string",
"url": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
hotelCode | number | false | none | A unique identifier for the hotel. |
hotelName | string | false | none | The name of the hotel. |
address | string | false | none | The street address of the hotel. |
city | string | false | none | The city where the hotel is located. |
state | string | false | none | The state where the hotel is located. |
country | string | false | none | The country where the hotel is located. |
starRating | string | false | none | It represents the star rating of the hotel. |
zip | string | false | none | The postal or zip code of the hotel's location. |
lat | number | false | none | Latitude of the given point. |
long | number | false | none | Longitude of the given point. |
sources | object | false | none | It represents the source. |
» websiteCode | number | false | none | It represents code of the website. |
» websiteName | string | false | none | It represents name of the website. |
» url | string | false | none | It represents URL of the website |
createScheduleReq
{
"scheduleName": "X-Mas",
"shopId": 1234,
"year": "*",
"month": "*",
"dow": "*",
"day": "*",
"hour": "1",
"minute": "00",
"seconds": "00",
"startDate": "2025-05-06",
"endDate": "2025-05-06"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
scheduleName | string | false | none | Enter the name of the schedule. |
shopId | number | false | none | Unique code of the shopId which match from shops |
year | string | false | none | The year component of the schedule. Use '*' to match any year. |
month | string | false | none | The month component of the schedule. Use '*' to match any month. |
dow | string | false | none | The day of the week component of the schedule. Use '*' to match any day of the week. |
day | string | false | none | The day of the month component of the schedule. Use '*' to match any day of the month. |
hour | string | false | none | The hour component of the schedule. Use '*' to match any hour of the day. |
minute | string | false | none | The minute component of the schedule. Use '*' to match any minute of the hour. |
seconds | string | false | none | The second component of the schedule. Use '*' to match any second of the minute. |
startDate | string(date) | false | none | The start date of the schedule. |
endDate | string(date) | false | none | The end date of the schedule. |
createscheduleRes
{
"message": "Schedule details inserted successfully!",
"scheduleId": 2233
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | none |
scheduleId | number | false | none | none |
scheduleGetResp
[
{
"scheduleId": 16,
"scheduleName": "testingschedule",
"shopId": 23,
"month": "12",
"dayOfWeek": "6",
"day": "20",
"hour": "20",
"minute": "30",
"startDate": "2023-30-12",
"endDate": "2023-30-14",
"createdDate": "2023-04-28T09:57:19.347Z",
"modifiedDate": "2023-04-28T09:57:19.347Z",
"status": 1
}
]
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
scheduleId | number | false | none | show unique scheduleId |
scheduleName | string | false | none | show scheduleName |
shopId | number | false | none | show unique shopId |
month | string | false | none | show month |
dayOfWeek | string | false | none | show dayOfWeek (range 0 to 6) |
day | string | false | none | show day (range 1 to 31) |
hour | string | false | none | show hour (range 1 to 23) |
minute | string | false | none | show minute (range 1 to 59) |
startDate | string | false | none | show startDate |
endDate | string | false | none | show endDate (end date is greater than start date) |
createdDate | string | false | none | show createdDate |
modifiedDate | string | false | none | show modifiedDate |
status | number | false | none | active means 1 inactive means 0 |
scheduleputResp
{
"message": "Schedules details updated successfully"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | none |
putScheduleReq
{
"scheduleName": "X-Mas",
"year": "*",
"month": "*",
"dow": "*",
"day": "*",
"hour": "1",
"minute": "00",
"seconds": "00",
"startDate": "2025-05-06",
"endDate": "2025-05-06"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
scheduleName | string | false | none | Enter schedule name |
year | string | false | none | The year component of the schedule. Use '*' to match any year. |
month | string | false | none | The month component of the schedule. Use '*' to match any month. |
dow | string | false | none | The day of the week component of the schedule. Use '*' to match any day of the week. |
day | string | false | none | The day of the month component of the schedule. Use '*' to match any day of the month. |
hour | string | false | none | The hour component of the schedule. Use '*' to match any hour of the day. |
minute | string | false | none | The minute component of the schedule. Use '*' to match any minute of the hour. |
seconds | string | false | none | The second component of the schedule. Use '*' to match any second of the minute. |
startDate | string(date) | false | none | The start date of the schedule. |
endDate | string(date) | false | none | The end date of the schedule. |
schedulesGetAllResp
[
{
"totalRecords": 2,
"fetchedRecords": 2,
"totalPages": 1,
"currentPage": 1,
"pageSize": 10,
"schedules": [
{
"scheduleId": 1,
"scheduleName": "X-Mas",
"shopId": 1234,
"year": "*",
"month": "*",
"dow": "*",
"day": "*",
"hour": "1",
"minute": "*",
"seconds": "*",
"startDate": "2025-05-06",
"endDate": "2025-05-06"
}
]
}
]
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalRecords | number | false | none | Total number of records available. |
fetchedRecords | number | false | none | Number of records fetched in the current response. |
totalPages | number | false | none | Total number of pages available. |
currentPage | number | false | none | Current page number. |
pageSize | number | false | none | Number of records per page. |
schedules | [object] | false | none | none |
» scheduleId | number | false | none | none |
» scheduleName | string | false | none | none |
» shopId | number | false | none | Unique code of the shopId which match from shops |
» year | string | false | none | The year component of the schedule. Use '*' to match any year. |
» month | string | false | none | The month component of the schedule. Use '*' to match any month. |
» dow | string | false | none | The day of the week component of the schedule. Use '*' to match any day of the week. |
» day | string | false | none | The day of the month component of the schedule. Use '*' to match any day of the month. |
» hour | string | false | none | The hour component of the schedule. Use '*' to match any hour of the day. |
» minute | string | false | none | The minute component of the schedule. Use '*' to match any minute of the hour. |
» seconds | string | false | none | The second component of the schedule. Use '*' to match any second of the minute. |
» startDate | string(date) | false | none | The start date of the schedule. |
» endDate | string(date) | false | none | The end date of the schedule. |
createShopReq
{
"shopName": "Abc",
"hotelCodes": [
1,
123
],
"sourceCodes": [
1,
283
],
"shopType": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
shopName | string | false | none | shows the list of shops name |
hotelCodes | [number] | false | none | hotelCodes must be an array |
sourceCodes | [number] | false | none | shows the list of sourceCodes in an array |
shopType | number | false | none | none |
createshopRes
{
"message": "Shops details inserted successfully!",
"shopId": 1122
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | none |
shopId | number | false | none | none |
reviewsShopGetResp
{
"shopId": 1,
"hotelCodes": [
1,
123
],
"sourceCodes": [
1,
283
],
"shopName": "Abc",
"userId": 1,
"userName": "gokul@aggregateintelligence.in",
"createdDate": "2023-05-10T06:12:58.097Z",
"modifiedDate": "2023-05-10T06:12:58.097Z",
"status": 1,
"shopType": 1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
shopId | number | false | none | Shop id will show |
hotelCodes | [number] | false | none | hotelCodes must be an array |
sourceCodes | [number] | false | none | shows the list of sourceCodes min an array |
shopName | string | false | none | shows the list of shops name |
userId | number | false | none | shows the list of |
userName | string | false | none | shows username for Authorization |
createdDate | string | false | none | shows createdDate |
modifiedDate | number | false | none | shows createdDate |
status | number | false | none | status active means 1 inactive means 0 |
shopType | number | false | none | none |
reviewsShopGetAllResp
[
{
"totalRecords": 2,
"fetchedRecords": 2,
"totalPages": 1,
"currentPage": 1,
"pageSize": 10,
"shops": [
{
"shopId": 20,
"hotelCodes": [
1,
123
],
"sourceCodes": [
1,
283
],
"shopName": "Abc",
"userId": 1,
"userName": "reviews@ai.com",
"createdDate": "2025-05-06T14:15:22Z",
"modifiedDate": "2025-05-06T14:15:22Z",
"status": 1,
"shopType": 1
}
]
}
]
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalRecords | number | false | none | Total number of records available. |
fetchedRecords | number | false | none | Number of records fetched in the current response. |
totalPages | number | false | none | Total number of pages available. |
currentPage | number | false | none | Current page number. |
pageSize | number | false | none | Number of records per page. |
shops | [object] | false | none | none |
» shopId | number | false | none | Shop id. |
» hotelCodes | [number] | false | none | Array of hotel codes associated with the shop. |
» sourceCodes | [number] | false | none | Array of source codes associated with the shop. |
» shopName | string | false | none | Name of the shop. |
» userId | number | false | none | User ID associated with the shop. |
» userName | string | false | none | Username associated with the shop. |
» createdDate | string(date-time) | false | none | Date and time when the shop was created. |
» modifiedDate | string(date-time) | false | none | Date and time when the shop was last modified. |
» status | number | false | none | Status of the shop |
» shopType | number | false | none | Type of the shop. |
reviewsShopPutResp
{
"message": "Shops details updated successfully"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | none |
shopStatusReq
{
"shopId": 6,
"scheduleId": 47,
"sinceDate": "2025-05-06"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
shopId | number | false | none | Enter shop Id |
scheduleId | number | false | none | Enter schedule Id |
sinceDate | string(date) | false | none | Enter a date |
shopstatusList
[
{
"shopId": 1,
"scheduleId": 2,
"statusMessage": "InProgress"
}
]
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
shopId | number | false | none | Shop id will show |
scheduleId | number | false | none | shows the list of schedule Id |
statusMessage | string | false | none | shows the list of status message |
synopsisReq
{
"hotelCodes": [
72110
],
"sourceCodes": [
1
],
"shopId": 537
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
hotelCodes | array | false | none | Unique code of the hotel to fetch reviews for (as obtained from POST /entity/hotels). |
sourceCodes | array | false | none | Optionally filter by reviews from these specific website/sources only (as obtained from GET /references/sources). By default, it will fetch from all sources available. |
shopId | integer | false | none | Identifier of the shop. |
synopsisResp
{
"websiteName": "Makemytrip",
"counts": {
"2024-02": 2
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
websiteName | string | false | none | none |
counts | object | false | none | none |
» 2024-02 | number | false | none | none |