NAV
Shell HTTP JavaScript Ruby Python PHP Java Go

RoomRates API v3

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.

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Authorization

Each request to the RatesAPI must be authenticated with an access token. You can obtain this token by logging in with the credentials provided in your RatesAPI packet. The access token is valid for 24 hours from the time of generation.

The access token must be included in the 'Authorization' header, as shown in the example below: If your access token is A90324XXZUZUgpO0dd6npHcM83CJ..., every request should include the following header: Authorization: Bearer A90324XXZUZUgpO0dd6npHcM83CJ...

Authorizing Requests on This Page

When making requests through the Swagger Explorer, the Access Token will be automatically added to the Authorization Header. The token should appear in the textbox located at the top-right corner of the page. If this does not occur automatically, you can manually copy the access token obtained via the POST/authtoken method and paste it into the textbox.

Usage Workflow

Images

Authentication

Code samples

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

POST /authtoken HTTP/1.1

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

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

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

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

p JSON.parse(result)

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

r = requests.post('/authtoken', 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','/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"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    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

Implementation Notes

This endpoint authenticates the validity of a username and password combination. A valid token will be generated if the authentication is successful. Use the username and password provided to you in your RatesAPI packet.

Mandatory fields:

Body parameter

{
  "username": "string",
  "password": "string"
}

Parameters

Name In Type Required Description
body body LoginUserReq false none

Example responses

200 Response

{
  "access_token": "string",
  "token_type": "string",
  "expires_in": 0,
  "userName": "string",
  ".issued": "string",
  ".expires": "string"
}

Responses

Status Meaning Description Schema
200 OK Successful retrieval of user information. userresp
400 Bad Request Invalid grant type. None
401 Unauthorized Authentication failed or account validity expired. None
500 Internal Server Error Internal server error. None

Account

Get Credits

Code samples

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

GET /credits HTTP/1.1

Accept: application/json

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

fetch("/credits", {
  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: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.get('/credits', 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");
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

Implementation Notes

This method retrieves the call limitations associated with your account. These limitations are defined by the commercial terms of your account, which were established when the account was created and may be updated to reflect any changes in those terms.

Parameters:

Example responses

200 Response

{
  "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
  }
}

Responses

Status Meaning Description Schema
200 OK Success credit
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

References

Get Currencies

Code samples

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

GET /currencies HTTP/1.1

Accept: application/json

const headers = {
  Accept: "application/json",
  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 = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

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

r = requests.get('/currencies', 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','/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{
        "Accept": []string{"application/json"},
        "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

Implementation Notes

This API call returns a list of supported currencies along with the acceptable format for the RatesAPI. The currency code is used when passing the currency parameter in the /rateshop method to specify the currency.

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success currencyresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Get Countries

Code samples

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

GET /countries HTTP/1.1

Accept: application/json

const headers = {
  Accept: "application/json",
  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 = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

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

r = requests.get('/countries', 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','/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{
        "Accept": []string{"application/json"},
        "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

Implementation Notes

This API call returns a list of supported country names along with the acceptable format for the RatesAPI. It is used in the /hotels method when specifying the country parameter while searching for a specific hotel.

Example responses

200 Response

["string"]

Responses

Status Meaning Description Schema
200 OK Success countryresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Get Sources

Code samples

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

GET /sources HTTP/1.1

Accept: application/json

const headers = {
  Accept: "application/json",
  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 = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

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

r = requests.get('/sources', 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','/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{
        "Accept": []string{"application/json"},
        "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

Implementation Notes

This API call returns a list of available sources along with the unique identifier assigned to each in the RatesAPI. This enables you to specify a particular source ID when creating a RateShop.

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success sourceresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Get Room Types

Code samples

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

GET /roomtypes HTTP/1.1

Accept: application/json

const headers = {
  Accept: "application/json",
  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 = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

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

r = requests.get('/roomtypes', 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','/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{
        "Accept": []string{"application/json"},
        "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

Implementation Notes

This API call returns a list of room type categories along with the unique identifier assigned to each in the RatesAPI. The API maps source-specific room types into broader categories for comparison purposes.

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success typeresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Get Meal Plans

Code samples

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

GET /mealplans HTTP/1.1

Accept: application/json

const headers = {
  Accept: "application/json",
  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 = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

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

r = requests.get('/mealplans', 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','/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{
        "Accept": []string{"application/json"},
        "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

Implementation Notes

This API call returns a list of meal plan categories along with the unique identifier assigned to each in the RatesAPI. The API maps source-specific meal plans into broader categories for comparison.

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success typeresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Get Conditions

Code samples

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

GET /conditions HTTP/1.1

Accept: application/json

const headers = {
  Accept: "application/json",
  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 = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

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

r = requests.get('/conditions', 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','/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{
        "Accept": []string{"application/json"},
        "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

Implementation Notes

This API call returns a list of booking condition categories along with the unique identifier assigned to each in the RatesAPI. The API maps source-specific conditions into broader categories for comparison.

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success typeresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Get Status Codes

Code samples

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

GET /statuscodes HTTP/1.1

Accept: application/json

const headers = {
  Accept: "application/json",
  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 = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

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

r = requests.get('/statuscodes', 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','/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{
        "Accept": []string{"application/json"},
        "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

Implementation Notes

This API call returns a list of status codes you may receive as a response when making any requests in the RatesAPI.

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success typeresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error 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

Implementation Notes

This API provides a list of POS options available for different geographic regions.

Responses

Status Meaning Description Schema
200 OK Success None
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Rates

Create Hotelrates

Code samples

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

POST /hotelrates HTTP/1.1

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

const inputBody = `{
  "hotelcode": 2005,
  "checkin": "2019-08-24",
  "checkout": "2019-08-24",
  "guests": 1,
  "currency": "USD",
  "websitecode": 2,
  "pos": 0,
  "snapshot": false
}`;
const headers = {
  'Content-Type':'application/json',
  'Accept':'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',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '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',
    'Accept' => '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"},
        "Accept": []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

Implementation Notes

This API call allows you to make a granular request to receive the rates data for a single day. It accepts the parameters listed below and retrieves the rate data. Due to its limitations, this API should be used exclusively for demo or quality control purposes.

Parameters:

Example:
{
"hotelcode": 30388,
"checkin": "2024-09-25",
"checkout": "2024-09-26",
"guests": 1,
"currency": "USD",
"websitecode": 1,
"pos": 0,
"snapshot": false
}

Body parameter

{
  "hotelcode": 2005,
  "checkin": "2019-08-24",
  "checkout": "2019-08-24",
  "guests": 1,
  "currency": "USD",
  "websitecode": 2,
  "pos": 0,
  "snapshot": false
}

Parameters

Name In Type Required Description
body body ratereq false none

Example responses

200 Response

{
  "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"
}

Responses

Status Meaning Description Schema
200 OK Success rateresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
429 Too Many Requests You have exceeded your access limit None
500 Internal Server Error Internal server error None

Create Runrateshop

Code samples

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

POST /runrateshop HTTP/1.1

Content-Type: application/json
Accept: 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',
  'Accept':'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',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': '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',
    'Accept' => '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"},
        "Accept": []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

Implementation Notes

This API call executes the RateShop to retrieve rates based on the configuration parameters defined during the RateShop creation. The only mandatory parameter is the rateshop ID. While all request parameters can be set at the time of RateShop creation, you may opt to define certain parameters, such as the horizon, hotel code, source code, and comp sets, at runtime. Even if these parameters were set during creation, they can still be overridden during execution.

queueid - A unique ID generated upon successful execution of the RateShop, used to check the queue status and retrieve rate data via the API.
approximatetime - The estimated time to process the RateShop, in seconds.

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 runrateshopreq false none

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success ratepullresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Get Runstatus

Code samples

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

GET /runstatus/{queueid} HTTP/1.1

Accept: application/json

const headers = {
  Accept: "application/json",
  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 = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

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

r = requests.get('/runstatus/{queueid}', 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','/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{
        "Accept": []string{"application/json"},
        "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}

Implementation Notes

This API call retrieves the status of a run rateshop request by accepting the queue ID as an input parameter.

The available status codes are:

Parameters

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

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success runstatusresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Create Ratesbyqueue

Code samples

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

POST /ratesbyqueue/{queueid} HTTP/1.1

Accept: application/json

const headers = {
  Accept: "application/json",
  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 = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

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

r = requests.post('/ratesbyqueue/{queueid}', 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('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{
        "Accept": []string{"application/json"},
        "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}

Implementation Notes

This API call enables you to retrieve rate data once the queue has completed, using the queue ID as an input parameter.

Parameters

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

Example responses

200 Response

{
  "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
}

Responses

Status Meaning Description Schema
200 OK Success ratesbyqueue
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Hotel Information

Search Hotels

Code samples

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

POST /hotels HTTP/1.1

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

const inputBody = `{
  "hotelname": "",
  "country": "United States Of America",
  "city": "",
  "state": "",
  "zip": "",
  "keyword": "",
  "pagenumber": 0,
  "pagesize": 0,
  "geolocation": {
    "latitude": "",
    "longitude": "",
    "radius": "5km"
  }
}`;
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  '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' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  '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' => 'application/json',
    '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{"application/json"},
        "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

Implementation Notes

This API call retrieves a list of all hotels available in the RatesAPI database for rate retrieval. If a hotel you wish to retrieve rate for is not listed, please send the request using POST /Hotelmaprequest endpoint. We will make efforts to add the hotel to our database within 24 to 72 business hours.

Parameters:

Mandatory Fields:


Note: Either the country or geoLocationFilter are mandatory parameters. When using geoLocationFilter, all three sub-parameters (latitude, longitude, and radius) are required. All other parameters are optional.

Body parameter

{
  "hotelname": "",
  "country": "United States Of America",
  "city": "",
  "state": "",
  "zip": "",
  "keyword": "",
  "pagenumber": 0,
  "pagesize": 0,
  "geolocation": {
    "latitude": "",
    "longitude": "",
    "radius": "5km"
  }
}

Parameters

Name In Type Required Description
body body hotelsearch false none

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success hotelsresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Create Hotelmaprequest

Code samples

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

POST /hotelmaprequest HTTP/1.1

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

const inputBody = `{
  "hotelname": "",
  "address": "",
  "city": "",
  "state": "",
  "country": "",
  "zip": "",
  "latitude": 0,
  "longitude": 0,
  "url": [
    "string"
  ],
  "websitecodes": [
    0
  ]
}`;
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'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' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  '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' => 'application/json',
    '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{"application/json"},
        "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

Implementation Notes

This method enables users to add a new hotel to the RatesAPI database if it is not already listed. Users can provide details such as the hotel name, address, geographic coordinates, and optionally include reference URLs or preferred website codes to assist with mapping. A unique requestid is automatically generated for each mapping request.

Mandatory Fields:

Body parameter

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

Parameters

Name In Type Required Description
body body newmapreq false none

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success newmapresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Get Maprequeststatus

Code samples

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

GET /maprequeststatus/{requestid} HTTP/1.1

Accept: application/json

const headers = {
  Accept: "application/json",
  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 = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

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

r = requests.get('/maprequeststatus/{requestid}', 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','/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{
        "Accept": []string{"application/json"},
        "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}

Implementation Notes

This endpoint returns the status of a hotel map request. It requires the requestid as an input parameter to retrieve the current status.

Status Codes:

Parameters

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

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success newmapresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Search by Hotel Code

Code samples

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

POST /hotelinfo HTTP/1.1

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

const inputBody = `{
  "hotelcode": 2005,
  "hotelcodes": [
    0
  ]
}`;
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'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' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  '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' => 'application/json',
    '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{"application/json"},
        "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

Implementation Notes

This API call utilizes the hotelcode obtained from the POST/hotels endpoint to retrieve a list of sources available for a specific hotel. If a source you wish to retrieve rates for is not configured with the hotel, please send the request using POST /sourcemaprequest endpoint. We will make efforts to add the source to our database within 24 to 72 business hours.

Parameters:

Mandatory Fields:

Body parameter

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

Parameters

Name In Type Required Description
body body hotelinfo false none

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success hotelinforesp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error 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 Sourcemap

Code samples

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

GET /sourcemaprequest/{requestid} HTTP/1.1

Accept: application/json

const headers = {
  Accept: "application/json",
  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 = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

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

r = requests.get('/sourcemaprequest/{requestid}', 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','/sourcemaprequest/{requestid}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/sourcemaprequest/{requestid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"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}

Implementation Notes

This endpoint returns the status of a source map request. It requires the requestid as an input parameter to retrieve the current status.

Status Codes:

Parameters

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

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success sourcemapresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error 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,
  "horizonrange": "2025/08/18,2025/08/20-2025/08/25",
  "directsource": 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

Implementation Notes

This endpoint allows you to create a rate shop, which is a collection of hotel codes, source codes and related parameters: Length of Stay (LOS), Occupancy, Horizon, POS and Currency, for which rate information is requested. The maximum value allowed for the horizon is 365 days. Use any one of the horizon fields listed below.

Parameters:

Mandatory Fields:

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,
  "horizonrange": "2025/08/18,2025/08/20-2025/08/25",
  "directsource": 0
}

Parameters

Name In Type Required Description
body body newrateshop false none

Example responses

200 Response

{
  "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
}

Responses

Status Meaning Description Schema
200 OK Success rateshopinfo
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Get Rateshop List

Code samples

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

GET /rateshoplist HTTP/1.1

Accept: application/json

const headers = {
  Accept: "application/json",
  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 = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

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

r = requests.get('/rateshoplist', 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','/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{
        "Accept": []string{"application/json"},
        "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

Implementation Notes

This API call allows you to retrieve the list of active rate shops created in your account along with their configuration details.

Example responses

200 Response

{
  "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
}

Responses

Status Meaning Description Schema
200 OK Success rateshopinfo
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
404 Not Found Record Not Found None
500 Internal Server Error Internal server error None

Get Rateshop

Code samples

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

GET /rateshop/{rateshopid} HTTP/1.1

Accept: application/json

const headers = {
  Accept: "application/json",
  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 = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

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

r = requests.get('/rateshop/{rateshopid}', 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','/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{
        "Accept": []string{"application/json"},
        "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}

Implementation Notes

This API endpoint takes the rateshop ID as an input parameter and returns the configuration details associated with that rateshop ID.

Parameters

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

Example responses

200 Response

{
  "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
}

Responses

Status Meaning Description Schema
200 OK Success rateshopinfo
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

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)
    // ...
}

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

DELETE /rateshop/{rateshopid}

Implementation Notes

This API call enables you to delete a RateShop from your account. It accepts the rateshop ID as a parameter and returns the status of the request.

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 Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Schedules

Create Schedule

Code samples

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

POST /schedule HTTP/1.1

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

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':'application/json',
  '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' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  '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' => 'application/json',
    '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{"application/json"},
        "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

Implementation Notes

This endpoint allows you to create custom schedules for executing rate shops at specified dates and times.

Parameters:

Note: All schedules are queued at the fifty-fifth minute of the previous hour. As a result, any job scheduled within the current hour will only run the following day.

Mandatory Fields:

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

{
  "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"
}

Responses

Status Meaning Description Schema
200 OK Success schedule
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Get Schedule List

Code samples

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

GET /schedulelist HTTP/1.1

Accept: application/json

const headers = {
  Accept: "application/json",
  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 = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

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

r = requests.get('/schedulelist', 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','/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{
        "Accept": []string{"application/json"},
        "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

Implementation Notes

This API call retrieves the list of active schedules defined in your account.

Example responses

200 Response

{
  "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"
}

Responses

Status Meaning Description Schema
200 OK Success schedule
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Get Schedule

Code samples

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

GET /schedule/{scheduleid} HTTP/1.1

Accept: application/json

const headers = {
  Accept: "application/json",
  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 = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

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

r = requests.get('/schedule/{scheduleid}', 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','/schedule/{scheduleid}', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/schedule/{scheduleid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"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}

Implementation Notes

This API call retrieves the configuration details of a specific schedule based on the provided schedule ID.

Parameters

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

Example responses

200 Response

{
  "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"
}

Responses

Status Meaning Description Schema
200 OK Success schedule
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Delete Schedule

Code samples

# You can also use wget
curl -X DELETE /schedule/{scheduleid} \
  -H 'Authorization: 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

Update Schedule

Code samples

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

PUT /schedule/{scheduleid} HTTP/1.1

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

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':'application/json',
  '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' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  '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' => 'application/json',
    '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{"application/json"},
        "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}

Implementation Notes

This API call enables you to modify a schedule configuration by providing the scheduleid as an input.

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

{
  "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"
}

Responses

Status Meaning Description Schema
200 OK Success schedule
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

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}

Implementation Notes

This endpoint enables you to delete an existing schedule by providing the schedule ID as input and returns the status of the request.

Parameters

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

Responses

Status Meaning Description Schema
200 OK Success None
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Create Schedulelog

Code samples

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

POST /schedulelog HTTP/1.1

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

const inputBody = `{
  "scheduleid": 0,
  "startdate": "2019-08-24",
  "enddate": "2019-08-24"
}`;
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  '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' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  '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' => 'application/json',
    '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{"application/json"},
        "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

Implementation Notes

This API call allows you to retrieve the schedule log, which includes execution date and time, the corresponding queue ID, and the username of active schedules by providing the schedule ID as an input parameter. By default, it retrieves schedules executed on the current date, but you can filter the results using the startdate and enddate parameters.

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,
  "rateshopid": 0,
  "queueid": 0,
  "executedat": "2019-08-24"
}

Responses

Status Meaning Description Schema
200 OK Success schedulelog
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Hooks

Create Queuealerts

Code samples

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

POST /hooks/queuealerts HTTP/1.1

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

const inputBody = `{
  "endpoint": "string",
  "authtype": "string",
  "username": "string",
  "password": "string",
  "token": "string"
}`;
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  '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' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  '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' => 'application/json',
    '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{"application/json"},
        "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

Implementation Notes

This API call uses a Web Hook to deliver the queue status to a designated endpoint you specify. If a hook is defined, the status—whether successful completion or termination due to an error—will be sent to your endpoint.

Authentication types and its descriptions:

This hook will POST the following JSON schema to your endpoint.

{
"queueid": 31570988,
"rateshopid": 28719364,
"statuscode": 2,
"statusmessage": "Completed",
"creditused": 240,
"totalrows": 1003
}

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

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

Responses

Status Meaning Description Schema
200 OK Success ratehookresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Create Rate

Code samples

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

POST /hooks/rate HTTP/1.1

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

const inputBody = `{
  "endpoint": "string",
  "authtype": "string",
  "username": "string",
  "password": "string",
  "token": "string"
}`;
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  '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' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

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

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  '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' => 'application/json',
    '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{"application/json"},
        "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

Implementation Notes

This API call uses a WebHook to deliver the rate data generated by your RateShop to a designated endpoint you specify. If a hook is defined, the rates will be automatically sent to this endpoint once the queue is completed.

Authentication types and its descriptions:

This hook will POST the following JSON schema to your endpoint.

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

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

Responses

Status Meaning Description Schema
200 OK Success ratehookresp
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Realtime

Create Shoprealtime

Code samples

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

POST /shoprealtime HTTP/1.1

Content-Type: application/json
Accept: 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',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

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

p JSON.parse(result)

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

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

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

POST /shoprealtime

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 shoprealtimerequest false none

Example responses

200 Response

{
  "queueid": 0
}

Responses

Status Meaning Description Schema
200 OK Success shoprealtimeresponse
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
429 Too Many Requests You have exceeded your access limit None
500 Internal Server Error Internal server error None

Create Realtimeratesbyqueue

Code samples

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

POST /realtimeratesbyqueue/{queueid} HTTP/1.1

Accept: application/json

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

fetch("/realtimeratesbyqueue/{queueid}", {
  method: "POST",

  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.post '/realtimeratesbyqueue/{queueid}',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.post('/realtimeratesbyqueue/{queueid}', 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('POST','/realtimeratesbyqueue/{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("/realtimeratesbyqueue/{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{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

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

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

POST /realtimeratesbyqueue/{queueid}

Parameters

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

Example responses

200 Response

{
  "queueId": 0,
  "rateshopId": 0,
  "hotelCode": 0,
  "subjectHotelCode": 0,
  "websiteCode": 0,
  "dtCollected": "2019-08-24",
  "checkIn": "2019-08-24",
  "checkOut": "2019-08-24",
  "los": 0,
  "guests": 0,
  "roomType": "string",
  "onsiteRate": 0.1,
  "netRate": 0.1,
  "currency": "string",
  "roomDescription": "string",
  "ratePlan": "string",
  "mealPlan": "string",
  "roomAmenities": "string",
  "occupancy": 0,
  "sourceUrl": "string",
  "isPromo": true,
  "closed": true,
  "discount": 0.1,
  "promoName": "string",
  "roomTypeCode": 0,
  "ratePlanCode": 0,
  "mealPlanCode": 0,
  "statusCode": 0,
  "taxStatus": 0,
  "taxType": "string",
  "taxAmount": 0.1,
  "pos": 0,
  "isRatePerStay": true,
  "minStay": 0,
  "optionalExtras": "string",
  "payPlan": "string",
  "channelType": "string",
  "isRealtime": true
}

Responses

Status Meaning Description Schema
200 OK Success realtimeratesbyqueueresponse
202 Accepted Accepted None
400 Bad Request Bad Request None
401 Unauthorized Authentication Failed or Account validity expired None
500 Internal Server Error Internal server error None

Schemas

HooksRateExamplevalue

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

Properties

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

HotelExamplevalues

{
  "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

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 false none none
address string false none none
city string false none none
state string false none none
country string false none none
zip string false none none
latitude 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 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

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 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 false none none
createddate string(date-time)¦null false none none
hotelCodeNavigation hotel false none none
websiteCodeNavigation Source false none none

LoginUserReq

{
  "username": "string",
  "password": "string"
}

Properties

Name Type Required Restrictions Description
username string true none none
password string true none none

MetarespExample

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

Properties

Name Type Required Restrictions Description
checkout string false none none
checkin string 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 false none none
authtype string false none none
username string false none none
password string false none none
token string false none none

RateshopExampleValues

{
  "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
rateshopname string false none none
los integer(int32) false none none
occupancy integer(int32) false none none
currency string 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

ScheduleExampleValues

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

Properties

Name Type Required Restrictions Description
schedulename string false none none
rateshopid integer(int32) 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 integer(int32) false none none
startdate string false none none
enddate string false none none

SchedulelogExamplevalues

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

Properties

Name Type Required Restrictions Description
scheduleid integer(int32) false none none
startdate string 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 false none none
url string false none none
channeltype string 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 false none none
coverage string 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 false none none
username string false none none
password string false none none
token string 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 false none none
hotelGroup string false none none
address string false none none
city string false none none
state string false none none
country string false none none
zip string false none none
lat string false none none
lng string false none none
rating string false none none
status integer(int32)¦null false none none
currencycode string false none none
propertyType string false none none
time_zone string false none none
time_zone_name string false none none
countrycode string 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

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 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 false none none
horizonrange string 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 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

userresp

{
  "access_token": "string",
  "token_type": "string",
  "expires_in": 0,
  "userName": "string",
  ".issued": "string",
  ".expires": "string"
}

Properties

Name Type Required Restrictions Description
access_token string false none Access token
token_type string false none none
expires_in number false none none
userName string false none none
.issued string false none none
.expires string false none none

shoprealtimerequest

{
  "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 true 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

shoprealtimeresponse

{
  "queueid": 0
}

Properties

Name Type Required Restrictions Description
queueid integer false none none

realtimeratesbyqueueresponse

{
  "queueId": 0,
  "rateshopId": 0,
  "hotelCode": 0,
  "subjectHotelCode": 0,
  "websiteCode": 0,
  "dtCollected": "2019-08-24",
  "checkIn": "2019-08-24",
  "checkOut": "2019-08-24",
  "los": 0,
  "guests": 0,
  "roomType": "string",
  "onsiteRate": 0.1,
  "netRate": 0.1,
  "currency": "string",
  "roomDescription": "string",
  "ratePlan": "string",
  "mealPlan": "string",
  "roomAmenities": "string",
  "occupancy": 0,
  "sourceUrl": "string",
  "isPromo": true,
  "closed": true,
  "discount": 0.1,
  "promoName": "string",
  "roomTypeCode": 0,
  "ratePlanCode": 0,
  "mealPlanCode": 0,
  "statusCode": 0,
  "taxStatus": 0,
  "taxType": "string",
  "taxAmount": 0.1,
  "pos": 0,
  "isRatePerStay": true,
  "minStay": 0,
  "optionalExtras": "string",
  "payPlan": "string",
  "channelType": "string",
  "isRealtime": true
}

Properties

Name Type Required Restrictions Description
queueId integer false none none
rateshopId integer false none none
hotelCode integer false none none
subjectHotelCode integer false none none
websiteCode integer false none none
dtCollected string(date) false none none
checkIn string(date) false none none
checkOut string(date) false none none
los integer false none none
guests integer false none none
roomType string false none none
onsiteRate number(double)¦null false none none
netRate number(double)¦null false none none
currency string false none none
roomDescription string false none none
ratePlan string false none none
mealPlan string false none none
roomAmenities string false none none
occupancy integer false none none
sourceUrl string false none none
isPromo boolean false none none
closed boolean false none none
discount number(double)¦null false none none
promoName string false none none
roomTypeCode integer false none none
ratePlanCode integer false none none
mealPlanCode integer false none none
statusCode integer false none none
taxStatus integer false none none
taxType string false none none
taxAmount number(double)¦null false none none
pos integer false none none
isRatePerStay boolean false none none
minStay integer false none none
optionalExtras string false none none
payPlan string false none none
channelType string false none none
isRealtime boolean false none none

realtimeratesbyqueuerequest

{
  "queueid": 0
}

Properties

Name Type Required Restrictions Description
queueid integer true none none

ratehookreq

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

Properties

Name Type Required Restrictions Description
endpoint string true none none
authtype string true none none
username string true none none
password string true none none
token string true 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": "",
  "pagenumber": 0,
  "pagesize": 0,
  "geolocation": {
    "latitude": "",
    "longitude": "",
    "radius": "5km"
  }
}

Properties

Name Type Required Restrictions Description
hotelname string false none none
country string false none none
city number false none none
state string false none none
zip string false none none
keyword string false none none
pagenumber number false none none
pagesize number false none none
geolocation object false none none
» latitude string false none none
» longitude string false none none
» radius 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

runrateshopreq

{
  "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

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

Properties

Name Type Required Restrictions Description
hotelcode number false none none
hotelcodes [number] false none none

hotelinforesp

{
  "hotelcode": 0,
  "hotelname": "string",
  "address": "string",
  "city": "string",
  "state": "string",
  "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

ratereq

{
  "hotelcode": 2005,
  "checkin": "2019-08-24",
  "checkout": "2019-08-24",
  "guests": 1,
  "currency": "USD",
  "websitecode": 2,
  "pos": 0,
  "snapshot": false
}

Properties

Name Type Required Restrictions Description
hotelcode number true none none
checkin string(date) true none none
checkout string(date) true none none
guests number true none none
currency string true none none
websitecode number true none none
pos number true none none
snapshot boolean true 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

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,
  "horizonrange": "2025/08/18,2025/08/20-2025/08/25",
  "directsource": 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
horizonrange string false none none
directsource 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

RatesbyqueueResponse

{
  "queueId": 0,
  "rateshopId": 0,
  "hotelCode": 0,
  "subjectHotelCode": 0,
  "websiteCode": 0,
  "dtCollected": "2019-08-24",
  "checkIn": "2019-08-24",
  "checkOut": "2019-08-24",
  "los": 0,
  "guests": 0,
  "roomType": "string",
  "onsiteRate": 0,
  "netRate": 0,
  "currency": "string",
  "roomDescription": "string",
  "ratePlan": "string",
  "mealPlan": "string",
  "roomAmenities": "string",
  "occupancy": 0,
  "sourceUrl": "string",
  "isPromo": true,
  "closed": true,
  "discount": 0,
  "promoName": "string",
  "roomTypeCode": 0,
  "ratePlanCode": 0,
  "mealPlanCode": 0,
  "statusCode": 0,
  "taxStatus": "string",
  "taxType": "string",
  "taxAmount": 0,
  "pos": 0,
  "isRatePerStay": "string",
  "minStay": 0,
  "optionalExtras": "string",
  "payPlan": "string",
  "channelType": "string"
}

Properties

Name Type Required Restrictions Description
queueId number false none none
rateshopId 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
checkIn string(date) false none none
checkOut 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
roomDescription string false none none
ratePlan string false none none
mealPlan string false none none
roomAmenities string false none none
occupancy number false none none
sourceUrl string false none none
isPromo boolean false none none
closed boolean false none none
discount number false none none
promoName string false none none
roomTypeCode number false none none
ratePlanCode number false none none
mealPlanCode number false none none
statusCode number false none none
taxStatus string false none none
taxType string false none none
taxAmount number false none none
pos number false none none
isRatePerStay string false none none
minStay number false none none
optionalExtras string false none none
payPlan string false none none
channelType string false none none

ratesbyqueue

{
  "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 true none none
rateshopid number true none none
queueid number true none none
executedat string(date) true 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

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

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

metareq

{
  "hotelcode": 0,
  "websitecode": 0,
  "checkin": "2019-08-24",
  "checkout": "2019-08-24"
}

Properties

Name Type Required Restrictions Description
hotelcode number false none none
websitecode number false none none
checkin string(date) false none none
checkout string(date) false none none

newmapreq

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

Properties

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

newmapresp

{
  "requestid": 0,
  "referencehotelcodes": [0],
  "statuscode": 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"],
  "channeltype": ["string"]
}

Properties

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

sourcemapresp

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

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
channeltype [string] false none none