NAV
Shell HTTP JavaScript Ruby Python PHP Java Go

RoomRatesAPI v3.0.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.

Our RoomRatesAPI is utilized daily by thousands of hotels, accommodation providers, and travel technology companies across the globe. It offers full scalability and grants access to pricing data for over 3.5 million hotels worldwide. This comprehensive data includes room rates, rate plans, and meal plans from more than 100 sources, including brand.com. The RoomRatesAPI stands out for its flexibility, accuracy, and modern approach to delivering data.

The RoomRatesAPI follows the principles of REST offering a structured and intuitive approach to accessing its functionalities. The API utilizes resource-oriented URLs, providing predictable endpoints for easy navigation and interaction. Requests to the API are made using well-defined request bodies, predominantly in JSON format. Responses from the API are JSON-encoded, aligning with standard HTTP response codes, authentication methods, and HTTP verbs.

The RoomRatesAPI encompasses various endpoints, categorized into different modules to support specific functionalities:

By utilizing our RoomRatesAPI, hotels and travel tech companies can access comprehensive and reliable data, empowering them to make informed decisions in a dynamic market. The API offers flexibility, efficiency, and a wide range of functionalities to support the evolving needs of the hotel industry.

Images

Web: Aggregate Intelligence Inc.

Authentication

To access the RoomRatesAPI, every request must be authenticated with an access token (JWT). You can obtain the access token by logging in with your provided credentials. Please note that the access token is only valid for 24 hours from the time it is generated.

For all subsequent requests made to the API, you must include the obtained access token as a standard Bearer token in the request header. This ensures that your requests are properly authenticated and authorized.

Usage Workflow

HTTP Authentication scheme "Bearer" for the RoomRatesAPI

Images

User

User Login

Code samples

# You can also use wget
curl -X POST /authtoken \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST /authtoken HTTP/1.1

Content-Type: application/json
Accept: application/json

const inputBody = '{
  "handle": "myuser",
  "password": "supersecret"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'
};

fetch('/authtoken',
{
  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 '/authtoken',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('/authtoken', 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','/authtoken', 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("/authtoken");
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", "/authtoken", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /authtoken

This endpoint is used to authenticate the validity of a handle/password combination. When you make a POST request to this endpoint with the appropriate handle and password parameters, the system will check the provided credentials. If the authentication is successful, a valid access token will be issued, allowing you to access authorized resources and perform authenticated actions.

Body parameter

{
  "handle": "myuser",
  "password": "supersecret"
}

Parameters

Name In Type Required Description
body body userReq false none

Example responses

200 Response

{
  "error": false,
  "token": "AXSGpLVjnef7w5XgfWdoBwbfs",
  "handle": "myuser"
}

Responses

Status Meaning Description Schema
200 OK Success userResp
400 Bad Request Request data failed validation(s) None
401 Unauthorized Authentication Failed! None
500 Internal Server Error Internal Server Error None

Account

Get Credit

Code samples

# You can also use wget
curl -X GET /credits?accountId=string \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

GET /credits?accountId=string HTTP/1.1

Accept: application/json


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/credits?accountId=string',
{
  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' => 'Bearer {access-token}'
}

result = RestClient.get '/credits',
  params: {
  'accountId' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/credits', params={
  'accountId': 'string'
}, headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/credits', 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("/credits?accountId=string");
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{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/credits", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /credits

This endpoint allows you to retrieve the call limitations set for your account. These limitations are based on the commercial terms of your account and are set at the time the account was created. The response will provide information such as the "valid till" date for your account and the maximum number of calls allowed within different time durations (per second, minute, hour, day, week, and month). The parameters "pullsperday," "rateshops," "horizonmax," and "schedules" indicate the maximum limits available for features such as pulls per day, rate shops, maximum horizon, and schedules for your account.

Parameters

Name In Type Required Description
accountId query string true The identifier of the account

Example responses

200 Response

{
  "validtill": "2019-08-24",
  "calls": {
    "pullspersecond": 2,
    "pullsperminute": 120,
    "pullsperhour": 7200,
    "pullsperday": 172800,
    "pullsperweek": 1209600,
    "pullspermonth": 5184000
  },
  "features": {
    "rateshops": 10,
    "horizonmax": 30,
    "schedules": 5
  }
}

Responses

Status Meaning Description Schema
200 OK Success creditResp
401 Unauthorized Unauthorized None
500 Internal Server Error Internal server error None

Hotel Information

Create Souremap

Code samples

# You can also use wget
curl -X POST /sourcemaprequest \
  -H 'Content-Type: application/json' \
  -H 'Accept: text/plain' \
  -H 'Authorization: Bearer {access-token}'

POST /sourcemaprequest HTTP/1.1

Content-Type: application/json
Accept: text/plain

const inputBody = '{
  "hotelcode": 0,
  "sources": [
    0
  ],
  "urls": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

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' => 'text/plain',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/sourcemaprequest',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'text/plain',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/sourcemaprequest', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'text/plain',
    'Authorization' => 'Bearer {access-token}',
);

$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{"text/plain"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    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

This API call allows users to request the mapping of a location to a source that is not currently available in the database. The required parameters for this request are the hotelcode and the websitecode of the existing source(s) in the database, or the base URL of the desired source(s).

Status Codes:

1 - Queue: The request is in the queue and awaiting processing.

2 - Work in progress: The mapping process is currently underway.

3 - Completed: The mapping request has been successfully completed.

4 - Source already exists in our database and websitecode is available: The requested source already exists in the database, and the corresponding websitecode is available.

5 - Not Feasible: The requested mapping is not feasible.

approximatetime: This parameter provides an approximate turnaround time for processing the request. The default minimum turnaround time is 72 hours, but the actual processing time may vary based on the specific parameter values and the complexity of the mapping request.

Please include the required parameters, such as the hotelcode and websitecode(s) or base URL(s) of the desired source(s), to initiate the mapping request. The response will provide the status code indicating the current status of the request, as well as the estimated time for completion.

Example: { "hotelcode": "12345", "websitecode": "ABC123" }

Initiating a sourcemaprequest enables you to request the mapping of a specific location to a desired source. The processing time may vary, but the request will be processed as efficiently as possible.

Body parameter

{
  "hotelcode": 0,
  "sources": [
    0
  ],
  "urls": [
    "string"
  ]
}

Parameters

Name In Type Required Description
body body sourcemapreq false none

Example responses

200 Response

{"hotelcode":0,"sources":0,"urls":["string"]}
{
  "hotelcode": 0,
  "sources": 0,
  "urls": [
    "string"
  ]
}

Responses

Status Meaning Description Schema
200 OK Success SourceMapRequestExampleValues

Create Hotelinfo

Code samples

# You can also use wget
curl -X POST /hotelinfo \
  -H 'Content-Type: application/json' \
  -H 'Accept: text/plain' \
  -H 'Authorization: Bearer {access-token}'

POST /hotelinfo HTTP/1.1

Content-Type: application/json
Accept: text/plain

const inputBody = '{
  "parameters": {
    "hotelcode": "string"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

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' => 'text/plain',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/hotelinfo',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'text/plain',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/hotelinfo', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'text/plain',
    'Authorization' => 'Bearer {access-token}',
);

$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{"text/plain"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    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

This API endpoint is used to retrieve the list of sources available for a specific hotel. The hotel code obtained from a previous call is used as a parameter in this request.

The "websitecode" is a unique ID assigned to each source in the RatesAPI. It can be used as an input parameter in rate calls to constrain the request to specified sources.

The "snapshotavailable" field indicates whether you have the option to take a snapshot of the page at the time of data retrieval. Please note that taking a snapshot may incur additional charges.

Body parameter

{
  "parameters": {
    "hotelcode": "string"
  }
}

Parameters

Name In Type Required Description
hotelcode path string true The unique ID of the hotel
websitecode query string false The unique ID of a specific source
snapshotavailable query boolean false Check if snapshot of the page is available
body body hotelinfo false none

Example responses

200 Response

{"hotelCode":0,"hotelName":"string","hotelGroup":"string","address":"string","city":"string","state":"string","country":"string","zip":"string","lat":"string","lng":"string","rating":"string","status":0,"currencycode":"string","propertyType":"string","time_zone":"string","time_zone_name":"string","countrycode":"string","hotelSources":[{"mapID":0,"hotelCode":0,"websiteCode":0,"baseurl":"string","createddate":"2019-08-24T14:15:22Z","modifieddate":"2019-08-24T14:15:22Z","hotelCodeNavigation":{"hotelCode":0,"hotelName":"string","hotelGroup":"string","address":"string","city":"string","state":"string","country":"string","zip":"string","lat":"string","lng":"string","rating":"string","status":0,"currencycode":"string","propertyType":"string","time_zone":"string","time_zone_name":"string","countrycode":"string","hotelSources":[],"hotelSources_backups":[{"mapID":0,"hotelCode":0,"websiteCode":0,"baseurl":"string","createddate":"2019-08-24T14:15:22Z","hotelCodeNavigation":{},"websiteCodeNavigation":{"websiteCode":0,"websiteName":"string","url":"string","channeltype":"string","status":0,"createddate":"2019-08-24T14:15:22Z","snapshot":0,"description":"string","coverage":"string","hotelSources":[{}],"hotelSources_backups":[{}]}}]},"websiteCodeNavigation":{"websiteCode":0,"websiteName":"string","url":"string","channeltype":"string","status":0,"createddate":"2019-08-24T14:15:22Z","snapshot":0,"description":"string","coverage":"string","hotelSources":[{}],"hotelSources_backups":[{"mapID":0,"hotelCode":0,"websiteCode":0,"baseurl":"string","createddate":"2019-08-24T14:15:22Z","hotelCodeNavigation":{"hotelCode":0,"hotelName":"string","hotelGroup":"string","address":"string","city":"string","state":"string","country":"string","zip":"string","lat":"string","lng":"string","rating":"string","status":0,"currencycode":"string","propertyType":"string","time_zone":"string","time_zone_name":"string","countrycode":"string","hotelSources":[],"hotelSources_backups":[{}]},"websiteCodeNavigation":{}}]}}],"hotelSources_backups":[{"mapID":0,"hotelCode":0,"websiteCode":0,"baseurl":"string","createddate":"2019-08-24T14:15:22Z","hotelCodeNavigation":{"hotelCode":0,"hotelName":"string","hotelGroup":"string","address":"string","city":"string","state":"string","country":"string","zip":"string","lat":"string","lng":"string","rating":"string","status":0,"currencycode":"string","propertyType":"string","time_zone":"string","time_zone_name":"string","countrycode":"string","hotelSources":[{"mapID":0,"hotelCode":0,"websiteCode":0,"baseurl":"string","createddate":"2019-08-24T14:15:22Z","modifieddate":"2019-08-24T14:15:22Z","hotelCodeNavigation":{},"websiteCodeNavigation":{"websiteCode":0,"websiteName":"string","url":"string","channeltype":"string","status":0,"createddate":"2019-08-24T14:15:22Z","snapshot":0,"description":"string","coverage":"string","hotelSources":[{}],"hotelSources_backups":[{}]}}],"hotelSources_backups":[]},"websiteCodeNavigation":{"websiteCode":0,"websiteName":"string","url":"string","channeltype":"string","status":0,"createddate":"2019-08-24T14:15:22Z","snapshot":0,"description":"string","coverage":"string","hotelSources":[{"mapID":0,"hotelCode":0,"websiteCode":0,"baseurl":"string","createddate":"2019-08-24T14:15:22Z","modifieddate":"2019-08-24T14:15:22Z","hotelCodeNavigation":{"hotelCode":0,"hotelName":"string","hotelGroup":"string","address":"string","city":"string","state":"string","country":"string","zip":"string","lat":"string","lng":"string","rating":"string","status":0,"currencycode":"string","propertyType":"string","time_zone":"string","time_zone_name":"string","countrycode":"string","hotelSources":[{}],"hotelSources_backups":[]},"websiteCodeNavigation":{}}],"hotelSources_backups":[{}]}}]}
{
  "hotelCode": 0,
  "hotelName": "string",
  "hotelGroup": "string",
  "address": "string",
  "city": "string",
  "state": "string",
  "country": "string",
  "zip": "string",
  "lat": "string",
  "lng": "string",
  "rating": "string",
  "status": 0,
  "currencycode": "string",
  "propertyType": "string",
  "time_zone": "string",
  "time_zone_name": "string",
  "countrycode": "string",
  "hotelSources": [
    {
      "mapID": 0,
      "hotelCode": 0,
      "websiteCode": 0,
      "baseurl": "string",
      "createddate": "2019-08-24T14:15:22Z",
      "modifieddate": "2019-08-24T14:15:22Z",
      "hotelCodeNavigation": {
        "hotelCode": 0,
        "hotelName": "string",
        "hotelGroup": "string",
        "address": "string",
        "city": "string",
        "state": "string",
        "country": "string",
        "zip": "string",
        "lat": "string",
        "lng": "string",
        "rating": "string",
        "status": 0,
        "currencycode": "string",
        "propertyType": "string",
        "time_zone": "string",
        "time_zone_name": "string",
        "countrycode": "string",
        "hotelSources": [],
        "hotelSources_backups": [
          {
            "mapID": 0,
            "hotelCode": 0,
            "websiteCode": 0,
            "baseurl": "string",
            "createddate": "2019-08-24T14:15:22Z",
            "hotelCodeNavigation": {},
            "websiteCodeNavigation": {
              "websiteCode": 0,
              "websiteName": "string",
              "url": "string",
              "channeltype": "string",
              "status": 0,
              "createddate": "2019-08-24T14:15:22Z",
              "snapshot": 0,
              "description": "string",
              "coverage": "string",
              "hotelSources": [
                {}
              ],
              "hotelSources_backups": [
                {}
              ]
            }
          }
        ]
      },
      "websiteCodeNavigation": {
        "websiteCode": 0,
        "websiteName": "string",
        "url": "string",
        "channeltype": "string",
        "status": 0,
        "createddate": "2019-08-24T14:15:22Z",
        "snapshot": 0,
        "description": "string",
        "coverage": "string",
        "hotelSources": [
          {}
        ],
        "hotelSources_backups": [
          {
            "mapID": 0,
            "hotelCode": 0,
            "websiteCode": 0,
            "baseurl": "string",
            "createddate": "2019-08-24T14:15:22Z",
            "hotelCodeNavigation": {
              "hotelCode": 0,
              "hotelName": "string",
              "hotelGroup": "string",
              "address": "string",
              "city": "string",
              "state": "string",
              "country": "string",
              "zip": "string",
              "lat": "string",
              "lng": "string",
              "rating": "string",
              "status": 0,
              "currencycode": "string",
              "propertyType": "string",
              "time_zone": "string",
              "time_zone_name": "string",
              "countrycode": "string",
              "hotelSources": [],
              "hotelSources_backups": [
                {}
              ]
            },
            "websiteCodeNavigation": {}
          }
        ]
      }
    }
  ],
  "hotelSources_backups": [
    {
      "mapID": 0,
      "hotelCode": 0,
      "websiteCode": 0,
      "baseurl": "string",
      "createddate": "2019-08-24T14:15:22Z",
      "hotelCodeNavigation": {
        "hotelCode": 0,
        "hotelName": "string",
        "hotelGroup": "string",
        "address": "string",
        "city": "string",
        "state": "string",
        "country": "string",
        "zip": "string",
        "lat": "string",
        "lng": "string",
        "rating": "string",
        "status": 0,
        "currencycode": "string",
        "propertyType": "string",
        "time_zone": "string",
        "time_zone_name": "string",
        "countrycode": "string",
        "hotelSources": [
          {
            "mapID": 0,
            "hotelCode": 0,
            "websiteCode": 0,
            "baseurl": "string",
            "createddate": "2019-08-24T14:15:22Z",
            "modifieddate": "2019-08-24T14:15:22Z",
            "hotelCodeNavigation": {},
            "websiteCodeNavigation": {
              "websiteCode": 0,
              "websiteName": "string",
              "url": "string",
              "channeltype": "string",
              "status": 0,
              "createddate": "2019-08-24T14:15:22Z",
              "snapshot": 0,
              "description": "string",
              "coverage": "string",
              "hotelSources": [
                {}
              ],
              "hotelSources_backups": [
                {}
              ]
            }
          }
        ],
        "hotelSources_backups": []
      },
      "websiteCodeNavigation": {
        "websiteCode": 0,
        "websiteName": "string",
        "url": "string",
        "channeltype": "string",
        "status": 0,
        "createddate": "2019-08-24T14:15:22Z",
        "snapshot": 0,
        "description": "string",
        "coverage": "string",
        "hotelSources": [
          {
            "mapID": 0,
            "hotelCode": 0,
            "websiteCode": 0,
            "baseurl": "string",
            "createddate": "2019-08-24T14:15:22Z",
            "modifieddate": "2019-08-24T14:15:22Z",
            "hotelCodeNavigation": {
              "hotelCode": 0,
              "hotelName": "string",
              "hotelGroup": "string",
              "address": "string",
              "city": "string",
              "state": "string",
              "country": "string",
              "zip": "string",
              "lat": "string",
              "lng": "string",
              "rating": "string",
              "status": 0,
              "currencycode": "string",
              "propertyType": "string",
              "time_zone": "string",
              "time_zone_name": "string",
              "countrycode": "string",
              "hotelSources": [
                {}
              ],
              "hotelSources_backups": []
            },
            "websiteCodeNavigation": {}
          }
        ],
        "hotelSources_backups": [
          {}
        ]
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success hotel
401 Unauthorized Authorization has been denied for this request None

Get Sourcemap

Code samples

# You can also use wget
curl -X GET /sourcemaprequest/{requestid} \
  -H 'Authorization: Bearer {access-token}'

GET /sourcemaprequest/{requestid} HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

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 = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/sourcemaprequest/{requestid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/sourcemaprequest/{requestid}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    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}

This API endpoint is used to retrieve the status of a source mapping request based on the request ID obtained from the initial request. The response will provide the updated status of the request at that specific point in time. The structure of the response is identical to the initial response, containing the necessary details and the current status of the request.

Parameters

Name In Type Required Description
requestid path integer(int32) true none

Responses

Status Meaning Description Schema
200 OK Success None
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None

Create Hotelmap

Code samples

# You can also use wget
curl -X POST /hotelmaprequest \
  -H 'Content-Type: application/json' \
  -H 'Accept: text/plain' \
  -H 'Authorization: Bearer {access-token}'

POST /hotelmaprequest HTTP/1.1

Content-Type: application/json
Accept: text/plain

const inputBody = '{
  "hotelname": "string",
  "address": "string",
  "city": "string",
  "state": "string",
  "country": "string",
  "zip": "string",
  "latitude": 0,
  "longitude": 0,
  "url": [
    "string"
  ],
  "websitecodes": [
    0
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

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' => 'text/plain',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/hotelmaprequest',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'text/plain',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/hotelmaprequest', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'text/plain',
    'Authorization' => 'Bearer {access-token}',
);

$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{"text/plain"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    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

This API endpoint allows users to submit a request for adding a new location to the API database. The request should include mandatory information such as hotel name, address, city, state, country, and zip code. Additional details like geo coordinates, reference URLs, or preferred website codes for mapping can also be provided.

Upon submitting the request, a unique request ID will be generated for tracking purposes.

Status Codes:

1 - Queued: The request is in the queue and awaiting processing.

2 - Work in progress: The request is currently being processed.

3 - Completed: The request has been successfully completed.

4 - Hotel exists: The hotel already exists in the database.

5 - Feasibility failed: Mapping to the specified address is not feasible.

6 - Source unavailable: The requested source is currently unavailable.

The parameter "referencehotelcodes" contains an array of hotel codes available within a 100-meter radius of the specified address. The "approximatetime" parameter provides an estimate of the turnaround time for the request. The default minimum time is 72 hours, but the actual time may vary depending on the provided parameters.

Body parameter

{
  "hotelname": "string",
  "address": "string",
  "city": "string",
  "state": "string",
  "country": "string",
  "zip": "string",
  "latitude": 0,
  "longitude": 0,
  "url": [
    "string"
  ],
  "websitecodes": [
    0
  ]
}

Parameters

Name In Type Required Description
body body newmapreq false none

Example responses

200 Response

{"hotelname":"","address":"","city":"","state":"","country":"","zip":"","latitude":0,"longitude":0,"url":["string"],"websitecodes":0}
{
  "hotelname": "",
  "address": "",
  "city": "",
  "state": "",
  "country": "",
  "zip": "",
  "latitude": 0,
  "longitude": 0,
  "url": [
    "string"
  ],
  "websitecodes": 0
}

Responses

Status Meaning Description Schema
200 OK Success HotelMapRequestExampleValues
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None

Get Maprequest

Code samples

# You can also use wget
curl -X GET /maprequeststatus/{requestid} \
  -H 'Authorization: Bearer {access-token}'

GET /maprequeststatus/{requestid} HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/maprequeststatus/{requestid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/maprequeststatus/{requestid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/maprequeststatus/{requestid}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/maprequeststatus/{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("/maprequeststatus/{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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/maprequeststatus/{requestid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /maprequeststatus/{requestid}

This API endpoint is used to check the status of a mapping request made through the /hotelmaprequest method. The request ID is passed as the input parameter, and the response structure is identical to the response received from the /hotelmaprequest method.

By using this method, users can track the progress and current status of their mapping request.

Parameters

Name In Type Required Description
requestid path integer(int32) true none

Responses

Status Meaning Description Schema
200 OK Success None
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None

Create Hotel

Code samples

# You can also use wget
curl -X POST /hotels \
  -H 'Content-Type: application/json' \
  -H 'Accept: text/plain' \
  -H 'Authorization: Bearer {access-token}'

POST /hotels HTTP/1.1

Content-Type: application/json
Accept: text/plain

const inputBody = '{
  "hotelname": "",
  "country": "United States of America",
  "city": "",
  "state": "",
  "zip": "",
  "keyword": ""
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

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' => 'text/plain',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/hotels',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'text/plain',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/hotels', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'text/plain',
    'Authorization' => 'Bearer {access-token}',
);

$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{"text/plain"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    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

This API endpoint is used to retrieve a list of all hotels available in the RatesAPI for rate retrieval. The request should include the mandatory parameters of either "country" or "hotelname". Other parameters are optional.

The "hotelcode" is a unique ID assigned to each hotel location and is required for all rate retrieval calls made through this API.

Example: To retrieve hotels in the United States of America: { "country": "United States of America" }

To retrieve hotels with the name "Hyatt": { "hotelname": "Hyatt" }

If the desired hotel is not available in our database, please connect with us, and we will strive to make it available within 24 hours.

Body parameter

{
  "hotelname": "",
  "country": "United States of America",
  "city": "",
  "state": "",
  "zip": "",
  "keyword": ""
}

Parameters

Name In Type Required Description
body body hotelsearch false none

Example responses

200 Response

{"hotelname":"","country":"United States of America","city":"","state":"","zip":"","keyword":""}
{
  "hotelname": "",
  "country": "United States of America",
  "city": "",
  "state": "",
  "zip": "",
  "keyword": ""
}

Responses

Status Meaning Description Schema
200 OK Success HotelExamplevalues
401 Unauthorized Authorization has been denied for this request None

Rateshop

Create Rateshop

Code samples

# You can also use wget
curl -X POST /rateshop \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST /rateshop HTTP/1.1

Content-Type: application/json
Accept: application/json

const inputBody = '{
  "rateshopname": "string",
  "los": 0,
  "occupancy": 0,
  "currency": "string",
  "currencies": [
    "string"
  ],
  "fetchtype": 0,
  "horizon": 0,
  "hotelcodes": [
    0
  ],
  "compsets": [
    {
      "hotelcode": 0,
      "competitorhotelcodes": [
        0
      ]
    }
  ],
  "sources": [
    0
  ],
  "horizonexpression": "2-10, 11, 13, 15, 20-25",
  "pos": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/rateshop',
{
  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' => 'Bearer {access-token}'
}

result = RestClient.post '/rateshop',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/rateshop', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/rateshop', 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("/rateshop");
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{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/rateshop", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /rateshop

This API call is used to create a new RateShop, which is a collection of hotels and related parameters that define what data should be retrieved.

The following parameters are required:

The following fields are optional or can be specified during the Rate method in conjunction with the rateshopid. Any parameter passed in the Rate method overrides the corresponding definition already defined in the Rateshop.

Note: Rateshopname, los, and occupancy are mandatory fields.

Please contact our support team if you need specific POS (Point of Sale) or for any further assistance. The POS feature may be available at an additional charge.

Body parameter

{
  "rateshopname": "string",
  "los": 0,
  "occupancy": 0,
  "currency": "string",
  "currencies": [
    "string"
  ],
  "fetchtype": 0,
  "horizon": 0,
  "hotelcodes": [
    0
  ],
  "compsets": [
    {
      "hotelcode": 0,
      "competitorhotelcodes": [
        0
      ]
    }
  ],
  "sources": [
    0
  ],
  "horizonexpression": "2-10, 11, 13, 15, 20-25",
  "pos": 0
}

Parameters

Name In Type Required Description
body body newrateshop false none

Example responses

200 Response

{
  "error": false,
  "rateshop": {
    "rateshopname": "string",
    "los": 0,
    "occupancy": 0,
    "currency": "string",
    "currencies": [
      "string"
    ],
    "fetchtype": 0,
    "horizon": 0,
    "hotelcodes": 0,
    "compsets": {
      "hotelcode": 0,
      "competitorhotelcodes": [
        0
      ]
    },
    "sources": 0,
    "horizonexpression": [
      "string"
    ],
    "pos": 0
  }
}

Responses

Status Meaning Description Schema
200 OK Success RateshopExampleValues
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None
429 Too Many Requests You have exceeded your access limit None

Get Rateshops

Code samples

# You can also use wget
curl -X GET /rateshoplist \
  -H 'Authorization: Bearer {access-token}'

GET /rateshoplist HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/rateshoplist',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/rateshoplist',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/rateshoplist', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/rateshoplist', 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("/rateshoplist");
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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/rateshoplist", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /rateshoplist

This API call allows you to retrieve the list of rateshops that have been created in your account. It provides an overview of the rateshops and their details, allowing you to manage and access the information as needed.

Responses

Status Meaning Description Schema
200 OK Success None
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None
429 Too Many Requests You have exceeded your access limit None

Get Rateshop

Code samples

# You can also use wget
curl -X GET /rateshop/{rateshopid} \
  -H 'Authorization: Bearer {access-token}'

GET /rateshop/{rateshopid} HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/rateshop/{rateshopid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/rateshop/{rateshopid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/rateshop/{rateshopid}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/rateshop/{rateshopid}', 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("/rateshop/{rateshopid}");
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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/rateshop/{rateshopid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /rateshop/{rateshopid}

This API call accepts the rateshopid as the input parameter and retrieves the configuration details for the specified rateshop. It provides information about the rateshop's settings, parameters, and other relevant data, allowing you to access and analyze the specific rateshop's configuration.

Parameters

Name In Type Required Description
rateshopid path integer(int32) true none

Responses

Status Meaning Description Schema
200 OK Success None
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None
429 Too Many Requests You have exceeded your access limit None

Update Rateshop

Code samples

# You can also use wget
curl -X PUT /rateshop/{rateshopid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: text/plain' \
  -H 'Authorization: Bearer {access-token}'

PUT /rateshop/{rateshopid} HTTP/1.1

Content-Type: application/json
Accept: text/plain

const inputBody = '{
  "rateshopname": "string",
  "los": 0,
  "occupancy": 0,
  "currency": "string",
  "currencies": [
    "string"
  ],
  "fetchtype": 0,
  "horizon": 0,
  "hotelcodes": [
    0
  ],
  "compsets": [
    {
      "hotelcode": 0,
      "competitorhotelcodes": [
        0
      ]
    }
  ],
  "sources": [
    0
  ],
  "horizonexpression": "2-10, 11, 13, 15, 20-25",
  "pos": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/rateshop/{rateshopid}',
{
  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' => 'text/plain',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put '/rateshop/{rateshopid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'text/plain',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('/rateshop/{rateshopid}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'text/plain',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('PUT','/rateshop/{rateshopid}', 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("/rateshop/{rateshopid}");
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{"text/plain"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/rateshop/{rateshopid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

PUT /rateshop/{rateshopid}

This API call enables the user to update the details of an existing RateShop associated with the specified rateshopid. It allows for modifications to be made to the RateShop's settings, parameters, or any other relevant information, providing flexibility in managing and adjusting the configuration of the rateshop as needed.

Body parameter

{
  "rateshopname": "string",
  "los": 0,
  "occupancy": 0,
  "currency": "string",
  "currencies": [
    "string"
  ],
  "fetchtype": 0,
  "horizon": 0,
  "hotelcodes": [
    0
  ],
  "compsets": [
    {
      "hotelcode": 0,
      "competitorhotelcodes": [
        0
      ]
    }
  ],
  "sources": [
    0
  ],
  "horizonexpression": "2-10, 11, 13, 15, 20-25",
  "pos": 0
}

Parameters

Name In Type Required Description
rateshopid path integer(int32) true none
body body newrateshop false none

Example responses

200 Response

{"error":false,"rateshop":{"rateshopname":"string","los":0,"occupancy":0,"currency":"string","currencies":["string"],"fetchtype":0,"horizon":0,"hotelcodes":0,"compsets":{"hotelcode":0,"competitorhotelcodes":[0]},"sources":0,"horizonexpression":["string"],"pos":0}}
{
  "error": false,
  "rateshop": {
    "rateshopname": "string",
    "los": 0,
    "occupancy": 0,
    "currency": "string",
    "currencies": [
      "string"
    ],
    "fetchtype": 0,
    "horizon": 0,
    "hotelcodes": 0,
    "compsets": {
      "hotelcode": 0,
      "competitorhotelcodes": [
        0
      ]
    },
    "sources": 0,
    "horizonexpression": [
      "string"
    ],
    "pos": 0
  }
}

Responses

Status Meaning Description Schema
200 OK Success RateshopExampleValues
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None
429 Too Many Requests You have exceeded your access limit None

Delete Rateshop

Code samples

# You can also use wget
curl -X DELETE /rateshop/{rateshopid} \
  -H 'Authorization: Bearer {access-token}'

DELETE /rateshop/{rateshopid} HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/rateshop/{rateshopid}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete '/rateshop/{rateshopid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('/rateshop/{rateshopid}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('DELETE','/rateshop/{rateshopid}', 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("/rateshop/{rateshopid}");
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{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/rateshop/{rateshopid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

DELETE /rateshop/{rateshopid}

This API call allows you to remove a specific RateShop from your account. By providing the rateshopid as a parameter, you can delete the corresponding RateShop and its associated configuration from your account. The API will return the status of the request, confirming the successful deletion of the RateShop.

Parameters

Name In Type Required Description
rateshopid path integer(int32) true none

Responses

Status Meaning Description Schema
200 OK Successfully deleted None
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None
429 Too Many Requests You have exceeded your access limit None

Rates

Create Hotelrates

Code samples

# You can also use wget
curl -X POST /hotelrates \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST /hotelrates HTTP/1.1

Content-Type: application/json

const inputBody = '{
  "hotelcode": 0,
  "checkin": "2019-08-24T14:15:22Z",
  "checkout": "2019-08-24T14:15:22Z",
  "guests": 0,
  "currency": "string",
  "websitecode": 0,
  "pos": 0,
  "snapshot": true
}';
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/hotelrates',
{
  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',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/hotelrates',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/hotelrates', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/hotelrates', 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("/hotelrates");
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"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/hotelrates", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /hotelrates

This API call allows you to make a granular request for a single rate. By providing specific input parameters, you can customize the rate retrieval process according to your application's logic, resulting in increased speed and flexibility.

The input parameters for this API call are as follows:

The output parameters of this API call include:

For more details on other parameters such as currency, roomtypecode, conditionscode, and mealplancode, please refer to the "Reference" section at the bottom of this document. You can also consult your RatesAPI packet or make individual method calls to retrieve a list of codes and their descriptions.

Body parameter

{
  "hotelcode": 0,
  "checkin": "2019-08-24T14:15:22Z",
  "checkout": "2019-08-24T14:15:22Z",
  "guests": 0,
  "currency": "string",
  "websitecode": 0,
  "pos": 0,
  "snapshot": true
}

Parameters

Name In Type Required Description
intern query boolean false none
queueid query integer(int32) false none
subjectcode query integer(int32) false none
orefid query string false none
username query string false none
body body ratereq false none

Responses

Status Meaning Description Schema
200 OK Success None
400 Bad Request Error fetching result from Source None
401 Unauthorized Authorization has been denied for this request None
429 Too Many Requests You have exceeded your access limit None

Get Runstatus

Code samples

# You can also use wget
curl -X GET /runstatus/{queueid} \
  -H 'Authorization: Bearer {access-token}'

GET /runstatus/{queueid} HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/runstatus/{queueid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/runstatus/{queueid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/runstatus/{queueid}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/runstatus/{queueid}', 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("/runstatus/{queueid}");
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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/runstatus/{queueid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /runstatus/{queueid}

This API call allows you to retrieve the status of a Rateshop run request by providing the queue ID as the input parameter.

The status codes returned by this method are as follows:

1 - In-progress: The Rateshop run request is currently in progress.

2 - Completed: The Rateshop run request has been successfully completed.

3 - Terminated with errors: The Rateshop run request was terminated due to errors.

4 - Terminated, No credits available: The Rateshop run request was terminated because there were no available credits.

5 - Rerun in-progress: The Rateshop run request is currently being rerun. Use this API call to check the status of a Rateshop run request and handle the corresponding status codes accordingly.

Parameters

Name In Type Required Description
queueid path integer(int32) true none

Responses

Status Meaning Description Schema
200 OK Success None

Create Runrateshop

Code samples

# You can also use wget
curl -X POST /runrateshop \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST /runrateshop HTTP/1.1

Content-Type: application/json

const inputBody = '{
  "rateshopid": 0,
  "startdate": "2019-08-24",
  "horizon": 0,
  "horizonexpression": "string",
  "sources": [
    0
  ],
  "hotelcodes": [
    0
  ],
  "compsets": [
    {
      "hotelcode": 0,
      "competitorhotelcodes": [
        0
      ]
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/runrateshop',
{
  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',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/runrateshop',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/runrateshop', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/runrateshop', 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("/runrateshop");
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"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/runrateshop", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /runrateshop

This API call is used to retrieve rates using the configuration parameters defined during the creation of a RateShop. The rateshopid is the only mandatory parameter required for this call.

Additional parameters:

Although it is possible to define all request parameters during RateShop creation, you have the flexibility to override those parameters at runtime. This allows you to customize certain parameters specific to each RateShop run, even if they were initially defined during creation.

Use this API call to run a RateShop and retrieve rates based on the defined configuration parameters.

Body parameter

{
  "rateshopid": 0,
  "startdate": "2019-08-24",
  "horizon": 0,
  "horizonexpression": "string",
  "sources": [
    0
  ],
  "hotelcodes": [
    0
  ],
  "compsets": [
    {
      "hotelcode": 0,
      "competitorhotelcodes": [
        0
      ]
    }
  ]
}

Parameters

Name In Type Required Description
body body pullpackage false none

Responses

Status Meaning Description Schema
200 OK Success None
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None
429 Too Many Requests You have exceed your request limit None

Create Ratesbyqueue

Code samples

# You can also use wget
curl -X POST /ratesbyqueue/{queueid} \
  -H 'Authorization: Bearer {access-token}'

POST /ratesbyqueue/{queueid} HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/ratesbyqueue/{queueid}',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/ratesbyqueue/{queueid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/ratesbyqueue/{queueid}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/ratesbyqueue/{queueid}', 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("/ratesbyqueue/{queueid}");
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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/ratesbyqueue/{queueid}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /ratesbyqueue/{queueid}

This API call allows you to review the running status of a RateShop and retrieve the current data. If all calls in the RateShop have been executed and the queue is complete, the retrieved data will be returned as the response.

Parameters:

Output parameters:

Example responses

200 Response

{
    "queueId": 26616432,
    "rateshopId": 28708848,
    "hotelCode": 219914,
    "subjectHotelCode": 273530,
    "websiteCode": 2,
    "dtCollected": "2024-02-28T10:39:09.865Z",
    "checkIn": "2024-03-09",
    "checkOut": "2024-03-10",
    "los": 1,
    "guests": 1,
    "roomType": "Deluxe Room City View King Bed",
    "onsiteRate": 17000,
    "netRate": 0,
    "currency": "INR",
    "roomDescription": "1 king bed  These contemporary rooms offer views of the city. Size 26 m²",
    "ratePlan": "Free cancellation before March 7, 2024",
    "mealPlan": "paid_breakfast",
    "roomAmenities": "Minibar, Free WiFi, Refrigerator , Telephone , Tea/Coffee maker , Hairdryer , Wireless internet",
    "occupancy": 1,
    "sourceUrl": "https://www.booking.com/hotel/in/the-taj-mahal-palace-tower.en-gb.html?checkin=2024-03-09;checkout=2024-03-10;group_adults=1;lang=en-us;selected_currency=INR;changed_currency=1;hotelid=74717",
    "isPromo": false,
    "closed": false,
    "discount": 0,
    "promoName": "",
    "roomTypeCode": 5,
    "ratePlanCode": 2,
    "mealPlanCode": 2,
    "statusCode": 200,
    "taxStatus": 2,
    "taxType": "+3060 taxes and charges",
    "taxAmount": 3060.00012159348,
    "pos": 1,
    "isRatePerStay": "Y",
    "minStay": 0,
    "optionalExtras": "",
    "payPlan": "",
    "channelType": "OTA"
  }
  

Refer to the "Reference" section at the bottom of this document for information on other parameters like currency, roomtypecode, conditionscode, and mealplancode.

Parameters

Name In Type Required Description
queueid path integer(int32) true none

Responses

Status Meaning Description Schema
200 OK Success None

Schedules

create Schedule

Code samples

# You can also use wget
curl -X POST /schedule \
  -H 'Content-Type: application/json' \
  -H 'Accept: text/plain' \
  -H 'Authorization: Bearer {access-token}'

POST /schedule HTTP/1.1

Content-Type: application/json
Accept: text/plain

const inputBody = '{
  "schedulename": "X-Mas",
  "rateshopid": 0,
  "year": "*",
  "month": "*",
  "dow": "*",
  "day": "*",
  "hour": "1",
  "minute": "*",
  "seconds": "*",
  "status": 1,
  "startdate": "2019-08-24",
  "enddate": "2019-08-24"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

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' => 'text/plain',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/schedule',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'text/plain',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/schedule', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'text/plain',
    'Authorization' => 'Bearer {access-token}',
);

$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{"text/plain"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    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

This API call allows a user to create a time-table for running a specific Rateshop at a predetermined date and time on a set schedule. The user can also define the mode of delivery, either through a Web-Hook or using a queueid.

Parameters: * year: Specifies the year for the schedule. Options include: * "" (empty string):No specification * "2016": One year only * "2016, 2017": Runs for 2 years

Body parameter

{
  "schedulename": "X-Mas",
  "rateshopid": 0,
  "year": "*",
  "month": "*",
  "dow": "*",
  "day": "*",
  "hour": "1",
  "minute": "*",
  "seconds": "*",
  "status": 1,
  "startdate": "2019-08-24",
  "enddate": "2019-08-24"
}

Parameters

Name In Type Required Description
body body newschedule false none

Example responses

200 Response

{"schedulename":"X-Mas","rateshopid":0,"year":"*","month":"*","dow":"*","day":"*","hour":"1","minute":"*","seconds":"*","status":1,"startdate":"2023-02-16","enddate":"2023-02-16"}
{
  "schedulename": "X-Mas",
  "rateshopid": 0,
  "year": "*",
  "month": "*",
  "dow": "*",
  "day": "*",
  "hour": "1",
  "minute": "*",
  "seconds": "*",
  "status": 1,
  "startdate": "2023-02-16",
  "enddate": "2023-02-16"
}

Responses

Status Meaning Description Schema
200 OK Success ScheduleExampleValues
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None
429 Too Many Requests You have exceeded your access limit None

Get Schedule

Code samples

# You can also use wget
curl -X GET /schedule/{scheduleid} \
  -H 'Authorization: Bearer {access-token}'

GET /schedule/{scheduleid} HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

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 = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/schedule/{scheduleid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/schedule/{scheduleid}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    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}

This API call retrieves the schedule configuration using the scheduleid as a mandatory parameter. It allows you to fetch the details and settings of a specific schedule based on its unique identifier.

Parameters

Name In Type Required Description
scheduleid path integer(int32) true none

Responses

Status Meaning Description Schema
200 OK Success None
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None
429 Too Many Requests You have exceeded your access limit None

Update Schedule

Code samples

# You can also use wget
curl -X PUT /schedule/{scheduleid} \
  -H 'Content-Type: application/json' \
  -H 'Accept: text/plain' \
  -H 'Authorization: Bearer {access-token}'

PUT /schedule/{scheduleid} HTTP/1.1

Content-Type: application/json
Accept: text/plain

const inputBody = '{
  "schedulename": "X-Mas",
  "rateshopid": 0,
  "year": "*",
  "month": "*",
  "dow": "*",
  "day": "*",
  "hour": "1",
  "minute": "*",
  "seconds": "*",
  "status": 1,
  "startdate": "2019-08-24",
  "enddate": "2019-08-24"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

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' => 'text/plain',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put '/schedule/{scheduleid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'text/plain',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('/schedule/{scheduleid}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'text/plain',
    'Authorization' => 'Bearer {access-token}',
);

$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{"text/plain"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    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}

This API call deletes a schedule from your account. It accepts the scheduleid as a parameter and returns the status of the request. It allows you to remove a specific schedule from your account based on its unique identifier.

Body parameter

{
  "schedulename": "X-Mas",
  "rateshopid": 0,
  "year": "*",
  "month": "*",
  "dow": "*",
  "day": "*",
  "hour": "1",
  "minute": "*",
  "seconds": "*",
  "status": 1,
  "startdate": "2019-08-24",
  "enddate": "2019-08-24"
}

Parameters

Name In Type Required Description
scheduleid path integer(int32) true none
body body newschedule false none

Example responses

200 Response

{"schedulename":"X-Mas","rateshopid":0,"year":"*","month":"*","dow":"*","day":"*","hour":"1","minute":"*","seconds":"*","status":1,"startdate":"2023-02-16","enddate":"2023-02-16"}
{
  "schedulename": "X-Mas",
  "rateshopid": 0,
  "year": "*",
  "month": "*",
  "dow": "*",
  "day": "*",
  "hour": "1",
  "minute": "*",
  "seconds": "*",
  "status": 1,
  "startdate": "2023-02-16",
  "enddate": "2023-02-16"
}

Responses

Status Meaning Description Schema
200 OK Success ScheduleExampleValues
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None
429 Too Many Requests You have exceeded your access limit None

Delete Schedule

Code samples

# You can also use wget
curl -X DELETE /schedule/{scheduleid} \
  -H 'Authorization: Bearer {access-token}'

DELETE /schedule/{scheduleid} HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

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' => 'Bearer {access-token}'
}

result = RestClient.delete '/schedule/{scheduleid}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('/schedule/{scheduleid}', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$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{"Bearer {access-token}"},
    }

    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}

This API call deletes a schedule from your account. It accepts the scheduleid as a parameter and returns the status of the request. It allows you to remove a specific schedule from your account based on its unique identifier.

Parameters

Name In Type Required Description
scheduleid path integer(int32) true none

Responses

Status Meaning Description Schema
200 OK Success None
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None
429 Too Many Requests You have exceeded your access limit None

Create Schedulelog

Code samples

# You can also use wget
curl -X POST /schedulelog \
  -H 'Content-Type: application/json' \
  -H 'Accept: text/plain' \
  -H 'Authorization: Bearer {access-token}'

POST /schedulelog HTTP/1.1

Content-Type: application/json
Accept: text/plain

const inputBody = '{
  "scheduleid": 0,
  "startdate": "2019-08-24",
  "enddate": "2019-08-24"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/schedulelog',
{
  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' => 'text/plain',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/schedulelog',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'text/plain',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/schedulelog', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'text/plain',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/schedulelog', 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("/schedulelog");
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{"text/plain"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/schedulelog", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /schedulelog

This API call allows you to retrieve the schedule log of active queueids. By default, the call will retrieve the schedules executed on the current date. You can filter the results using parameters such as rateshopid, scheduleid, startdate, and enddate to narrow down the log entries based on specific criteria.

Body parameter

{
  "scheduleid": 0,
  "startdate": "2019-08-24",
  "enddate": "2019-08-24"
}

Parameters

Name In Type Required Description
body body schedulelogreq false none

Example responses

200 Response

{"scheduleid":0,"startdate":"2023-02-16","enddate":0}
{
  "scheduleid": 0,
  "startdate": "2023-02-16",
  "enddate": 0
}

Responses

Status Meaning Description Schema
200 OK Success SchedulelogExamplevalues
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None
429 Too Many Requests You have exceeded your access limit None

Get Schedules

Code samples

# You can also use wget
curl -X GET /schedulelist \
  -H 'Authorization: Bearer {access-token}'

GET /schedulelist HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/schedulelist',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/schedulelist',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/schedulelist', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/schedulelist', 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("/schedulelist");
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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/schedulelist", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /schedulelist

This API call allows you to retrieve the list of schedules defined in your account. It provides information about all the schedules that have been created, allowing you to view and manage your scheduled tasks efficiently.

Responses

Status Meaning Description Schema
200 OK Success None
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None
429 Too Many Requests You have exceeded your access limit None

Hooks

Create Queuealerts

Code samples

# You can also use wget
curl -X POST /hooks/queuealerts \
  -H 'Content-Type: application/json' \
  -H 'Accept: text/plain' \
  -H 'Authorization: Bearer {access-token}'

POST /hooks/queuealerts HTTP/1.1

Content-Type: application/json
Accept: text/plain

const inputBody = '{
  "endpoint": "string",
  "authtype": "string",
  "username": "string",
  "password": "string",
  "token": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/hooks/queuealerts',
{
  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' => 'text/plain',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/hooks/queuealerts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'text/plain',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/hooks/queuealerts', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'text/plain',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/hooks/queuealerts', 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/queuealerts");
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{"text/plain"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/hooks/queuealerts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /hooks/queuealerts

This API call enables the use of a Web Hook to deliver Queue status updates to a designated end-point. By defining a hook, you can receive notifications regarding the successful completion or termination of a Queue, whether it be due to error or any other reason. The hook will send a POST request containing the following JSON Schema to your specified end-point.

Body parameter

{
  "endpoint": "string",
  "authtype": "string",
  "username": "string",
  "password": "string",
  "token": "string"
}

Parameters

Name In Type Required Description
body body ratehookreq false none

Example responses

200 Response

{"endpoint":"","authtype":"","username":"","password":"","token":""}
{
  "endpoint": "",
  "authtype": "",
  "username": "",
  "password": "",
  "token": ""
}

Responses

Status Meaning Description Schema
200 OK Success QueueAlertsExampleValue
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None
429 Too Many Requests You have exceeded your access limit None

Create Rate

Code samples

# You can also use wget
curl -X POST /hooks/rate \
  -H 'Content-Type: application/json' \
  -H 'Accept: text/plain' \
  -H 'Authorization: Bearer {access-token}'

POST /hooks/rate HTTP/1.1

Content-Type: application/json
Accept: text/plain

const inputBody = '{
  "endpoint": "string",
  "authtype": "string",
  "username": "string",
  "password": "string",
  "token": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/hooks/rate',
{
  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' => 'text/plain',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/hooks/rate',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'text/plain',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/hooks/rate', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'text/plain',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/hooks/rate', 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/rate");
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{"text/plain"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/hooks/rate", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /hooks/rate

This API call allows you to utilize a WebHook for delivering data generated by your RateShop to a specified end-point. By defining a hook, the rates will be automatically sent to the configured end-point. The hook will send a POST request containing the following JSON Schema to your specified end-point.

Body parameter

{
  "endpoint": "string",
  "authtype": "string",
  "username": "string",
  "password": "string",
  "token": "string"
}

Parameters

Name In Type Required Description
body body ratehookreq false none

Example responses

200 Response

{"endpoint":"","authtype":"","username":"","password":"","token":""}
{
  "endpoint": "",
  "authtype": "",
  "username": "",
  "password": "",
  "token": ""
}

Responses

Status Meaning Description Schema
200 OK Success HooksRateExamplevalue
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None
429 Too Many Requests You have exceeded your access limit None

References

Get Currencies

Code samples

# You can also use wget
curl -X GET /currencies \
  -H 'Authorization: Bearer {access-token}'

GET /currencies HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/currencies',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/currencies',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/currencies', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/currencies', 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("/currencies");
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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/currencies", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /currencies

This API call retrieves a list of supported currencies and their acceptable formats in the RatesAPI. The currency names obtained from this call can be used when specifying the currency parameter in the /rateshop method to indicate the desired currency for the search.

Responses

Status Meaning Description Schema
200 OK Success None

Get Countries

Code samples

# You can also use wget
curl -X GET /countries \
  -H 'Authorization: Bearer {access-token}'

GET /countries HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/countries',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/countries',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/countries', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/countries', 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("/countries");
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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/countries", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /countries

This API call retrieves a list of supported country names and their acceptable formats in the RatesAPI. The country names obtained from this call can be used when specifying the country parameter in the /hotels method to search for hotels with a specific hotelcode.

Responses

Status Meaning Description Schema
200 OK Success None

Get Sources

Code samples

# You can also use wget
curl -X GET /sources \
  -H 'Authorization: Bearer {access-token}'

GET /sources HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/sources',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/sources',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/sources', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/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("/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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/sources", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /sources

This API call retrieves a list of available sources in the RatesAPI along with their unique identifiers. The source IDs obtained from this call can be used when defining a RateShop to specify a particular source for rate retrieval.

Responses

Status Meaning Description Schema
200 OK Success None

Get Roomtypes

Code samples

# You can also use wget
curl -X GET /roomtypes \
  -H 'Authorization: Bearer {access-token}'

GET /roomtypes HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/roomtypes',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/roomtypes',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/roomtypes', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/roomtypes', 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("/roomtypes");
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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/roomtypes", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /roomtypes

This API call retrieves a list of room type categories in the RatesAPI along with their unique identifiers. The room types are categorized into broad categories for comparison purposes.

Responses

Status Meaning Description Schema
200 OK Success None

Get Mealplans

Code samples

# You can also use wget
curl -X GET /mealplans \
  -H 'Authorization: Bearer {access-token}'

GET /mealplans HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/mealplans',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/mealplans',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/mealplans', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/mealplans', 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("/mealplans");
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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/mealplans", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /mealplans

This API call retrieves a list of meal plan categories in the RatesAPI along with their unique identifiers. The meal plans are categorized into broad categories for comparison purposes.

Responses

Status Meaning Description Schema
200 OK Success None

Get Conditions

Code samples

# You can also use wget
curl -X GET /conditions \
  -H 'Authorization: Bearer {access-token}'

GET /conditions HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/conditions',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/conditions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/conditions', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/conditions', 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("/conditions");
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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/conditions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /conditions

This API call retrieves a list of booking condition categories in the RatesAPI along with their unique identifiers. The booking conditions are categorized into broad categories for comparison purposes.

Responses

Status Meaning Description Schema
200 OK Success None

Get Statuscodes

Code samples

# You can also use wget
curl -X GET /statuscodes \
  -H 'Authorization: Bearer {access-token}'

GET /statuscodes HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/statuscodes',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/statuscodes',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/statuscodes', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/statuscodes', 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("/statuscodes");
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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/statuscodes", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /statuscodes

This API call retrieves a list of status codes that you may encounter when using any of the calls in the Rates section of the RatesAPI. The status codes provide information about the execution status and outcomes of the API calls.

Responses

Status Meaning Description Schema
200 OK Success None

Get Pos

Code samples

# You can also use wget
curl -X GET /pos \
  -H 'Authorization: Bearer {access-token}'

GET /pos HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/pos',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/pos',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/pos', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/pos', 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("/pos");
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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/pos", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /pos

This API call returns a list of supported Point of Sale (POS) regions in the RatesAPI. The POS regions represent different geographical locations or markets where the rates and availability data can be sourced from. Each POS region has a unique identifier assigned to it, which can be used in other API calls to specify the region from which the rates should be retrieved.

Responses

Status Meaning Description Schema
200 OK Success None

Meta Search

Get Metacountries

Code samples

# You can also use wget
curl -X GET /meta/countries \
  -H 'Authorization: Bearer {access-token}'

GET /meta/countries HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/meta/countries',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/meta/countries',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/meta/countries', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/meta/countries', 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("/meta/countries");
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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/meta/countries", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /meta/countries

This API call retrieves a list of supported country names and their corresponding formats that are acceptable in the RatesAPI. It is useful when using the /hotels method to search for a specific hotel code and needing to provide the country parameter. The country names provided in the response can be used as input while specifying the country in the RatesAPI requests.

Responses

Status Meaning Description Schema
200 OK Success None

Get Metasources

Code samples

# You can also use wget
curl -X GET /meta/sources \
  -H 'Authorization: Bearer {access-token}'

GET /meta/sources HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/meta/sources',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/meta/sources',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/meta/sources', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/meta/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("/meta/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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/meta/sources", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /meta/sources

This API call retrieves a list of available sources and their corresponding unique identifiers in the RatesAPI. It is used to identify and specify a particular source when defining a RateShop. The response will provide you with the list of sources along with their assigned IDs, which can be used to reference a specific source in your RateShop configurations.

Responses

Status Meaning Description Schema
200 OK Success None

get Metaststuscodes

Code samples

# You can also use wget
curl -X GET /meta/statuscodes \
  -H 'Authorization: Bearer {access-token}'

GET /meta/statuscodes HTTP/1.1


const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/meta/statuscodes',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/meta/statuscodes',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/meta/statuscodes', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/meta/statuscodes', 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("/meta/statuscodes");
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{
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/meta/statuscodes", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /meta/statuscodes

This API call allows you to retrieve a list of status codes that you may encounter when using any API calls in the Rates section. These status codes provide information about the outcome or result of your API requests. By referring to this list, you can understand the meaning and interpretation of each status code and take appropriate actions based on the response received. This is helpful for error handling, troubleshooting, and ensuring the proper flow of your application when interacting with the RoomRatesAPI.

Responses

Status Meaning Description Schema
200 OK Success None

Create Metahotels

Code samples

# You can also use wget
curl -X POST /meta/hotels \
  -H 'Content-Type: application/json' \
  -H 'Accept: text/plain' \
  -H 'Authorization: Bearer {access-token}'

POST /meta/hotels HTTP/1.1

Content-Type: application/json
Accept: text/plain

const inputBody = '{
  "hotelname": "",
  "country": "United States of America",
  "city": "",
  "state": "",
  "zip": "",
  "keyword": ""
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/meta/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' => 'text/plain',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/meta/hotels',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'text/plain',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/meta/hotels', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'text/plain',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/meta/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("/meta/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{"text/plain"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/meta/hotels", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /meta/hotels

This API call allows you to retrieve a list of all hotels available in the RatesAPI for rate retrieval. You can specify the country or hotel name as mandatory parameters to filter the results. The hotel code, which is a unique identifier assigned to each hotel location, is required for all rate retrieval calls made using this API.

Example usage: To retrieve hotels in a specific country: { "country": "United States of America" }

To retrieve hotels by name: { "hotelname": "Hyatt" }

Please note that all other parameters for filtering the results are optional. If a hotel you wish to retrieve rates for is not currently available in our database, please connect with us and we will endeavor to make it available within the next 24 hours

Body parameter

{
  "hotelname": "",
  "country": "United States of America",
  "city": "",
  "state": "",
  "zip": "",
  "keyword": ""
}

Parameters

Name In Type Required Description
body body hotelsearch false none

Example responses

200 Response

{"hotelname":"","country":"United States of America","city":"","state":"","zip":"","keyword":""}
{
  "hotelname": "",
  "country": "United States of America",
  "city": "",
  "state": "",
  "zip": "",
  "keyword": ""
}

Responses

Status Meaning Description Schema
200 OK Success HotelExamplevalues
401 Unauthorized Authorization has been denied for this request None

Create Metahotelinfo

Code samples

# You can also use wget
curl -X POST /meta/hotelinfo \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {access-token}'

POST /meta/hotelinfo HTTP/1.1

Content-Type: application/json

const inputBody = '{
  "parameters": {
    "hotelcode": "string"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/meta/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',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/meta/hotelinfo',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/meta/hotelinfo', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/meta/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("/meta/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"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/meta/hotelinfo", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /meta/hotelinfo

This API call allows you to retrieve the list of sources available for a specific hotel using the hotel code obtained from a previous call.

To make this request, provide the hotel code as a parameter. The hotel code is a unique identifier assigned to each hotel in the RatesAPI.

Example: { "hotelcode": 14118 }

Upon successful execution, the response will include information such as the website code, which is the unique identifier assigned to each source in the RatesAPI. This code can be used as an input parameter in rate calls to constrain the retrieval to specified sources.

Additionally, the response may include the field "snapshotavailable," which indicates whether you can take a snapshot of the page at the time of data retrieval. Please note that taking a snapshot may incur additional charges. For more information about snapshot availability and associated costs, please feel free to contact us.

Body parameter

{
  "parameters": {
    "hotelcode": "string"
  }
}

Parameters

Name In Type Required Description
body body hotelinfo false none

Responses

Status Meaning Description Schema
200 OK Success None
401 Unauthorized Authorization has been denied for this request None

Create Metarates

Code samples

# You can also use wget
curl -X POST /meta/rates \
  -H 'Content-Type: application/json' \
  -H 'Accept: text/plain' \
  -H 'Authorization: Bearer {access-token}'

POST /meta/rates HTTP/1.1

Content-Type: application/json
Accept: text/plain

const inputBody = '{
  "hotelcode": 0,
  "websitecode": 0,
  "checkin": "2019-08-24T14:15:22Z",
  "checkout": "2019-08-24T14:15:22Z",
  "pos": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/meta/rates',
{
  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' => 'text/plain',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/meta/rates',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'text/plain',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/meta/rates', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'text/plain',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/meta/rates', 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("/meta/rates");
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{"text/plain"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/meta/rates", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /meta/rates

This API call enables you to make a specific request for rates of a single hotel. It provides customization options while ensuring a faster response time. However, it requires implementing the necessary logic for rate retrieval within your application.

To make this request, you need to build the logic in your application for retrieving rates based on your specific requirements. This allows you to customize the rate retrieval process according to your needs. Please note that implementing the logic for rate retrieval is your responsibility, but it offers the advantage of increased speed in obtaining the rates you desire.

Feel free to specify the necessary parameters, such as hotel code, check-in and check-out dates, occupancy details, currency, and other relevant information to retrieve the rates for a specific hotel.

Example: { "hotelcode": "12345", "checkin": "2023-06-25", "checkout": "2023-06-28", "guests": "2", "currency": "USD" }

Implementing the logic to retrieve rates ensures greater flexibility and customization while optimizing the speed of response for your rate requests.

Body parameter

{
  "hotelcode": 0,
  "websitecode": 0,
  "checkin": "2019-08-24T14:15:22Z",
  "checkout": "2019-08-24T14:15:22Z",
  "pos": 0
}

Parameters

Name In Type Required Description
body body metareq false none

Example responses

200 Response

{"checkout":"2023-03-08","checkin":"2023-03-07","hotelcode":0,"websitecode":0}
{
  "checkout": "2023-03-08",
  "checkin": "2023-03-07",
  "hotelcode": 0,
  "websitecode": 0
}

Responses

Status Meaning Description Schema
200 OK Success MetarespExample
400 Bad Request Error None
401 Unauthorized Authorization has been denied for this request None

Schemas

userReq

{
  "handle": "myuser",
  "password": "supersecret"
}

Properties

Name Type Required Restrictions Description
handle string true none Request an user by.
password string true none Secret

userResp

{
  "error": false,
  "token": "AXSGpLVjnef7w5XgfWdoBwbfs",
  "handle": "myuser"
}

Properties

Name Type Required Restrictions Description
error boolean false none none
token string false none Represents an access token.
handle string false none Represents a handle.

Enumerated Values

Property Value
error false

creditResp

{
  "validtill": "2019-08-24",
  "calls": {
    "pullspersecond": 2,
    "pullsperminute": 120,
    "pullsperhour": 7200,
    "pullsperday": 172800,
    "pullsperweek": 1209600,
    "pullspermonth": 5184000
  },
  "features": {
    "rateshops": 10,
    "horizonmax": 30,
    "schedules": 5
  }
}

Properties

Name Type Required Restrictions Description
validtill string(date) false none none
calls object false none none
» pullspersecond integer false none The maximum allowed number of API pulls per second.
» pullsperminute integer false none The maximum allowed number of API pulls per minute.
» pullsperhour integer false none The maximum allowed number of API pulls per hour.
» pullsperday integer false none The maximum allowed number of API pulls per day.
» pullsperweek integer false none The maximum allowed number of API pulls per week.
» pullspermonth integer false none The maximum allowed number of API pulls per month.
features object false none none
» rateshops integer false none The maximum number of rate shops allowed.
» horizonmax integer false none The maximum allowed horizon value.
» schedules integer false none The maximum number of schedules allowed.

ratehookreq

{
  "endpoint": "string",
  "authtype": "string",
  "username": "string",
  "password": "string",
  "token": "string"
}

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

ratehookresp

{
  "requestid": "string",
  "message": "string"
}

Properties

Name Type Required Restrictions Description
requestid string false none none
message string false none none

hotelsearch

{
  "hotelname": "",
  "country": "United States of America",
  "city": "",
  "state": "",
  "zip": "",
  "keyword": ""
}

Properties

Name Type Required Restrictions Description
hotelname string false none none
country string false none none
city string false none none
state string false none none
zip string false none none
keyword string false none none

hotelsresp

{
  "hotelcode": 0,
  "hotelname": "string",
  "address": "string",
  "city": "string",
  "state": "string",
  "zip": "string",
  "country": "string",
  "starrating": "string",
  "lat": 0,
  "lng": 0
}

Properties

Name Type Required Restrictions Description
hotelcode number false none none
hotelname string false none none
address string false none none
city string false none none
state string false none none
zip string false none none
country string false none none
starrating string false none none
lat number false none none
lng number false none none

pullpackage

{
  "rateshopid": 0,
  "startdate": "2019-08-24",
  "horizon": 0,
  "horizonexpression": "string",
  "sources": [
    0
  ],
  "hotelcodes": [
    0
  ],
  "compsets": [
    {
      "hotelcode": 0,
      "competitorhotelcodes": [
        0
      ]
    }
  ]
}

Properties

Name Type Required Restrictions Description
rateshopid number false none none
startdate string(date) false none none
horizon number false none none
horizonexpression string false none none
sources [number] false none none
hotelcodes [number] false none none
compsets [object] false none none
» hotelcode number false none none
» competitorhotelcodes [number] false none none

ratepullresp

{
  "queueid": 0,
  "approximatetime": "string",
  "status_code": 0,
  "status_msg": "string"
}

Properties

Name Type Required Restrictions Description
queueid number false none none
approximatetime string false none none
status_code integer false none none
status_msg string false none none

hotelinfo

{
  "parameters": {
    "hotelcode": "string"
  }
}

Properties

Name Type Required Restrictions Description
parameters object false none none
» hotelcode string false none The unique ID of the hotel

hotelinforesp

{
  "hotelcode": 0,
  "hotelname": "string",
  "address": "string",
  "city": "string",
  "state": "string",
  "zip": "string",
  "country": "string",
  "starrating": "string",
  "lat": 0,
  "long": 0,
  "sources": {
    "websitecode": 0,
    "websitename": "string",
    "url": "string",
    "channeltype": "string",
    "snapshotavailable": true
  }
}

Properties

Name Type Required Restrictions Description
hotelcode number false none none
hotelname string false none none
address string false none none
city string false none none
state string false none none
zip string false none none
country string false none none
starrating string false none none
lat number false none none
long number false none none
sources object false none none
» websitecode number false none none
» websitename string false none none
» url string false none none
» channeltype string false none none
» snapshotavailable boolean false none none

rateshopinfo

{
  "rateshopid": 0,
  "rateshopname": "string",
  "los": 0,
  "occupancy": 0,
  "currency": "string",
  "currencies": [
    "string"
  ],
  "fetchtype": 0,
  "horizon": 0,
  "hotelcodes": [
    0
  ],
  "compsets": [
    {
      "hotelcode": 0,
      "competitorhotelcodes": [
        0
      ]
    }
  ],
  "sources": [
    0
  ],
  "horizonexpression": "string",
  "pos": 0
}

Properties

Name Type Required Restrictions Description
rateshopid number false none none
rateshopname string false none none
los integer false none none
occupancy integer false none none
currency string false none none
currencies [string] false none none
fetchtype integer false none none
horizon integer false none none
hotelcodes [number] false none none
compsets [object] false none none
» hotelcode number false none none
» competitorhotelcodes [number] false none none
sources [integer] false none none
horizonexpression string false none none
pos number false none none

rateresp

{
  "hotelcode": 0,
  "websitecode": 0,
  "dtcollected": "2019-08-24",
  "ratedate": "2019-08-24",
  "los": 0,
  "guests": 0,
  "roomtype": "string",
  "onsiterate": 0,
  "netrate": 0,
  "currency": "string",
  "ratedescription": "string",
  "sourceurl": "string",
  "roomamenities": "string",
  "maxoccupancy": 0,
  "ispromo": true,
  "closed": "string",
  "checkin": "2019-08-24",
  "checkout": "2019-08-24",
  "discount": 0,
  "promoname": "string",
  "searchkeyword": "string",
  "roomtypecode": 0,
  "conditionscode": 0,
  "mealplancode": 0,
  "taxstatus": 0,
  "taxtype": "string",
  "taxamount": 0,
  "pos": 0,
  "requestorigin": "string",
  "israteperstay": "string",
  "status_code": 0,
  "snapshoturl": "string"
}

Properties

Name Type Required Restrictions Description
hotelcode number false none none
websitecode number false none none
dtcollected string(date) false none none
ratedate string(date) false none none
los number false none none
guests number false none none
roomtype string false none none
onsiterate number false none none
netrate number false none none
currency string false none none
ratedescription string false none none
sourceurl string false none none
roomamenities string false none none
maxoccupancy number false none none
ispromo boolean false none none
closed string false none none
checkin string(date) false none none
checkout string(date) false none none
discount number false none none
promoname string false none none
searchkeyword string false none none
roomtypecode number false none none
conditionscode number false none none
mealplancode number false none none
taxstatus number false none none
taxtype string false none none
taxamount number false none none
pos number false none none
requestorigin string false none none
israteperstay string false none none
status_code number false none none
snapshoturl string false none none

pullresp

{
  "queueid": 0,
  "hotelcode": 0,
  "subjecthotelcode": 0,
  "websitecode": 0,
  "dtcollected": "2019-08-24",
  "ratedate": "2019-08-24",
  "los": 0,
  "guests": 0,
  "roomtype": "string",
  "onsiterate": 0,
  "netrate": 0,
  "currency": "string",
  "ratedescription": "string",
  "sourceurl": "string",
  "roomamenities": "string",
  "maxoccupancy": 0,
  "ispromo": true,
  "closed": "string",
  "checkin": "2019-08-24",
  "checkout": "2019-08-24",
  "discount": 0,
  "promoname": "string",
  "searchkeyword": "string",
  "roomtypecode": 0,
  "conditionscode": 0,
  "mealplancode": 0,
  "taxstatus": 0,
  "taxtype": "string",
  "taxamount": 0,
  "pos": 0,
  "requestorigin": "string",
  "israteperstay": "string",
  "status_code": 0
}

Properties

Name Type Required Restrictions Description
queueid number false none none
hotelcode number false none none
subjecthotelcode number false none none
websitecode number false none none
dtcollected string(date) false none none
ratedate string(date) false none none
los number false none none
guests number false none none
roomtype string false none none
onsiterate number false none none
netrate number false none none
currency string false none none
ratedescription string false none none
sourceurl string false none none
roomamenities string false none none
maxoccupancy number false none none
ispromo boolean false none none
closed string false none none
checkin string(date) false none none
checkout string(date) false none none
discount number false none none
promoname string false none none
searchkeyword string false none none
roomtypecode number false none none
conditionscode number false none none
mealplancode number false none none
taxstatus number false none none
taxtype string false none none
taxamount number false none none
pos number false none none
requestorigin string false none none
israteperstay string false none none
status_code number false none none

newschedule

{
  "schedulename": "X-Mas",
  "rateshopid": 0,
  "year": "*",
  "month": "*",
  "dow": "*",
  "day": "*",
  "hour": "1",
  "minute": "*",
  "seconds": "*",
  "status": 1,
  "startdate": "2019-08-24",
  "enddate": "2019-08-24"
}

Properties

Name Type Required Restrictions Description
schedulename string false none none
rateshopid number false none none
year string false none none
month string false none none
dow string false none none
day string false none none
hour string false none none
minute string false none none
seconds string false none none
status number false none none
startdate string(date) false none none
enddate string(date) false none none

Enumerated Values

Property Value
status 1
status 2

schedule

{
  "scheduleid": 0,
  "schedulename": "string",
  "rateshopid": 0,
  "year": "string",
  "month": "string",
  "dow": "string",
  "day": "string",
  "hour": "string",
  "minute": "string",
  "seconds": "string",
  "status": 0,
  "startdate": "2019-08-24",
  "enddate": "2019-08-24"
}

Properties

Name Type Required Restrictions Description
scheduleid number false none none
schedulename string false none none
rateshopid number false none none
year string false none none
month string false none none
dow string false none none
day string false none none
hour string false none none
minute string false none none
seconds string false none none
status number false none none
startdate string(date) false none none
enddate string(date) false none none

schedulelog

{
  "scheduleid": 0,
  "rateshopid": 0,
  "queueid": 0,
  "executedat": "2019-08-24"
}

Properties

Name Type Required Restrictions Description
scheduleid number false none none
rateshopid number false none none
queueid number false none none
executedat string(date) false none none

countryresp

[
  "string"
]

Properties

None

currencyresp

{
  "currencycode": "string",
  "currencyname": "string"
}

Properties

Name Type Required Restrictions Description
currencycode string false none none
currencyname string false none none

schedulelogreq

{
  "scheduleid": 0,
  "startdate": "2019-08-24",
  "enddate": "2019-08-24"
}

Properties

Name Type Required Restrictions Description
scheduleid number false none none
startdate string(date) false none none
enddate string(date) false none none

sourceresp

{
  "websitecode": 0,
  "websitename": "string",
  "url": "string",
  "channeltype": "string",
  "snapshotavailable": true
}

Properties

Name Type Required Restrictions Description
websitecode number false none none
websitename string false none none
url string false none none
channeltype string false none none
snapshotavailable boolean false none none

typeresp

{
  "code": 0,
  "desc": "string"
}

Properties

Name Type Required Restrictions Description
code number false none none
desc string false none none

runstatusresp

{
  "queueid": 0,
  "rateshopid": 0,
  "statuscode": 0,
  "statusmessage": "string",
  "creditused": 0,
  "totalrows": 0
}

Properties

Name Type Required Restrictions Description
queueid number false none none
rateshopid number false none none
statuscode number false none none
statusmessage string false none none
creditused number false none none
totalrows number false none none

credit

{
  "validtill": "2019-08-24",
  "calls": {
    "monthly": 0,
    "weekly": 0,
    "daily": 0,
    "hourly": 0,
    "minute": 0,
    "second": 0
  },
  "pullsperday": 0,
  "rateshops": {
    "allowed": 0,
    "used": 0,
    "available": 0
  },
  "horizonmax": 0,
  "schedules": {
    "allowed": 0,
    "used": 0,
    "available": 0
  }
}

Properties

Name Type Required Restrictions Description
validtill string(date) false none none
calls object false none none
» monthly number false none none
» weekly number false none none
» daily number false none none
» hourly number false none none
» minute number false none none
» second number false none none
pullsperday number false none none
rateshops object false none none
» allowed number false none none
» used number false none none
» available number false none none
horizonmax number false none none
schedules object false none none
» allowed number false none none
» used number false none none
» available number false none none

metarates

{
  "hotelcode": 0,
  "websitecode": 0,
  "provider": "string",
  "rank": 0,
  "checkin": "2019-08-24",
  "onsiterate": 0,
  "netrate": 0,
  "pricepernight": 0,
  "currency": "string",
  "roomtype": "string",
  "roomamenities": "string",
  "url": "string",
  "status_code": "string"
}

Properties

Name Type Required Restrictions Description
hotelcode number false none none
websitecode number false none none
provider string false none none
rank number false none none
checkin string(date) false none none
onsiterate number false none none
netrate number false none none
pricepernight number false none none
currency string false none none
roomtype string false none none
roomamenities string false none none
url string false none none
status_code string false none none

newmapresp

{
  "requestid": 0,
  "referencehotelcodes": [
    0
  ],
  "statuscode": 0,
  "statusmsg": "string",
  "approximatetime": "2019-08-24"
}

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

sourcemapreq

{
  "hotelcode": 0,
  "sources": [
    0
  ],
  "urls": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
hotelcode integer false none none
sources [integer] false none none
urls [string] false none none

sourcemapresp

{
  "requestid": 0,
  "hotelcode": 0,
  "sources": [
    0
  ],
  "urls": [
    "string"
  ],
  "status": 0,
  "approximatetime": 0
}

Properties

Name Type Required Restrictions Description
requestid integer false none none
hotelcode integer false none none
sources [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

HooksRateExamplevalue

{
  "endpoint": "",
  "authtype": "",
  "username": "",
  "password": "",
  "token": ""
}

Properties

Name Type Required Restrictions Description
endpoint string¦null false none none
authtype string¦null false none none
username string¦null false none none
password string¦null false none none
token string¦null false none none

HotelExamplevalues

{
  "hotelname": "",
  "country": "United States of America",
  "city": "",
  "state": "",
  "zip": "",
  "keyword": ""
}

Properties

Name Type Required Restrictions Description
hotelname string¦null false none none
country string¦null false none none
city string¦null false none none
state string¦null false none none
zip string¦null false none none
keyword string¦null false none none

HotelInfoReq

{
  "hotelcode": 0,
  "hotelcodes": [
    0
  ]
}

Properties

Name Type Required Restrictions Description
hotelcode integer(int32)¦null false none none
hotelcodes [integer]¦null false none none

HotelMapRequestExampleValues

{
  "hotelname": "",
  "address": "",
  "city": "",
  "state": "",
  "country": "",
  "zip": "",
  "latitude": 0,
  "longitude": 0,
  "url": [
    "string"
  ],
  "websitecodes": 0
}

Properties

Name Type Required Restrictions Description
hotelname string¦null false none none
address string¦null false none none
city string¦null false none none
state string¦null false none none
country string¦null false none none
zip string¦null false none none
latitude integer(int32) false none none
longitude integer(int32) false none none
url [string]¦null false none none
websitecodes [integer]¦null false none none

HotelSearch

{
  "hotelname": "string",
  "country": "string",
  "city": "string",
  "state": "string",
  "zip": "string",
  "keyword": "string"
}

Properties

Name Type Required Restrictions Description
hotelname string¦null false none none
country string¦null false none none
city string¦null false none none
state string¦null false none none
zip string¦null false none none
keyword string¦null false none none

HotelSource

{
  "mapID": 0,
  "hotelCode": 0,
  "websiteCode": 0,
  "baseurl": "string",
  "createddate": "2019-08-24T14:15:22Z",
  "modifieddate": "2019-08-24T14:15:22Z",
  "hotelCodeNavigation": {
    "hotelCode": 0,
    "hotelName": "string",
    "hotelGroup": "string",
    "address": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "zip": "string",
    "lat": "string",
    "lng": "string",
    "rating": "string",
    "status": 0,
    "currencycode": "string",
    "propertyType": "string",
    "time_zone": "string",
    "time_zone_name": "string",
    "countrycode": "string",
    "hotelSources": [
      {
        "mapID": 0,
        "hotelCode": 0,
        "websiteCode": 0,
        "baseurl": "string",
        "createddate": "2019-08-24T14:15:22Z",
        "modifieddate": "2019-08-24T14:15:22Z",
        "hotelCodeNavigation": {},
        "websiteCodeNavigation": {
          "websiteCode": 0,
          "websiteName": "string",
          "url": "string",
          "channeltype": "string",
          "status": 0,
          "createddate": "2019-08-24T14:15:22Z",
          "snapshot": 0,
          "description": "string",
          "coverage": "string",
          "hotelSources": [
            {}
          ],
          "hotelSources_backups": [
            {
              "mapID": 0,
              "hotelCode": 0,
              "websiteCode": 0,
              "baseurl": "string",
              "createddate": "2019-08-24T14:15:22Z",
              "hotelCodeNavigation": {},
              "websiteCodeNavigation": {}
            }
          ]
        }
      }
    ],
    "hotelSources_backups": [
      {
        "mapID": 0,
        "hotelCode": 0,
        "websiteCode": 0,
        "baseurl": "string",
        "createddate": "2019-08-24T14:15:22Z",
        "hotelCodeNavigation": {},
        "websiteCodeNavigation": {
          "websiteCode": 0,
          "websiteName": "string",
          "url": "string",
          "channeltype": "string",
          "status": 0,
          "createddate": "2019-08-24T14:15:22Z",
          "snapshot": 0,
          "description": "string",
          "coverage": "string",
          "hotelSources": [
            {
              "mapID": 0,
              "hotelCode": 0,
              "websiteCode": 0,
              "baseurl": "string",
              "createddate": "2019-08-24T14:15:22Z",
              "modifieddate": "2019-08-24T14:15:22Z",
              "hotelCodeNavigation": {},
              "websiteCodeNavigation": {}
            }
          ],
          "hotelSources_backups": [
            {}
          ]
        }
      }
    ]
  },
  "websiteCodeNavigation": {
    "websiteCode": 0,
    "websiteName": "string",
    "url": "string",
    "channeltype": "string",
    "status": 0,
    "createddate": "2019-08-24T14:15:22Z",
    "snapshot": 0,
    "description": "string",
    "coverage": "string",
    "hotelSources": [
      {
        "mapID": 0,
        "hotelCode": 0,
        "websiteCode": 0,
        "baseurl": "string",
        "createddate": "2019-08-24T14:15:22Z",
        "modifieddate": "2019-08-24T14:15:22Z",
        "hotelCodeNavigation": {
          "hotelCode": 0,
          "hotelName": "string",
          "hotelGroup": "string",
          "address": "string",
          "city": "string",
          "state": "string",
          "country": "string",
          "zip": "string",
          "lat": "string",
          "lng": "string",
          "rating": "string",
          "status": 0,
          "currencycode": "string",
          "propertyType": "string",
          "time_zone": "string",
          "time_zone_name": "string",
          "countrycode": "string",
          "hotelSources": [
            {}
          ],
          "hotelSources_backups": [
            {
              "mapID": 0,
              "hotelCode": 0,
              "websiteCode": 0,
              "baseurl": "string",
              "createddate": "2019-08-24T14:15:22Z",
              "hotelCodeNavigation": {},
              "websiteCodeNavigation": {}
            }
          ]
        },
        "websiteCodeNavigation": {}
      }
    ],
    "hotelSources_backups": [
      {
        "mapID": 0,
        "hotelCode": 0,
        "websiteCode": 0,
        "baseurl": "string",
        "createddate": "2019-08-24T14:15:22Z",
        "hotelCodeNavigation": {
          "hotelCode": 0,
          "hotelName": "string",
          "hotelGroup": "string",
          "address": "string",
          "city": "string",
          "state": "string",
          "country": "string",
          "zip": "string",
          "lat": "string",
          "lng": "string",
          "rating": "string",
          "status": 0,
          "currencycode": "string",
          "propertyType": "string",
          "time_zone": "string",
          "time_zone_name": "string",
          "countrycode": "string",
          "hotelSources": [
            {
              "mapID": 0,
              "hotelCode": 0,
              "websiteCode": 0,
              "baseurl": "string",
              "createddate": "2019-08-24T14:15:22Z",
              "modifieddate": "2019-08-24T14:15:22Z",
              "hotelCodeNavigation": {},
              "websiteCodeNavigation": {}
            }
          ],
          "hotelSources_backups": [
            {}
          ]
        },
        "websiteCodeNavigation": {}
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
mapID integer(int64) false none none
hotelCode integer(int32) false none none
websiteCode integer(int32) false none none
baseurl string¦null false none none
createddate string(date-time)¦null false none none
modifieddate string(date-time)¦null false none none
hotelCodeNavigation hotel false none none
websiteCodeNavigation Source false none none

HotelSources_backup

{
  "mapID": 0,
  "hotelCode": 0,
  "websiteCode": 0,
  "baseurl": "string",
  "createddate": "2019-08-24T14:15:22Z",
  "hotelCodeNavigation": {
    "hotelCode": 0,
    "hotelName": "string",
    "hotelGroup": "string",
    "address": "string",
    "city": "string",
    "state": "string",
    "country": "string",
    "zip": "string",
    "lat": "string",
    "lng": "string",
    "rating": "string",
    "status": 0,
    "currencycode": "string",
    "propertyType": "string",
    "time_zone": "string",
    "time_zone_name": "string",
    "countrycode": "string",
    "hotelSources": [
      {
        "mapID": 0,
        "hotelCode": 0,
        "websiteCode": 0,
        "baseurl": "string",
        "createddate": "2019-08-24T14:15:22Z",
        "modifieddate": "2019-08-24T14:15:22Z",
        "hotelCodeNavigation": {},
        "websiteCodeNavigation": {
          "websiteCode": 0,
          "websiteName": "string",
          "url": "string",
          "channeltype": "string",
          "status": 0,
          "createddate": "2019-08-24T14:15:22Z",
          "snapshot": 0,
          "description": "string",
          "coverage": "string",
          "hotelSources": [
            {}
          ],
          "hotelSources_backups": [
            {
              "mapID": 0,
              "hotelCode": 0,
              "websiteCode": 0,
              "baseurl": "string",
              "createddate": "2019-08-24T14:15:22Z",
              "hotelCodeNavigation": {},
              "websiteCodeNavigation": {}
            }
          ]
        }
      }
    ],
    "hotelSources_backups": [
      {
        "mapID": 0,
        "hotelCode": 0,
        "websiteCode": 0,
        "baseurl": "string",
        "createddate": "2019-08-24T14:15:22Z",
        "hotelCodeNavigation": {},
        "websiteCodeNavigation": {
          "websiteCode": 0,
          "websiteName": "string",
          "url": "string",
          "channeltype": "string",
          "status": 0,
          "createddate": "2019-08-24T14:15:22Z",
          "snapshot": 0,
          "description": "string",
          "coverage": "string",
          "hotelSources": [
            {
              "mapID": 0,
              "hotelCode": 0,
              "websiteCode": 0,
              "baseurl": "string",
              "createddate": "2019-08-24T14:15:22Z",
              "modifieddate": "2019-08-24T14:15:22Z",
              "hotelCodeNavigation": {},
              "websiteCodeNavigation": {}
            }
          ],
          "hotelSources_backups": [
            {}
          ]
        }
      }
    ]
  },
  "websiteCodeNavigation": {
    "websiteCode": 0,
    "websiteName": "string",
    "url": "string",
    "channeltype": "string",
    "status": 0,
    "createddate": "2019-08-24T14:15:22Z",
    "snapshot": 0,
    "description": "string",
    "coverage": "string",
    "hotelSources": [
      {
        "mapID": 0,
        "hotelCode": 0,
        "websiteCode": 0,
        "baseurl": "string",
        "createddate": "2019-08-24T14:15:22Z",
        "modifieddate": "2019-08-24T14:15:22Z",
        "hotelCodeNavigation": {
          "hotelCode": 0,
          "hotelName": "string",
          "hotelGroup": "string",
          "address": "string",
          "city": "string",
          "state": "string",
          "country": "string",
          "zip": "string",
          "lat": "string",
          "lng": "string",
          "rating": "string",
          "status": 0,
          "currencycode": "string",
          "propertyType": "string",
          "time_zone": "string",
          "time_zone_name": "string",
          "countrycode": "string",
          "hotelSources": [
            {}
          ],
          "hotelSources_backups": [
            {
              "mapID": 0,
              "hotelCode": 0,
              "websiteCode": 0,
              "baseurl": "string",
              "createddate": "2019-08-24T14:15:22Z",
              "hotelCodeNavigation": {},
              "websiteCodeNavigation": {}
            }
          ]
        },
        "websiteCodeNavigation": {}
      }
    ],
    "hotelSources_backups": [
      {
        "mapID": 0,
        "hotelCode": 0,
        "websiteCode": 0,
        "baseurl": "string",
        "createddate": "2019-08-24T14:15:22Z",
        "hotelCodeNavigation": {
          "hotelCode": 0,
          "hotelName": "string",
          "hotelGroup": "string",
          "address": "string",
          "city": "string",
          "state": "string",
          "country": "string",
          "zip": "string",
          "lat": "string",
          "lng": "string",
          "rating": "string",
          "status": 0,
          "currencycode": "string",
          "propertyType": "string",
          "time_zone": "string",
          "time_zone_name": "string",
          "countrycode": "string",
          "hotelSources": [
            {
              "mapID": 0,
              "hotelCode": 0,
              "websiteCode": 0,
              "baseurl": "string",
              "createddate": "2019-08-24T14:15:22Z",
              "modifieddate": "2019-08-24T14:15:22Z",
              "hotelCodeNavigation": {},
              "websiteCodeNavigation": {}
            }
          ],
          "hotelSources_backups": [
            {}
          ]
        },
        "websiteCodeNavigation": {}
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
mapID integer(int64) false none none
hotelCode integer(int32) false none none
websiteCode integer(int32) false none none
baseurl string¦null false none none
createddate string(date-time)¦null false none none
hotelCodeNavigation hotel false none none
websiteCodeNavigation Source false none none

MetarespExample

{
  "checkout": "2023-03-08",
  "checkin": "2023-03-07",
  "hotelcode": 0,
  "websitecode": 0
}

Properties

Name Type Required Restrictions Description
checkout string¦null false none none
checkin string¦null false none none
hotelcode integer(int32) false none none
websitecode integer(int32) false none none

QueueAlertsExampleValue

{
  "endpoint": "",
  "authtype": "",
  "username": "",
  "password": "",
  "token": ""
}

Properties

Name Type Required Restrictions Description
endpoint string¦null false none none
authtype string¦null false none none
username string¦null false none none
password string¦null false none none
token string¦null false none none

newrateshop

{
  "rateshopname": "string",
  "los": 0,
  "occupancy": 0,
  "currency": "string",
  "currencies": [
    "string"
  ],
  "fetchtype": 0,
  "horizon": 0,
  "hotelcodes": [
    0
  ],
  "compsets": [
    {
      "hotelcode": 0,
      "competitorhotelcodes": [
        0
      ]
    }
  ],
  "sources": [
    0
  ],
  "horizonexpression": "2-10, 11, 13, 15, 20-25",
  "pos": 0
}

Properties

Name Type Required Restrictions Description
rateshopname string false none none
los integer false none none
occupancy integer false none none
currency string false none none
currencies [string] false none none
fetchtype integer false none none
horizon integer false none none
hotelcodes [number] false none none
compsets [object] false none none
» hotelcode number false none none
» competitorhotelcodes [number] false none none
sources [integer] false none none
horizonexpression string false none none
pos number false none none

RateshopExampleValues

{
  "error": false,
  "rateshop": {
    "rateshopname": "string",
    "los": 0,
    "occupancy": 0,
    "currency": "string",
    "currencies": [
      "string"
    ],
    "fetchtype": 0,
    "horizon": 0,
    "hotelcodes": 0,
    "compsets": {
      "hotelcode": 0,
      "competitorhotelcodes": [
        0
      ]
    },
    "sources": 0,
    "horizonexpression": [
      "string"
    ],
    "pos": 0
  }
}

Properties

Name Type Required Restrictions Description
error boolean false none none
rateshop object false none none
» rateshopname string¦null false none none
» los integer(int32) false none none
» occupancy integer(int32) false none none
» currency string¦null false none none
» currencies [string]¦null false none none
» fetchtype integer(int32) false none none
» horizon integer(int32) false none none
» hotelcodes [integer]¦null false none none
» compsets [string]¦null false none none
» sources [integer]¦null false none none
» horizonexpression [string]¦null false none none
» pos integer(int32) false none none

Enumerated Values

Property Value
error false

ScheduleExampleValues

{
  "schedulename": "X-Mas",
  "rateshopid": 0,
  "year": "*",
  "month": "*",
  "dow": "*",
  "day": "*",
  "hour": "1",
  "minute": "*",
  "seconds": "*",
  "status": 1,
  "startdate": "2023-02-16",
  "enddate": "2023-02-16"
}

Properties

Name Type Required Restrictions Description
schedulename string¦null false none none
rateshopid integer(int32) false none none
year string¦null false none none
month string¦null false none none
dow string¦null false none none
day string¦null false none none
hour string¦null false none none
minute string¦null false none none
seconds string¦null false none none
status integer(int32) false none none
startdate string¦null false none none
enddate string¦null false none none

SchedulelogExamplevalues

{
  "scheduleid": 0,
  "startdate": "2023-02-16",
  "enddate": 0
}

Properties

Name Type Required Restrictions Description
scheduleid integer(int32) false none none
startdate string¦null false none none
enddate integer(int32) false none none

Source

{
  "websiteCode": 0,
  "websiteName": "string",
  "url": "string",
  "channeltype": "string",
  "status": 0,
  "createddate": "2019-08-24T14:15:22Z",
  "snapshot": 0,
  "description": "string",
  "coverage": "string",
  "hotelSources": [
    {
      "mapID": 0,
      "hotelCode": 0,
      "websiteCode": 0,
      "baseurl": "string",
      "createddate": "2019-08-24T14:15:22Z",
      "modifieddate": "2019-08-24T14:15:22Z",
      "hotelCodeNavigation": {
        "hotelCode": 0,
        "hotelName": "string",
        "hotelGroup": "string",
        "address": "string",
        "city": "string",
        "state": "string",
        "country": "string",
        "zip": "string",
        "lat": "string",
        "lng": "string",
        "rating": "string",
        "status": 0,
        "currencycode": "string",
        "propertyType": "string",
        "time_zone": "string",
        "time_zone_name": "string",
        "countrycode": "string",
        "hotelSources": [
          {}
        ],
        "hotelSources_backups": [
          {
            "mapID": 0,
            "hotelCode": 0,
            "websiteCode": 0,
            "baseurl": "string",
            "createddate": "2019-08-24T14:15:22Z",
            "hotelCodeNavigation": {},
            "websiteCodeNavigation": {
              "websiteCode": 0,
              "websiteName": "string",
              "url": "string",
              "channeltype": "string",
              "status": 0,
              "createddate": "2019-08-24T14:15:22Z",
              "snapshot": 0,
              "description": "string",
              "coverage": "string",
              "hotelSources": [],
              "hotelSources_backups": [
                {}
              ]
            }
          }
        ]
      },
      "websiteCodeNavigation": {
        "websiteCode": 0,
        "websiteName": "string",
        "url": "string",
        "channeltype": "string",
        "status": 0,
        "createddate": "2019-08-24T14:15:22Z",
        "snapshot": 0,
        "description": "string",
        "coverage": "string",
        "hotelSources": [],
        "hotelSources_backups": [
          {
            "mapID": 0,
            "hotelCode": 0,
            "websiteCode": 0,
            "baseurl": "string",
            "createddate": "2019-08-24T14:15:22Z",
            "hotelCodeNavigation": {
              "hotelCode": 0,
              "hotelName": "string",
              "hotelGroup": "string",
              "address": "string",
              "city": "string",
              "state": "string",
              "country": "string",
              "zip": "string",
              "lat": "string",
              "lng": "string",
              "rating": "string",
              "status": 0,
              "currencycode": "string",
              "propertyType": "string",
              "time_zone": "string",
              "time_zone_name": "string",
              "countrycode": "string",
              "hotelSources": [
                {}
              ],
              "hotelSources_backups": [
                {}
              ]
            },
            "websiteCodeNavigation": {}
          }
        ]
      }
    }
  ],
  "hotelSources_backups": [
    {
      "mapID": 0,
      "hotelCode": 0,
      "websiteCode": 0,
      "baseurl": "string",
      "createddate": "2019-08-24T14:15:22Z",
      "hotelCodeNavigation": {
        "hotelCode": 0,
        "hotelName": "string",
        "hotelGroup": "string",
        "address": "string",
        "city": "string",
        "state": "string",
        "country": "string",
        "zip": "string",
        "lat": "string",
        "lng": "string",
        "rating": "string",
        "status": 0,
        "currencycode": "string",
        "propertyType": "string",
        "time_zone": "string",
        "time_zone_name": "string",
        "countrycode": "string",
        "hotelSources": [
          {
            "mapID": 0,
            "hotelCode": 0,
            "websiteCode": 0,
            "baseurl": "string",
            "createddate": "2019-08-24T14:15:22Z",
            "modifieddate": "2019-08-24T14:15:22Z",
            "hotelCodeNavigation": {},
            "websiteCodeNavigation": {
              "websiteCode": 0,
              "websiteName": "string",
              "url": "string",
              "channeltype": "string",
              "status": 0,
              "createddate": "2019-08-24T14:15:22Z",
              "snapshot": 0,
              "description": "string",
              "coverage": "string",
              "hotelSources": [
                {}
              ],
              "hotelSources_backups": []
            }
          }
        ],
        "hotelSources_backups": [
          {}
        ]
      },
      "websiteCodeNavigation": {
        "websiteCode": 0,
        "websiteName": "string",
        "url": "string",
        "channeltype": "string",
        "status": 0,
        "createddate": "2019-08-24T14:15:22Z",
        "snapshot": 0,
        "description": "string",
        "coverage": "string",
        "hotelSources": [
          {
            "mapID": 0,
            "hotelCode": 0,
            "websiteCode": 0,
            "baseurl": "string",
            "createddate": "2019-08-24T14:15:22Z",
            "modifieddate": "2019-08-24T14:15:22Z",
            "hotelCodeNavigation": {
              "hotelCode": 0,
              "hotelName": "string",
              "hotelGroup": "string",
              "address": "string",
              "city": "string",
              "state": "string",
              "country": "string",
              "zip": "string",
              "lat": "string",
              "lng": "string",
              "rating": "string",
              "status": 0,
              "currencycode": "string",
              "propertyType": "string",
              "time_zone": "string",
              "time_zone_name": "string",
              "countrycode": "string",
              "hotelSources": [
                {}
              ],
              "hotelSources_backups": [
                {}
              ]
            },
            "websiteCodeNavigation": {}
          }
        ],
        "hotelSources_backups": []
      }
    }
  ]
}

Properties

Name Type Required Restrictions Description
websiteCode integer(int32) false none none
websiteName string¦null false none none
url string¦null false none none
channeltype string¦null false none none
status integer(int32)¦null false none none
createddate string(date-time)¦null false none none
snapshot integer(int32)¦null false none none
description string¦null false none none
coverage string¦null false none none
hotelSources [HotelSource]¦null false none none
hotelSources_backups [HotelSources_backup]¦null false none none

SourceMapRequestExampleValues

{
  "hotelcode": 0,
  "sources": 0,
  "urls": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
hotelcode integer(int32) false none none
sources [integer]¦null false none none
urls [string]¦null false none none

SourceMapRequestModel

{
  "hotelcode": 0,
  "sources": [
    0
  ],
  "urls": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
hotelcode integer(int32) true none none
sources [integer]¦null false none none
urls [string]¦null false none none

compset

{
  "hotelcode": 0,
  "competitorhotelcodes": [
    0
  ]
}

Properties

Name Type Required Restrictions Description
hotelcode integer(int32) false none none
competitorhotelcodes [integer]¦null false none none

hookreq

{
  "endpoint": "string",
  "authtype": "string",
  "username": "string",
  "password": "string",
  "token": "string"
}

Properties

Name Type Required Restrictions Description
endpoint string true none none
authtype string¦null false none none
username string¦null false none none
password string¦null false none none
token string¦null false none none

hotel

{
  "hotelCode": 0,
  "hotelName": "string",
  "hotelGroup": "string",
  "address": "string",
  "city": "string",
  "state": "string",
  "country": "string",
  "zip": "string",
  "lat": "string",
  "lng": "string",
  "rating": "string",
  "status": 0,
  "currencycode": "string",
  "propertyType": "string",
  "time_zone": "string",
  "time_zone_name": "string",
  "countrycode": "string",
  "hotelSources": [
    {
      "mapID": 0,
      "hotelCode": 0,
      "websiteCode": 0,
      "baseurl": "string",
      "createddate": "2019-08-24T14:15:22Z",
      "modifieddate": "2019-08-24T14:15:22Z",
      "hotelCodeNavigation": {
        "hotelCode": 0,
        "hotelName": "string",
        "hotelGroup": "string",
        "address": "string",
        "city": "string",
        "state": "string",
        "country": "string",
        "zip": "string",
        "lat": "string",
        "lng": "string",
        "rating": "string",
        "status": 0,
        "currencycode": "string",
        "propertyType": "string",
        "time_zone": "string",
        "time_zone_name": "string",
        "countrycode": "string",
        "hotelSources": [],
        "hotelSources_backups": [
          {
            "mapID": 0,
            "hotelCode": 0,
            "websiteCode": 0,
            "baseurl": "string",
            "createddate": "2019-08-24T14:15:22Z",
            "hotelCodeNavigation": {},
            "websiteCodeNavigation": {
              "websiteCode": 0,
              "websiteName": "string",
              "url": "string",
              "channeltype": "string",
              "status": 0,
              "createddate": "2019-08-24T14:15:22Z",
              "snapshot": 0,
              "description": "string",
              "coverage": "string",
              "hotelSources": [
                {}
              ],
              "hotelSources_backups": [
                {}
              ]
            }
          }
        ]
      },
      "websiteCodeNavigation": {
        "websiteCode": 0,
        "websiteName": "string",
        "url": "string",
        "channeltype": "string",
        "status": 0,
        "createddate": "2019-08-24T14:15:22Z",
        "snapshot": 0,
        "description": "string",
        "coverage": "string",
        "hotelSources": [
          {}
        ],
        "hotelSources_backups": [
          {
            "mapID": 0,
            "hotelCode": 0,
            "websiteCode": 0,
            "baseurl": "string",
            "createddate": "2019-08-24T14:15:22Z",
            "hotelCodeNavigation": {
              "hotelCode": 0,
              "hotelName": "string",
              "hotelGroup": "string",
              "address": "string",
              "city": "string",
              "state": "string",
              "country": "string",
              "zip": "string",
              "lat": "string",
              "lng": "string",
              "rating": "string",
              "status": 0,
              "currencycode": "string",
              "propertyType": "string",
              "time_zone": "string",
              "time_zone_name": "string",
              "countrycode": "string",
              "hotelSources": [],
              "hotelSources_backups": [
                {}
              ]
            },
            "websiteCodeNavigation": {}
          }
        ]
      }
    }
  ],
  "hotelSources_backups": [
    {
      "mapID": 0,
      "hotelCode": 0,
      "websiteCode": 0,
      "baseurl": "string",
      "createddate": "2019-08-24T14:15:22Z",
      "hotelCodeNavigation": {
        "hotelCode": 0,
        "hotelName": "string",
        "hotelGroup": "string",
        "address": "string",
        "city": "string",
        "state": "string",
        "country": "string",
        "zip": "string",
        "lat": "string",
        "lng": "string",
        "rating": "string",
        "status": 0,
        "currencycode": "string",
        "propertyType": "string",
        "time_zone": "string",
        "time_zone_name": "string",
        "countrycode": "string",
        "hotelSources": [
          {
            "mapID": 0,
            "hotelCode": 0,
            "websiteCode": 0,
            "baseurl": "string",
            "createddate": "2019-08-24T14:15:22Z",
            "modifieddate": "2019-08-24T14:15:22Z",
            "hotelCodeNavigation": {},
            "websiteCodeNavigation": {
              "websiteCode": 0,
              "websiteName": "string",
              "url": "string",
              "channeltype": "string",
              "status": 0,
              "createddate": "2019-08-24T14:15:22Z",
              "snapshot": 0,
              "description": "string",
              "coverage": "string",
              "hotelSources": [
                {}
              ],
              "hotelSources_backups": [
                {}
              ]
            }
          }
        ],
        "hotelSources_backups": []
      },
      "websiteCodeNavigation": {
        "websiteCode": 0,
        "websiteName": "string",
        "url": "string",
        "channeltype": "string",
        "status": 0,
        "createddate": "2019-08-24T14:15:22Z",
        "snapshot": 0,
        "description": "string",
        "coverage": "string",
        "hotelSources": [
          {
            "mapID": 0,
            "hotelCode": 0,
            "websiteCode": 0,
            "baseurl": "string",
            "createddate": "2019-08-24T14:15:22Z",
            "modifieddate": "2019-08-24T14:15:22Z",
            "hotelCodeNavigation": {
              "hotelCode": 0,
              "hotelName": "string",
              "hotelGroup": "string",
              "address": "string",
              "city": "string",
              "state": "string",
              "country": "string",
              "zip": "string",
              "lat": "string",
              "lng": "string",
              "rating": "string",
              "status": 0,
              "currencycode": "string",
              "propertyType": "string",
              "time_zone": "string",
              "time_zone_name": "string",
              "countrycode": "string",
              "hotelSources": [
                {}
              ],
              "hotelSources_backups": []
            },
            "websiteCodeNavigation": {}
          }
        ],
        "hotelSources_backups": [
          {}
        ]
      }
    }
  ]
}

Properties

Name Type Required Restrictions Description
hotelCode integer(int32) false none none
hotelName string¦null false none none
hotelGroup string¦null false none none
address string¦null false none none
city string¦null false none none
state string¦null false none none
country string¦null false none none
zip string¦null false none none
lat string¦null false none none
lng string¦null false none none
rating string¦null false none none
status integer(int32)¦null false none none
currencycode string¦null false none none
propertyType string¦null false none none
time_zone string¦null false none none
time_zone_name string¦null false none none
countrycode string¦null false none none
hotelSources [HotelSource]¦null false none none
hotelSources_backups [HotelSources_backup]¦null false none none

logreq

{
  "scheduleid": 0,
  "startdate": "2019-08-24T14:15:22Z",
  "enddate": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
scheduleid integer(int32) true none none
startdate string(date-time) true none none
enddate string(date-time) true none none

metareq

{
  "hotelcode": 0,
  "websitecode": 0,
  "checkin": "2019-08-24T14:15:22Z",
  "checkout": "2019-08-24T14:15:22Z",
  "pos": 0
}

Properties

Name Type Required Restrictions Description
hotelcode integer(int32) true none none
websitecode integer(int32) true none none
checkin string(date-time) true none none
checkout string(date-time) true none none
pos integer(int32)¦null false none none

newmapreq

{
  "hotelname": "string",
  "address": "string",
  "city": "string",
  "state": "string",
  "country": "string",
  "zip": "string",
  "latitude": 0,
  "longitude": 0,
  "url": [
    "string"
  ],
  "websitecodes": [
    0
  ]
}

Properties

Name Type Required Restrictions Description
hotelname string true none none
address string¦null false none none
city string true none none
state string true none none
country string true none none
zip string true none none
latitude number(double)¦null false none none
longitude number(double)¦null false none none
url [string]¦null false none none
websitecodes [integer]¦null false none none

ratereq

{
  "hotelcode": 0,
  "checkin": "2019-08-24T14:15:22Z",
  "checkout": "2019-08-24T14:15:22Z",
  "guests": 0,
  "currency": "string",
  "websitecode": 0,
  "pos": 0,
  "snapshot": true
}

Properties

Name Type Required Restrictions Description
hotelcode integer(int64) true none none
checkin string(date-time) true none none
checkout string(date-time) true none none
guests integer(int32) true none none
currency string true none none
websitecode integer(int32) true none none
pos integer(int32)¦null false none none
snapshot boolean¦null false none none

rateshopreq

{
  "rateshopname": "string",
  "los": 1,
  "occupancy": 1,
  "currency": "string",
  "currencies": [
    "string"
  ],
  "fetchtype": 0,
  "horizon": 1,
  "hotelcodes": [
    0
  ],
  "compsets": [
    {
      "hotelcode": 0,
      "competitorhotelcodes": [
        0
      ]
    }
  ],
  "sources": [
    0
  ],
  "horizonexpression": "string",
  "horizonrange": "string",
  "pos": 0
}

Properties

Name Type Required Restrictions Description
rateshopname string true none none
los integer(int32) true none none
occupancy integer(int32) true none none
currency string¦null false none none
currencies [string]¦null false none none
fetchtype integer(int32) false none none
horizon integer(int32) false none none
hotelcodes [integer]¦null false none none
compsets [compset]¦null false none none
sources [integer]¦null false none none
horizonexpression string¦null false none none
horizonrange string¦null false none none
pos integer(int32)¦null false none none

runshop

{
  "rateshopid": 0,
  "startdate": "2019-08-24T14:15:22Z",
  "horizon": 0,
  "horizonexpression": "string",
  "sources": [
    0
  ],
  "hotelcodes": [
    0
  ],
  "compsets": [
    {
      "hotelcode": 0,
      "competitorhotelcodes": [
        0
      ]
    }
  ],
  "snapshot": true
}

Properties

Name Type Required Restrictions Description
rateshopid integer(int32) true none none
startdate string(date-time)¦null false none none
horizon integer(int32)¦null false none none
horizonexpression string¦null false none none
sources [integer]¦null false none none
hotelcodes [integer]¦null false none none
compsets [compset]¦null false none none
snapshot boolean¦null false none none

schedulereq

{
  "schedulename": "string",
  "rateshopid": 0,
  "year": "string",
  "month": "string",
  "dow": "string",
  "day": "string",
  "hour": "string",
  "minute": "string",
  "seconds": "string",
  "status": 1,
  "startdate": "2019-08-24T14:15:22Z",
  "enddate": "2019-08-24T14:15:22Z"
}

Properties

Name Type Required Restrictions Description
schedulename string true none none
rateshopid integer(int32) true none none
year string true none none
month string true none none
dow string true none none
day string true none none
hour string true none none
minute string true none none
seconds string true none none
status integer(int32) true none none
startdate string(date-time) true none none
enddate string(date-time)¦null false none none