Otelpuan Rooms & Prices API
Check rooms and prices for your dates and guests.
Overview
Get Otelpuan rooms and prices for a hotel URL, stay dates, and guests. Read board plans, stay totals, daily prices, cancellation terms, and occupancy with StayAPI.
Scope
The response is an illustrative one-room excerpt. Use the canonical hotel URL from Search, with check-in and check-out dates. Prices apply to the requested stay and occupancy. Keep the source total_price as the stay total; daily amounts may not sum to the provider stay total; both are preserved as supplied. No currency selector, pagination, or booking action. A valid stay with no offers returns rooms: [] and total: 0. Reviews still use hotel_id.
Authentication
Send your StayAPI key in the X-API-Key header. Successful requests return JSON; failures use RFC 7807 Problem Details.
Endpoint URL
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | Required | Canonical Otelpuan hotel URL, for example https://www.otelpuan.com/Turkler-Otel. Use the url returned by Search. Maximum 2,048 characters. |
| check_in | date | Required | YYYY-MM-DD, today or later in Turkey local time. |
| check_out | date | Required | YYYY-MM-DD, strictly after check_in. |
| adults | integer | Optional | 1–10 adults. Default: 2. |
| child_ages | string | Optional | Comma-separated ages, for example 5,12. Up to 4 children, each aged 0–16. Omit or leave empty for no children. |
Response schema
| Field | Type | Description |
|---|---|---|
| success / url | boolean / string | Success flag and canonical hotel URL. |
| check_in / check_out / nights | string / integer | Requested stay window and number of nights. |
| adults / child_ages | integer / array | Requested adult count and normalized child ages. |
| rooms | array | Room name, night_count, and offers for the requested stay. |
| rooms[].offers[].board | object | Board plan code and source name. |
| rooms[].offers[].total_price / base_price / currency | number / nullable number / string | Source stay totals and currency. Preserve total_price; do not replace it with a sum of daily amounts. |
| rooms[].offers[].daily_prices | array | Dated price, total_payment_amount, tax_amount, and currency. |
| rooms[].offers[].non_refundable / cancellation_policies | nullable boolean / array | Refundability and dated cancellation charges, currency, and nullable free_cancellation flag. Unavailable policy fields are null; timestamps retain source precision without an inferred timezone. |
| rooms[].offers[].occupancy | object or null | Published max_occupancy, max_adults, and max_children when available. |
| total | integer | Number of room types returned; zero is a successful empty result. |
Errors and limitations
Errors use RFC 7807 Problem Details with provider: "otelpuan", an instance and correlation id.
- 400: invalid hotel URL, stay dates, adults (1–10), or child ages. Dates must use YYYY-MM-DD, check-in cannot be in the past, and check-out must follow check-in.
- 422: a required parameter is missing, or adults is not an integer.
- 404 NOT_FOUND: the hotel is not found.
- 502 UPSTREAM_ERROR or 504 UPSTREAM_TIMEOUT: the source request could not complete.
- 503: service temporarily unavailable.
- 500 CONTENT_EXTRACTION_FAILED: the source response could not be interpreted.