---
title: ToolRouter — Tool Detail
description: Detailed documentation for a ToolRouter tool including skills, parameters, and examples.
url: https://toolrouter.com/tools/travel-booking
---
# Travel Booking

Convert flight search results into confirmed bookings and manage the full lifecycle: status checks, cancellations with refund quotes, and payment for held orders. Works alongside flight-search: find offers, then book here.

- **Version:** 0.04
- **Categories:** productivity, data

## Skills (5)

### Book Flight (`book_flight`)

Book a flight from search results. Creates a booking and returns a payment link for the customer to complete the purchase with their card. The flight is held until payment is received. If the airline requires immediate payment, charges the platform balance instead.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `offer_id` | string | Yes | Flight offer ID from flight-search results (starts with 'off_') |
| `passengers` | array | Yes | Passenger details: id (from search), given_name, family_name, title, gender, born_on, email, phone_number. Add identity_documents for international. |
| `payment_type` | string | No | Payment method — balance uses the platform's pre-funded account (balance) [default: "balance"] |

**Returns:** Booking confirmation with order ID, booking reference, airline, ticket details, total charged, and cancellation deadline

**Examples:**

*Book a one-way flight for one adult passenger:*

```json
{
  "offer_id": "off_0000AEdHh0OlkSORal",
  "passengers": [
    {
      "id": "pas_0000AEdHh0OlkSORam",
      "given_name": "Amelia",
      "family_name": "Earhart",
      "title": "ms",
      "gender": "f",
      "born_on": "1990-07-24",
      "email": "amelia@example.com",
      "phone_number": "+442080160509"
    }
  ]
}
```

*Book an international flight with passport details:*

```json
{
  "offer_id": "off_0000AEdHh0OlkSORal",
  "passengers": [
    {
      "id": "pas_0000AEdHh0OlkSORam",
      "given_name": "James",
      "family_name": "Smith",
      "title": "mr",
      "gender": "m",
      "born_on": "1985-03-15",
      "email": "james@example.com",
      "phone_number": "+442080160509",
      "identity_documents": [
        {
          "type": "passport",
          "unique_identifier": "ST0123456",
          "issuing_country_code": "GB",
          "expires_on": "2029-04-25"
        }
      ]
    }
  ]
}
```

### Get Booking Details (`get_booking`)

Check the status of an existing flight booking. Returns booking reference, airline, route, dates, passengers, payment status, available actions, and ticket numbers.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `order_id` | string | Yes | Booking order ID (starts with 'ord_') |

**Returns:** Full booking details including reference, airline, route, dates, passengers, payment status, tickets, and available actions

**Examples:**

*Check the status of a booking:*

```json
{
  "order_id": "ord_0000AEdHh0OlkSORal"
}
```

*Get ticket details for an existing booking:*

```json
{
  "order_id": "ord_0000BFdIi1PlkTQSbm"
}
```

### List Bookings (`list_bookings`)

List recent flight bookings. Returns a summary of each booking with order ID, booking reference, airline, route, dates, status, and total amount.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `limit` | number | No | Number of bookings to return (1-50) [default: 10] |

**Returns:** List of recent bookings with order ID, booking reference, airline, route, dates, status, and total amount

**Examples:**

*List the 10 most recent bookings:*

```json
{}
```

*List the last 5 bookings:*

```json
{
  "limit": 5
}
```

### Cancel Booking (`cancel_booking`)

Cancel a flight booking and get refund information. When confirm is false (default), returns a refund quote without cancelling. When confirm is true, executes the cancellation with the airline and processes the refund.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `order_id` | string | Yes | Booking order ID to cancel (starts with 'ord_') |
| `confirm` | boolean | No | Set to true to confirm the cancellation. When false, returns refund quote only without cancelling. [default: false] |

**Returns:** Refund quote (when confirm is false) or cancellation confirmation with refund details (when confirm is true)

**Examples:**

*Get a refund quote for a booking (does not cancel):*

```json
{
  "order_id": "ord_0000AEdHh0OlkSORal"
}
```

*Cancel a booking and confirm the refund:*

```json
{
  "order_id": "ord_0000AEdHh0OlkSORal",
  "confirm": true
}
```

### Pay Held Booking (`pay_held_booking`)

Pay for a booking that was held without payment. Fetches the current order total and submits payment. Only works for orders that have not yet been paid.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `order_id` | string | Yes | Order ID of the held booking (starts with 'ord_') |

**Returns:** Payment confirmation with payment ID, amount paid, and currency

**Examples:**

*Pay for a held booking:*

```json
{
  "order_id": "ord_0000AEdHh0OlkSORal"
}
```

*Complete payment on a pending order:*

```json
{
  "order_id": "ord_0000BFdIi1PlkTQSbm"
}
```

## Quick Start

```bash
# Via CLI
TOOLROUTER_API_KEY=tr_live_xxx npx -y toolrouter-mcp call travel-booking book_flight --offer_id off_0000AEdHh0OlkSORal --passengers [object Object]

# Via REST API
curl -H "Authorization: Bearer tr_live_xxx" \
     -d '{"tool":"travel-booking","skill":"book_flight","input":{"offer_id":"off_0000AEdHh0OlkSORal","passengers":[{"id":"pas_0000AEdHh0OlkSORam","given_name":"Amelia","family_name":"Earhart","title":"ms","gender":"f","born_on":"1990-07-24","email":"amelia@example.com","phone_number":"+442080160509"}]}}' \
     https://api.toolrouter.com/v1/tools/call
```

## Frequently Asked Questions

### What do I need to book a flight?

Start with a flight offer ID, then pass the passenger details the airline needs, such as name, title, gender, birth date, email, and phone number. International trips may also need identity documents.

### What happens if a booking is held instead of confirmed?

If the order is held, you get a checkout URL to complete payment later. You can also use `pay_held_booking` to finish payment on an existing held order.

### Can I check booking status after I place it?

Yes. `get_booking` returns the booking reference, route, passenger details, payment status, ticket numbers, and available actions.

### Can I see a refund quote before cancelling?

Yes. `cancel_booking` supports `confirm: false`, which gives you a refund quote without cancelling. Set `confirm: true` only when you want to complete the cancellation.

---

## Get Started with ToolRouter

**Already connected?** Call any tool with `use_tool({ tool, skill, input })`. Browse tools with `discover` or visit https://toolrouter.com/llms-full.txt

**New to ToolRouter?** Connect with one command (no API key needed — auto-provisions on first use):

```bash
# MCP (Claude Code, Codex CLI)
claude mcp add toolrouter -- npx -y toolrouter-mcp

# MCP (Cursor, Windsurf, Cline, VS Code, Gemini CLI, Claude Desktop)
{"mcpServers":{"toolrouter":{"command":"npx","args":["-y","toolrouter-mcp"]}}}

# Claude Chat / Claude Cowork / Claude Mobile — add as a connector:
# Settings → Connectors → Add custom connector → URL: https://api.toolrouter.com/mcp

# ChatGPT — add as an app:
# Settings → Apps → Advanced settings → enable Developer mode → Create app → MCP Server URL: https://api.toolrouter.com/mcp

# CLI (works instantly, no restart needed)
npx -y toolrouter-mcp tools                    # browse all tools
npx -y toolrouter-mcp search "seo"             # search by keyword
npx -y toolrouter-mcp call seo analyze_page --url https://example.com
```

Free tools work immediately. For paid tools, visit https://toolrouter.com/claim to add credits.

All platforms: https://toolrouter.com/connect | Full catalog: https://toolrouter.com/llms-full.txt | Docs: https://toolrouter.com/docs