The nexus/search API endpoint will be used for full availability queries. Returned will be a sale price for each rate type and offer, that contains a modified Smith margin, equalling a discount off the amount we currently store for the property. This will be managed with a discount code, stored in the database against the reseller’s access credentials. On request rates will not be quoted to resellers.
Any rate type or offer may be marked as package only. This will be indicated by the must_package flag in the nexus/search response. If set to ‘yes’ then this rate type or offer may only be sold when the property is being packaged, and not as a property-only booking. Any rate that has must_package = 'yes' should not be displayed on any public facing website.
Sample request
<request>
<date_from>YYYY-MM-DD</date_from>
<nights>N</nights>
<rooms>
<room>
<adults>1</adults>
<inventory_id>1</inventory_id>
</room>
<room>
<adults>1</adults>
<children>1</children>
<child_ages>
<child_age>12</child_age>
</child_ages>
<inventory_id>2</inventory_id>
</room>
<room>
<adults>2</adults>
<children>1</children>
<infants>1</infants>
<child_ages>
<child_age>1</child_age>
<child_age>13</child_age>
</child_ages>
<inventory_id>3</inventory_id>
</room>
</rooms>
<property_ids>
<property_id>N</property_id>
<property_id>N</property_id>
</property_ids>
</request>
http://{endpoint}/nexus/search
"api": {
      "status": "ok",
       "error": "None",
        "data": {
            "request": {
                  "username": "dev",
                   "version": "2",
                   "date_from": "2025-05-10",
                    "nights": "2",
                    "property_ids": [
"8529"
],
"hash": "2f4509b9f0a450ac766d1ad39c1d3ebb"
},
"environment": {
"timestamp": 1741800743,
"timezone": "Europe/London"
},
"filters": [
"date_from",
"nights",
"property_ids",
"smith_site",
"locale",
"date_to",
"on_request"
],
The required XML parameter has been broken into two for clarity in this document
This appears in the <hotels> node above, and is repeated once for each valid property
"hotel_count": 1,
"result_count": 1,
"result": {
"hotels": {
"8998": {
"id": 8998,
"hotel_id": 8998,
"property_status": "active",
"updated": "1741700357",
"currency": "GBP",
"hotel_tax_rate": "20",
"doubles_from_ex_tax": 187.5,
"doubles_from_inc_tax": 225,
"must_package_only": "no",
"on_request_only": false,
"hotel_on_request_only": false,
"unavailable": false,
"rooms": {
"41077": {
"id": 41077,
"updated": "1714487364",
"availability": "11",
"on_request": "inactive",
"must_package_only": "no",
"inventory_ids": [],
"priority": "2",
"rates": [
{
"rate_type": "Net rate",
"type_id": "88415",
"offer_id": null,
"offer_name": null,
"type_name": "Net rate",
"ratetype_id": "88415",
"custom_inclusions": null,
"rate_code": "N",
"non_refundable": "no",
"must_package": "yes",
"chained": false,
"updated": "1713792223",
"availability": 11,
"prices": {
"customer": {
"inc_tax": 388.25,
"ex_tax": 323.54
},
"sale": {
"inc_tax": 353.3,
"ex_tax": 294.42
},
"extras": {
"inc_tax": 0,
"ex_tax": 0
},
"additional_fees": null
},
"alternative_prices": [
{
"customer": {
"inc_tax": 456.76,
"ex_tax": 380.64
},
"sale": {
"inc_tax": 415.65,
"ex_tax": 346.37
},
"extras": {
"inc_tax": 0,
"ex_tax": 0
},
"adults": 1,
"days": [
{
"prices": {
"customer": {
"inc_tax": 228.38,
"ex_tax": 190.32
},
"sale": {
"inc_tax": 207.82,
"ex_tax": 173.19
},
"extras": {
"inc_tax": 0,
"ex_tax": 0
},
"Additional_fees": null
}
},
{
"prices": {
"customer": {
"inc_tax": 228.38,
"ex_tax": 190.32
},
"sale": {
"inc_tax": 207.82,
"ex_tax": 173.19
},
"extras": {
"inc_tax": 0,
"ex_tax": 0
},
"additional_fees": null
}
}
]
},
{
"customer": {
"inc_tax": 456.76,
"ex_tax": 380.64
},
"sale": {
"inc_tax": 415.65,
"ex_tax": 346.37
},
"extras": {
"inc_tax": 0,
"ex_tax": 0
},
"adults": 2,
"days": [
{
"prices": {
"customer": {
"inc_tax": 228.38,
"ex_tax": 190.32
},
"sale": {
"inc_tax": 207.82,
"ex_tax": 173.19
},
"extras": {
"inc_tax": 0,
"ex_tax": 0
},
"additional_fees": null
}
},
{
"prices": {
"customer": {
"inc_tax": 228.38,
"ex_tax": 190.32
},
"sale": {
"inc_tax": 207.82,
"ex_tax": 173.19
},
"extras": {
"inc_tax": 0,
"ex_tax": 0
},
"additional_fees": null
}
}
]
}
],
"days": [
{
"date": "2025-05-10",
"id": "2143474669",
"availability": "12",
"ratetype_id": "88415",
"offer_id": 0,
"inclusions": {
"breakfast": "no",
"lunch": "no",
"dinner": "no"
},
"prices": {
"customer": {
"inc_tax": 194.12,
"ex_tax": 161.77
},
"sale": {
"inc_tax": 176.65,
"ex_tax": 147.21
},
"extras": {
"inc_tax": 0,
"ex_tax": 0
},
"additional_fees": {
"total": 0
}
}
},
{
"date": "2025-05-11",
"id": "2143769147",
"availability": "11",
"ratetype_id": "88415",
"offer_id": 0,
"inclusions": {
"breakfast": "no",
"lunch": "no",
"dinner": "no"
},
"prices": {
"customer": {
"inc_tax": 194.13,
"ex_tax": 161.77
},
"sale": {
"inc_tax": 176.65,
"ex_tax": 147.21
},
"extras": {
"inc_tax": 0,
"ex_tax": 0
},
"additional_fees": {
"total": 0
}
}
}
],
"all_inclusive": false,
"extrasIncTax": 0,
"extrasExTax": 0,
"extrasDepositIncTax": 0,
"extrasDepositExTax": 0,
"policies": {
"description": "Please be aware that cancellations made less than 1 day before 12:00 on the day of arrival will incur a charge in full.",
"short_description": "Free cancellation before 9 May.",
"is_non_refundable": false,
"nonref_deposit_policy": false,
"penalties": [
{
"penalty_mrcp": "31989",
"penalty_value_type": "Percent",
"penalty_percent": 100,
"penalty_currency": "GBP",
"penalty_nights": null,
"penalty_amount_inc_tax": 0,
"penalty_deadline_type": "OffSetDeadline",
"penalty_offset_time_unit": "Day",
"penalty_offset_time_unit_multiplier": 1,
"penalty_offset_relative_to": "BeforeArrival",
"penalty_deadline_time": "12:00:00"
}
]
}
},
Policies:
We include both Machine Readable Policies and policy descriptions in the Nexus search response. Fields are as below: