> **For AI agents:** this page is a focused, LLM-optimized view of a
> single Fiber AI operation. Before calling it, fetch the routing
> instructions at [`https://api.fiber.ai/llms.txt`](https://api.fiber.ai/llms.txt) and the full operation
> index at [`https://api.fiber.ai/ai-docs/index.md`](https://api.fiber.ai/ai-docs/index.md).

# hotelProperty

`POST /v1/hotels/property`

**Tags:** `Market intelligence`

Get hotel property details

**Endpoint:** `https://api.fiber.ai/v1/hotels/property`

## Description

Retrieves full details for a single hotel or vacation rental, including amenities, images, and booking offers.

⚡ Rate limit: 120 requests per 1 minute

💰 Cost: 2 credits per property lookup ⓘ

## Request body (JSON Schema)

```json
{
  "type": "object",
  "properties": {
    "apiKey": {
      "type": "string",
      "description": "Your Fiber API key"
    },
    "propertyToken": {
      "type": "string",
      "minLength": 1,
      "description": "Opaque identifier for a specific hotel or vacation rental. Obtain it from the `propertyToken` of a result returned by the hotel search endpoint (`POST /v1/hotels/search`)."
    },
    "checkInDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Check-in date for the stay."
    },
    "checkOutDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Check-out date for the stay."
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "default": 2,
      "description": "Number of adult guests (at least 1). Total guests (`adults` + `children`) must not exceed 6 for hotels or 10 for vacation rentals."
    },
    "children": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9,
      "default": 0,
      "description": "Number of child guests. Total guests (`adults` + `children`) must not exceed 6 for hotels or 10 for vacation rentals."
    },
    "childrenAges": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 1,
        "maximum": 17
      },
      "default": [],
      "description": "Ages of each child guest. Must contain exactly `children` entries when `children` is greater than zero."
    },
    "currencyCode": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "default": "USD",
      "description": "ISO 4217 currency code for prices in the response (e.g. 'EUR', 'GBP', 'CAD'). Case-insensitive. Defaults to USD."
    },
    "searchMarketCountryCode": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$",
      "default": "USA",
      "description": "ISO 3166-1 alpha-3 country code that sets the search market (e.g. 'GBR', 'BRA'). This affects regional pricing and availability. Case-insensitive."
    },
    "languageCode": {
      "type": "string",
      "pattern": "^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$",
      "default": "en",
      "description": "Language for results such as property names and amenity labels. Pass a BCP-47 language tag such as 'en', 'en-US', 'pt-BR', 'zh-CN', 'ja', 'ko', 'fr', 'de', or 'es'. Defaults to en."
    }
  },
  "required": [
    "apiKey",
    "propertyToken",
    "checkInDate",
    "checkOutDate"
  ]
}
```

## Response — success (JSON Schema)

```json
{
  "type": "object",
  "properties": {
    "output": {
      "type": "object",
      "properties": {
        "property": {
          "type": "object",
          "properties": {
            "type": {
              "type": [
                "string",
                "null"
              ],
              "enum": [
                "hotel",
                "vacationRental",
                null
              ],
              "description": "Property category."
            },
            "propertyToken": {
              "type": "string",
              "description": "Opaque token identifying this property. Pass as `propertyToken` in POST /v1/hotels/property to retrieve full details. Always present on returned properties."
            },
            "name": {
              "type": "string",
              "description": "Property display name."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "description": "Property description."
            },
            "url": {
              "type": [
                "string",
                "null"
              ],
              "description": "Property website URL."
            },
            "coordinates": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "latitude": {
                  "type": "number",
                  "description": "Latitude in decimal degrees."
                },
                "longitude": {
                  "type": "number",
                  "description": "Longitude in decimal degrees."
                }
              },
              "required": [
                "latitude",
                "longitude"
              ],
              "description": "Geographic coordinates of the property in decimal degrees."
            },
            "city": {
              "type": [
                "string",
                "null"
              ],
              "description": "City name."
            },
            "countryCode": {
              "type": [
                "string",
                "null"
              ],
              "description": "ISO 3166-1 alpha-3 country code (e.g. 'USA')."
            },
            "checkInTime": {
              "type": [
                "string",
                "null"
              ],
              "description": "Check-in time in 24-hour `HH:mm` format, where `HH` is 00 through 23 (e.g. '15:00'). Null when unavailable."
            },
            "checkOutTime": {
              "type": [
                "string",
                "null"
              ],
              "description": "Check-out time in 24-hour `HH:mm` format, where `HH` is 00 through 23 (e.g. '11:00'). Null when unavailable."
            },
            "ratePerNight": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "currencyCode": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$",
                  "description": "ISO 4217 currency code for the amounts in this rate."
                },
                "allInCost": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "All-in cost in whole currency units, including taxes and fees. Null when only a pre-tax rate is available, in which case only `baseCost` is populated."
                },
                "baseCost": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Base cost before taxes and fees in whole currency units; this is not the final amount charged."
                }
              },
              "required": [
                "currencyCode"
              ],
              "description": "Nightly rate summary for one night."
            },
            "totalRate": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "currencyCode": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$",
                  "description": "ISO 4217 currency code for the amounts in this rate."
                },
                "allInCost": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "All-in cost in whole currency units, including taxes and fees. Null when only a pre-tax rate is available, in which case only `baseCost` is populated."
                },
                "baseCost": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Base cost before taxes and fees in whole currency units; this is not the final amount charged."
                }
              },
              "required": [
                "currencyCode"
              ],
              "description": "Total rate summary for the entire requested stay, from check-in through check-out. The all-in amount includes taxes and fees when supplied; otherwise `baseCost` is provided."
            },
            "rating": {
              "type": [
                "number",
                "null"
              ],
              "minimum": 0,
              "maximum": 5,
              "description": "Guest rating from 0 to 5."
            },
            "reviewCount": {
              "type": [
                "integer",
                "null"
              ],
              "description": "Total number of guest reviews."
            },
            "reviewsBreakdown": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Review category name."
                  },
                  "description": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Review category description."
                  },
                  "totalCount": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "description": "Total reviews mentioning this category."
                  },
                  "positiveCount": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "description": "Positive mentions for this category."
                  },
                  "neutralCount": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "description": "Neutral mentions for this category."
                  },
                  "negativeCount": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "description": "Negative mentions for this category."
                  }
                }
              },
              "description": "Breakdown of reviews by category."
            },
            "hotelStarClass": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 5,
              "description": "Observed hotel star class indicating how upscale the property is, from 1 to 5 whole stars. This is a property classification, not a guest review rating."
            },
            "amenities": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Amenities offered by this property."
            },
            "excludedAmenities": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Amenities explicitly not offered."
            },
            "images": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "thumbnailUrl": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Thumbnail image URL."
                  },
                  "originalUrl": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Full-size image URL."
                  }
                }
              },
              "description": "Property images."
            },
            "nearbyPlaces": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Nearby place name."
                  },
                  "transportations": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Transportation mode (e.g. 'Walking')."
                        },
                        "durationMinutes": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Travel duration in minutes."
                        }
                      }
                    },
                    "description": "Transportation options to reach this place."
                  }
                },
                "required": [
                  "transportations"
                ]
              },
              "description": "Notable nearby places and transit options."
            },
            "locationRating": {
              "type": [
                "number",
                "null"
              ],
              "description": "Location quality rating from 0 to 5."
            },
            "deal": {
              "type": [
                "string",
                "null"
              ],
              "description": "Deal label when the booking provider marks a promotion; may be present without `dealDescription`."
            },
            "dealDescription": {
              "type": [
                "string",
                "null"
              ],
              "description": "Short deal description when supplied by the booking provider; may be absent even when `deal` is present."
            },
            "essentialInfo": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Key facts for vacation rentals (e.g. 'Entire apartment', 'Sleeps 4')."
            },
            "address": {
              "type": [
                "string",
                "null"
              ],
              "description": "Street address."
            },
            "phone": {
              "type": [
                "string",
                "null"
              ],
              "description": "Contact phone number normalized to E.164 format."
            },
            "directionsUrl": {
              "type": [
                "string",
                "null"
              ],
              "description": "URL with directions to the property."
            },
            "amenitiesDetailed": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Detailed amenity list for the property."
            },
            "offers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "sourceName": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Booking source name."
                  },
                  "logoUrl": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Booking source logo URL."
                  },
                  "url": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Booking URL."
                  },
                  "isOfficial": {
                    "type": [
                      "boolean",
                      "null"
                    ],
                    "description": "True when this is the property's official booking channel."
                  },
                  "ratePerNight": {
                    "type": [
                      "object",
                      "null"
                    ],
                    "properties": {
                      "currencyCode": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$",
                        "description": "ISO 4217 currency code for the amounts in this rate."
                      },
                      "allInCost": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "All-in cost in whole currency units, including taxes and fees. Null when only a pre-tax rate is available, in which case only `baseCost` is populated."
                      },
                      "baseCost": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Base cost before taxes and fees in whole currency units; this is not the final amount charged."
                      }
                    },
                    "required": [
                      "currencyCode"
                    ],
                    "description": "Nightly rate from this source."
                  },
                  "totalRate": {
                    "type": [
                      "object",
                      "null"
                    ],
                    "properties": {
                      "currencyCode": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$",
                        "description": "ISO 4217 currency code for the amounts in this rate."
                      },
                      "allInCost": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "All-in cost in whole currency units, including taxes and fees. Null when only a pre-tax rate is available, in which case only `baseCost` is populated."
                      },
                      "baseCost": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Base cost before taxes and fees in whole currency units; this is not the final amount charged."
                      }
                    },
                    "required": [
                      "currencyCode"
                    ],
                    "description": "Total rate for the entire requested stay from this source. The all-in amount includes taxes and fees when supplied; otherwise `baseCost` is provided."
                  }
                }
              },
              "description": "Booking offers from online travel agencies."
            },
            "typicalPriceRange": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "currencyCode": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$",
                  "description": "ISO 4217 currency code for the amounts in this range."
                },
                "lowerBound": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Lower bound of the typical price range in the specified currency."
                },
                "upperBound": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Upper bound of the typical price range in the specified currency."
                }
              },
              "required": [
                "currencyCode"
              ],
              "description": "Typical price range for this property in whole currency units."
            },
            "ratingsBreakdown": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "oneStarCount": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Count of 1-star reviews."
                },
                "twoStarCount": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Count of 2-star reviews."
                },
                "threeStarCount": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Count of 3-star reviews."
                },
                "fourStarCount": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Count of 4-star reviews."
                },
                "fiveStarCount": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "description": "Count of 5-star reviews."
                }
              },
              "description": "Guest review counts grouped by one- through five-star rating."
            }
          },
          "required": [
            "propertyToken",
            "name",
            "reviewsBreakdown",
            "amenities",
            "excludedAmenities",
            "images",
            "nearbyPlaces",
            "essentialInfo",
            "amenitiesDetailed",
            "offers"
          ],
          "description": "Full property details including offers and amenities."
        },
        "currencyCode": {
          "type": [
            "string",
            "null"
          ],
          "pattern": "^[A-Z]{3}$",
          "description": "ISO 4217 currency code for prices in this response (e.g. 'USD', 'EUR', 'GBP')."
        }
      },
      "required": [
        "property"
      ]
    },
    "chargeInfo": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "charged-now"
              ]
            },
            "creditsCharged": {
              "type": "number"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "creditsCharged"
          ],
          "description": "Credits were charged immediately for this operation"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "charging-later"
              ]
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "message"
          ],
          "description": "Credits will be charged after the operation completes"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "charged-for-async-process"
              ]
            },
            "creditsCharged": {
              "type": "number"
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "creditsCharged",
            "message"
          ],
          "description": "Credits that were charged for an asynchronous operation"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "free"
              ]
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "message"
          ],
          "description": "No credits were charged for this operation"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "credits-refunded"
              ]
            },
            "creditsRefunded": {
              "type": "number"
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "creditsRefunded",
            "message"
          ],
          "description": "Credits were refunded for this operation"
        }
      ]
    },
    "warnings": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "Full path to extraneous field (e.g., 'searchParams.ExtraField')"
          },
          "message": {
            "type": "string",
            "description": "Warning message"
          }
        },
        "required": [
          "field",
          "message"
        ]
      },
      "description": "Warnings about extraneous fields in request"
    },
    "advice": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      },
      "description": "Tips, recommendations, and suggestions for using this API effectively."
    }
  },
  "required": [
    "output",
    "chargeInfo"
  ],
  "additionalProperties": false
}
```

---

Canonical JSON: [`https://api.fiber.ai/openapi.json`](https://api.fiber.ai/openapi.json)
Operation index: [`https://api.fiber.ai/ai-docs/index.md`](https://api.fiber.ai/ai-docs/index.md)
