POST /api/ikyu/hotels/search
Price: 5 credits
Search hotels and ryokan on Ikyu (一休.com) by area, hot-spring area, keyword, property type, meals, features, price and rating, with the lowest price for a given stay: name, type, address, access, coordinates, guest rating, points and photos
Area and hot-spring area ids come from ikyu/hotels/areas; feature, room type and plan codes come from ikyu/hotels/filters. Pass check_in, nights, adults and rooms to price a specific stay. Pass a returned id to ikyu/hotels for the full profile or ikyu/hotels/plans for bookable plans.
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)nights integer — Number of nights (default: 1; min: 1; max: 9)adults integer — Adults per room (default: 2; min: 1; max: 10)rooms integer — Number of rooms (default: 1; min: 1; max: 10)keyword string nullable — Free-text keyword (examples: "箱根 露天風呂"; minLength: 1)area_ids array nullable — Ikyu area ids from ikyu/hotels/areas (examples: ["140000"], ["140306","14030601"])hot_spring_area_ids array nullable — Ikyu hot-spring area ids from ikyu/hotels/areas (examples: ["140020"])check_in integer nullable — Check-in day as unix seconds; prices are quoted for this stay (examples: 1794700800)hotel_types array nullable — Property types (one of: "hotel", "inn", "business", "resort_hotel", "vacation_rental")meals array nullable — Meal plans offered (one of: "none", "breakfast", "dinner", "breakfast_dinner", "breakfast_lunch", "lunch", "three_meals", "lunch_dinner")hotel_features array nullable — Hotel feature codes from ikyu/hotels/filters; all must match (examples: ["9","28"])room_features array nullable — Room feature codes from ikyu/hotels/filters; all must match (examples: ["20"])room_types array nullable — Room type codes from ikyu/hotels/filters (examples: ["00"])plan_features array nullable — Plan feature codes from ikyu/hotels/filters (examples: ["6"])service_features array nullable — Service codes from ikyu/hotels/filters (examples: ["5"])min_price integer nullable — Minimum stay price in yen (examples: 20000; min: 1)max_price integer nullable — Maximum stay price in yen (examples: 60000; min: 1)min_rating number nullable — Minimum guest rating (examples: 4.5; min: 1; max: 5)premium_only boolean — Only Ikyu Premium hotels (default: false)sort string — Result order (default: "recommended"; one of: "recommended", "price_low", "price_high", "rating", "keyword_match")count integer required — Max number of results (min: 1; max: 5000)@type string (default: "IkyuHotelCard")id string requiredurl string requiredname string nullableproperty_type string nullablecatchphrase string nullableaccess string nullableaddress string nullableprefecture string nullablepostal_code string nullablephone string nullablelatitude number nullablelongitude number nullablehot_spring_area string nullableroom_count integer nullableis_premium boolean nullableis_ikyu_plus boolean nullablerating object nullable@type string (default: "IkyuHotelRating")average number nullablecount integer nullablesatisfaction number nullableroom number nullableservice number nullablebath number nullablefacilities number nullablemeal number nullablelowest_price object nullable@type string (default: "IkyuStayPrice")price integer nullableprice_before_discount integer nullablepoints integer nullablepoint_rate number nullablenights integer nullableadults integer nullablerooms integer nullablemeal object nullable@type string (default: "IkyuNamedCode")code string requiredname string nullablesale_type string nullableimage_urls array (default: [])photo_count integer nullablepremium_benefits array (default: [])@type string (default: "IkyuPremiumBenefit")content string requirednote string nullable422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — Ikyu rejected this combination of hotel filters Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.