# Lookup Reservation
> Source: /api-reference/public/reservations/lookup
> Find reservation by confirmation details
> Endpoint: POST /public/reservations/lookup

# Lookup Reservation

Retrieve reservation details using confirmation number and guest information.

## Request [#request]

```http
POST /public/reservations/lookup
Content-Type: application/json
```

<ParamField body="confirmationNumber" type="string" required>
  Reservation confirmation number
</ParamField>

<ParamField body="lastName" type="string" required>
  Guest last name
</ParamField>

<ParamField body="email" type="string">
  Guest email for additional verification
</ParamField>

## Response [#response]

<ResponseField name="reservation" type="object">
  <Expandable title="properties">
    <ResponseField name="confirmationNumber" type="string">
      Confirmation code
    </ResponseField>
    <ResponseField name="status" type="string">
      confirmed | cancelled | completed
    </ResponseField>
    <ResponseField name="checkIn" type="string">
      Check-in date
    </ResponseField>
    <ResponseField name="checkOut" type="string">
      Check-out date
    </ResponseField>
    <ResponseField name="property" type="object">
      Property details
    </ResponseField>
    <ResponseField name="guestName" type="string">
      Primary guest
    </ResponseField>
    <ResponseField name="totalAmount" type="number">
      Total price
    </ResponseField>
  </Expandable>
</ResponseField>

## Example [#example]

```typescript
const response = await fetch(
  'https://api.journey.com/public/reservations/lookup',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      confirmationNumber: 'JRN123456',
      lastName: 'Smith',
      email: 'john.smith@example.com'
    })
  }
);

const data = await response.json();
console.log(`Reservation: ${data.reservation.confirmationNumber}`);
console.log(`Check-in: ${data.reservation.checkIn}`);
```

## Rate Limiting [#rate-limiting]

- 5 attempts per minute per IP
- 3 failed attempts trigger temporary block

## Bruno [#bruno]

`bruno/Public (Surface)/Reservations/Lookup.bru`
