> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://wt.hhr.systems/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://wt.hhr.systems/_mcp/server.

# Seat maps

Call `OTA_AirSeatMapRQ` to get the seat map for a segment. Use it to show travelers the layout, see which seats are free, and pick seats. To put a passenger in a seat, you send a seat change on the booking.

#### Seat changes apply to issued tickets only

Seat changes apply only to issued tickets. Once payment is complete and passenger information is set, the ticket is issued and you can assign or change seats.

## Get the map

Reference the booking by its W1 record locator for an issued ticket booking, and describe the segment you want the map for.

```json
{
  "version": "2.001",
  "pos": {
    "source": [
      {
        "isoCurrency": "SAR",
        "requestorID": { "id": "AGENT001", "name": "Sample Travel", "type": "5" },
        "bookingChannel": { "type": "OTA" }
      }
    ]
  },
  "bookingReferenceID": [
    { "companyName": { "code": "W1" }, "type": "14", "id": "N6G2NW" }
  ],
  "seatMapRequests": {
    "seatMapRequest": [
      {
        "flightSegmentInfo": {
          "departureAirport": { "locationCode": "JXD" },
          "arrivalAirport": { "locationCode": "MKX" },
          "operatingAirline": { "code": "HHR", "flightNumber": "0141" },
          "departureDateTime": "2026-05-20T17:21:00.000+03:00"
        },
        "travelerRefNumberRPHs": ["1"]
      }
    ]
  }
}
```

## Read the map

The response returns the cabin, its rows, and the seats in each row. Every seat carries a number, its availability, and its features.

```json
{
  "success": {},
  "seatMapResponse": [
    {
      "seatMapDetails": [
        {
          "cabinClass": [
            {
              "zone": { "code": "006", "totalSeatQty": 38 },
              "rowInfo": [
                {
                  "seatInfo": [
                    {
                      "summary": { "seatNumber": "142", "rowNumber": 2, "columnNumber": 4 },
                      "availability": { "value": "SEAT_OCCUPIED" },
                      "features": [{ "value": "WINDOW" }],
                      "status": [{ "value": "BOOKED" }]
                    },
                    {
                      "summary": { "seatNumber": "143", "rowNumber": 2, "columnNumber": 5 },
                      "availability": { "value": "SEAT_AVAILABLE" },
                      "features": [{ "value": "AISLE" }],
                      "status": [{ "value": "FREE" }]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
```

A seat with `availability` of `SEAT_AVAILABLE` is free to take. `features` tells you whether it is a window or aisle seat.

## Assign a seat

Picking a seat is a change to the booking, not part of the seat map call. Send an `OTA_AirBookModifyRQ` with `modificationType` `5` for the passenger and the seat you chose. Seats can be changed even after the booking is paid. See [Updating passengers](/updating-passengers).

For the exact seat-change body, see the GO7 [seat map](https://go7-worldticket.github.io/docs/ota/endpoints/seat_map) and [modify-booking](https://go7-worldticket.github.io/docs/ota/endpoints/modify-booking) pages.