Every specification published on this site is also published here as one machine-readable file — 551 floorplan records across 10 brands and 68 lines, with the units named and the qualifiers attached. It is free to use with attribution. The one condition that matters is at the top of section 03, and it is not a licensing condition: carry the qualifiers with the numbers.
Download
campertrailers-verified-specs.json — 633 KB · 551 records · 35 fields · generated 2026-07-28 · sha256 2a36e8517a64c6eb…
01 What is in it
One record per published floorplan page. Each record carries the identity of the unit, its published weights, dimensions, tank capacities and equipment, a link back to the page it was read from, and a link to that page's spec sheet PDF where one exists.
| Floorplan records | 551 |
| Travel trailers | 387 |
| Fifth wheels | 164 |
| Brands | 10 |
| Lines | 68 |
| Records linking a spec-sheet PDF | 551 |
| Tracked fields per record | 35 |
02 The record schema
The fields block in the file carries this same table, so a consumer never has to read this page to understand the file. Populated is the number of records that publish a value for that field — the gaps are real and are stated rather than filled.
| Field | Type | Populated | Meaning |
|---|---|---|---|
url | string | 551 | Canonical URL of the floorplan page this record was read from. |
page | string | 551 | Flat filename of that page. |
spec_sheet_pdf | string | 551 | Downloadable one-page spec sheet, where one is published. |
brand | string | 551 | Manufacturer as the brand publishes it. |
line | string | 551 | Nameplate / product line. |
line_url | string | 551 | Canonical URL of the line hub. |
model | string | 551 | Line plus floorplan code. |
model_year_label | string | 551 | Model year and make exactly as the page states it. |
body_type | string | 551 | Travel Trailer or Fifth Wheel, taken from the page. |
dry_weight_lb | integer · lb | 551 | Unloaded vehicle weight as published. Not a shipping weight. |
gvwr_lb | integer · lb | 548 | Gross vehicle weight rating -- the loaded ceiling. |
gvwr_derived | boolean | 548 | true when the page derived GVWR as dry + cargo rather than transcribing it. |
cargo_capacity_lb | integer · lb | 551 | Cargo carrying capacity (CCC). Fresh water and propane come out of this. |
hitch_weight_lb | integer · lb | 534 | Tongue or pin weight. ALWAYS DRY -- see hitch_weight_basis. |
hitch_weight_basis | string | 534 | Always "dry" when a hitch figure is present. Loaded tongue weight runs higher. |
hitch_kind | string | 537 | tongue (bumper pull) or pin (fifth wheel), from the page's own label. |
length_ft | number · ft | 546 | Exterior length as published. |
width_ft | number · ft | 474 | Exterior width as published. |
exterior_height_ft | number · ft | 550 | Exterior height as published. Excludes aftermarket roof equipment. |
interior_height_ft | number · ft | 221 | Interior standing height as published. |
fresh_water_gal | integer · US gal | 547 | Fresh water tank capacity. |
grey_water_gal | integer · US gal | 544 | Grey water tank capacity. |
black_water_gal | integer · US gal | 542 | Black water tank capacity. |
sleeps | integer | 548 | Manufacturer sleeping capacity claim. A claim, not a comfort rating. |
axles | integer | 486 | Number of axles. |
slides | integer | 414 | Number of slide-outs. |
tires | string | 320 | Tire size and/or load range as published. Often a description, not a size. |
air_conditioner | string | 549 | Roof air conditioning as published. |
refrigerator | string | 545 | Refrigerator capacity and type as published. |
awning | string | 432 | Awning count and length as published. |
primary_bed | string | 440 | Primary bed configuration. |
layout | string | 277 | One-line description of the floorplan. |
msrp_usd | integer · USD | 453 | Manufacturer suggested retail price where one is published. Not a street price. |
asterisked_fields | array | 228 | Field names whose published value carries an asterisk on the page. |
completeness_pct | integer · % | 551 | Share of tracked fields this page publishes. |
03 Conventions you have to carry with the numbers
The one that can hurt someone
Every hitch_weight_lb in this file is a dry tongue or pin weight, and each record says so in its own hitch_weight_basis field. Loaded tongue weight is conventionally 10–15% of loaded trailer weight and runs higher — often a lot higher once the front pass-through is packed. Anyone sizing a tow vehicle's payload against the dry figure will under-budget. Republish the basis with the number.
null is a statement, not a gap in the export
A null means no source we accept published that figure. Nothing in this file is estimated, interpolated from a sibling floorplan, or zero-filled. Where a field is missing across a whole line it is because the manufacturer does not publish it.
gvwr_derived marks arithmetic, not transcription
71 of 551 records carry gvwr_derived: true, meaning the page computed GVWR as dry weight plus cargo capacity because no source published the rating directly. The arithmetic ties out exactly by definition — the flag exists so that the provenance survives the export.
No tow-vehicle ratings, anywhere
This file contains the trailer side of the towing equation only. It asserts nothing about what any vehicle can pull, because a single truck model swings by thousands of pounds on engine, axle ratio, cab, drivetrain and package. The authoritative number for a given vehicle is the payload placard on its own door jamb, and no dataset can substitute for it.
One model year, spanning coverage
model_year_label is the model year the page currently states. Pages cover 2005–present as a span, so the label is not a claim that the specification held unchanged for every year of the run. Manufacturers re-spec mid-generation and sometimes mid-year.
sleeps and msrp_usd are manufacturer claims
sleeps is the manufacturer's own capacity claim reproduced verbatim, not an assessment of comfortable occupancy. msrp_usd (453 of 551 records) is a published list price, not a transaction price; street prices routinely land below it and it goes stale faster than any other field here.
04 Where the coverage is thin, stated plainly
Publishing the gaps is the point of publishing the coverage counts. Three worth knowing before you build on this:
Tires. 320 of 551 records carry a tires value, but many of those are a description rather than a size — a load range and a brand, where the factory never published the section width. Treat the field as free text, not as a parseable size.
Price. 453 of 551 records carry an MSRP. The rest have no published list price from any source we accept.
Weights. Dry weight is on all 551 records and cargo capacity on 551; GVWR reaches 548 and hitch weight 534. The shortfall is the honest one — those are the units where the published record ran out, and the site excludes rather than guesses.
05 Using and citing it
Free to use, including commercially, with attribution to CamperTrailers.com. If you reproduce a weight, carry its qualifier: hitch and pin figures are dry, and a derived GVWR is flagged. Stripping the qualifier is what turns a verified number into a misleading one, and it is the only misuse of this data that could actually cost someone something.
The same catalog is described for machine consumers at /llms.txt, and the verification standard behind every figure is set out on the methodology page.
06 How this file is produced
It is generated, never hand-maintained. A build step parses the 551 rendered floorplan pages — the same HTML a visitor sees — and emits the records from what those pages actually publish. That direction matters: the file cannot claim a figure the site does not show, because the site is its source. The derived-GVWR flag is read from each page's own row label and cross-checked against an independently built index before the file is written; a disagreement fails the build rather than shipping.
Regenerating the file from an unchanged tree produces an identical file. If the checksum above has moved, the catalog moved.