---
title: "Poll the result of a booking started with POST /hotels/book"
method: GET
path: "/hotels/booking/{booking_job_id}"
tags: ["hotels"]
---

# Poll the result of a booking started with POST /hotels/book

`GET /hotels/booking/{booking_job_id}`

## Request

- Base URL: `https://letsfg.co/developers/api/v1`
- URL: `https://letsfg.co/developers/api/v1/hotels/booking/{booking_job_id}`
- Auth: API key in header `X-API-Key`

Poll every ~20s. status moves from in_progress to succeeded, failed or attention, all three final. succeeded carries the confirmation and total_price. If the hotel raises the price while booking (more than 0.5%; smaller rises are absorbed), the job stays in_progress with a price_change object {old_total, new_total, extra, currency, expires_at, accept_url, decline_url}: nothing is booked or charged until the guest accepts (they are also e-mailed), and no answer by expires_at fails the job and releases the hold.

## Path parameters

- `booking_job_id` string, required

## Response `200`

Current booking status, with the confirmation and total_price once succeeded.

- HotelBookingStatusResponse
  - `booking_job_id` string
  - `booking_id` string
  - `status` 'in_progress' | 'succeeded' | 'failed' | 'attention': succeeded: booked and paid; the hold is captured. failed: nothing was booked; the hold is released and nothing was charged. attention: the outcome could not be settled automatically; the hold is kept (nothing charged) while a person checks with the supplier. succeeded, failed and attention are all final: do not book again.
  - `poll_after_seconds` integer: Present while status is in_progress.
  - `confirmation` string: The supplier confirmation. Present when succeeded, and on attention when known.
  - `hotel` string
  - `room` string
  - `total_price` number: Present when succeeded: what the guest is charged, in `currency` (the captured amount).
  - `currency` string
  - `supplier_paid` number: What the supplier was paid, in supplier_currency.
  - `supplier_currency` string
  - `payment_status` string: The supplier-side payment status, e.g. "paid".
  - `refundable` boolean
  - `free_cancellation_until` string, nullable
  - `cancellation_ladder` unknown[], nullable: The supplier cancellation charges by date.
    - unknown
  - `terms` object, nullable
  - `error` string: Present when failed or attention, written for the guest.

## Other responses

- `404`: No booking job with that id for this account.

---

[API](https://skmtc.dev/letsfg/apis/letsfg-public-developer-api.md) · [All operations](https://skmtc.dev/letsfg/apis/letsfg-public-developer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/letsfg/apis/letsfg-public-developer-api/revisions/516ab6ba1d2e?raw)
