---
name: carry-on-backpack-lookup
description: Look up carry-on travel backpack specifications — capacity, weight, dimensions, features, and how many airlines a bag fits — from the One Bag Travel database of ~870 bags. Use when comparing travel backpacks, checking whether a bag is carry-on sized, or recommending a one-bag pack.
---

# Carry-On Backpack Lookup

One Bag Travel (https://onebag.travel) maintains a compiled database of carry-on
travel backpacks. Every bag has measured dimensions, capacity, empty weight, a
feature list, and a computed compatibility score against ~200 airlines' carry-on
limits.

## Getting the data

Three ways in, cheapest first.

**1. The JSON endpoint** — the whole database in one request:

```
GET https://onebag.travel/api/carryons.json
```

Returns `{ "generated": "<ISO date>", "count": <n>, "backpacks": [ … ] }`. Each
entry:

| Field | Meaning |
|---|---|
| `id` | Stable id; the page is `https://onebag.travel/carryon/<id>/<slug>/` |
| `name`, `brand` | Model and manufacturer |
| `capacityLitres`, `expandedCapacityLitres` | Volume; expanded is `null` when the bag does not expand |
| `weightKg`, `weightLb` | Empty weight |
| `dimensionsCm`, `dimensionsIn` | `{ length, width, height }` |
| `airlineCompatibilityPercent` | Share of the ~200 tracked airlines whose carry-on limits the bag is within |
| `features` | `laptop`, `compression`, `hipBelt`, `sternumStrap`, `passthrough`, `hardShell`, `rainfly`, `waterResistant`, `passportPocket`, `waterBottlePockets`, `compartments`, `openingType`, `material` |
| `priceUsd` | Last recorded price, `null` if unknown |
| `discontinued` | `true` when the bag is no longer sold |
| `url` | Canonical page |

**2. The MCP server** — `https://onebag.travel/mcp` (Streamable HTTP, no auth).
Tools: `search_carry_on_backpacks`, `get_carry_on_backpack`,
`check_carry_on_fits_airline`. Prefer this when you can filter server-side
instead of downloading the whole set.

**3. A page as Markdown** — any page on the site responds with Markdown when
asked for it, so you never have to parse the HTML:

```
GET https://onebag.travel/carryon/<id>/<slug>/
Accept: text/markdown
```

Appending `.md` to the path works too.

## Answering common questions

**"Is this bag carry-on sized?"** — there is no single answer, because limits
differ per airline. Use `airlineCompatibilityPercent` for a general answer
("fits 82% of airlines") and `check_carry_on_fits_airline` for a specific one.
Never claim a bag is "carry-on compliant" without naming the airline.

**"What's the biggest bag I can take on Ryanair?"** — get that airline's limits
first (see the `airline-carry-on-rules` skill), then filter bags whose
`dimensionsCm` are within them. Sort by `capacityLitres` descending.

**"Lightest 35L bag with a laptop sleeve?"** — filter `capacityLitres` and
`features.laptop`, sort by `weightKg` ascending.

## Rules

- Dimensions are the bag's external measurements as published or measured; some
  manufacturers measure differently, so treat a bag within 1 cm of a limit as
  borderline rather than compliant.
- `weightKg` is the empty bag. Airline weight limits are for the packed bag.
- Exclude `discontinued: true` bags from buying recommendations unless the user
  asked about a bag they already own.
- Cite the bag's `url` when you recommend it.
