> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voyantcloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Booking

> Retrieve booking details by ID.

## Method

`GET` `/v1/bookings/:id`

## Path Parameters

<ParamField path="id" type="string" required>Booking ID ([TypeID](/concepts/identifiers) with `book` prefix)</ParamField>

## Query Parameters

<ParamField query="locale" type="string">Response locale (e.g. en, ro)</ParamField>

## Headers

<ParamField header="Authorization" type="string" required>Bearer token (e.g. <code>Authorization: Bearer YOUR\_API\_KEY</code>)</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.voyantcloud.com/v1/bookings/book_01h9xm4n5p6q7r8s9t0v1w2x3y?locale=en" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```javascript Node.js theme={null}
  await fetch("https://api.voyantcloud.com/v1/bookings/book_01h9xm4n5p6q7r8s9t0v1w2x3y?locale=en", {
    headers: { Authorization: `Bearer ${process.env.VOYANT_API_KEY}` },
  })
  ```

  ```python Python theme={null}
  import os, requests
  requests.get(
    "https://api.voyantcloud.com/v1/bookings/book_01h9xm4n5p6q7r8s9t0v1w2x3y",
    params={"locale": "en"},
    headers={"Authorization": f"Bearer {os.environ['VOYANT_API_KEY']}"},
  )
  ```
</RequestExample>

## Response

<ResponseField name="id" type="string" required>Booking ID</ResponseField>
<ResponseField name="code" type="string" required>Human-readable booking reference</ResponseField>
<ResponseField name="status" type="string" required>Booking status: `pending`, `confirmed`, `cancelled`, `completed`</ResponseField>
<ResponseField name="product" type="object">Product information</ResponseField>
<ResponseField name="departure" type="object">Departure information</ResponseField>
<ResponseField name="customer" type="object">Customer details</ResponseField>
<ResponseField name="passengers" type="array">List of passengers</ResponseField>
<ResponseField name="pricing" type="object">Pricing breakdown</ResponseField>
<ResponseField name="payment_status" type="string">Payment status: `unpaid`, `partial`, `paid`, `refunded`</ResponseField>
<ResponseField name="created_at" type="timestamp">Creation timestamp</ResponseField>
<ResponseField name="updated_at" type="timestamp">Last update timestamp</ResponseField>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "id": "book_01h9xm4n5p6q7r8s9t0v1w2x3y",
    "code": "BKG-2025-0001",
    "status": "confirmed",
    "product": {
      "id": "prod_01h8z3y4x2w1v0u9t8s7r6q5p4",
      "title": "Paris City Tour",
      "type": "tour"
    },
    "departure": {
      "id": "dept_01h9xm2n3p4q5r6s7t8v9w0x1y",
      "start_at": "2025-06-15T09:00:00Z",
      "end_at": "2025-06-15T18:00:00Z"
    },
    "customer": {
      "id": "ppl_01h9xm5n6p7q8r9s0t1v2w3x4y",
      "first_name": "John",
      "last_name": "Doe",
      "email": "john.doe@example.com",
      "phone": "+1234567890"
    },
    "passengers": [
      { "id": "bkpx_01h9xm6n7p8q9r0s1t2v3w4x5y", "first_name": "John", "last_name": "Doe", "type": "adult", "date_of_birth": "1985-06-15" },
      { "id": "bkpx_01h9xm7n8p9q0r1s2t3v4w5x6y", "first_name": "Jane", "last_name": "Doe", "type": "adult", "date_of_birth": "1987-03-22" }
    ],
    "pricing": {
      "subtotal": 1500.00,
      "tax": 285.00,
      "total": 1785.00,
      "currency": "EUR"
    },
    "payment_status": "paid",
    "created_at": "2025-01-15T10:30:00Z",
    "updated_at": "2025-01-15T11:00:00Z"
  }
  ```
</ResponseExample>
