compsapi.com / model train prices

Model train comps HO, N and O scale, by road name

A high SKU hobby with no price guide worth the name, where almost everything trades secondhand and almost everything is negotiated.

A catalogue sized problem

Model railroading has tens of thousands of distinct SKUs once you multiply manufacturer by model by road name by era, and almost none of them have a published market price. Collections get valued by guesswork, and estate sales get priced by whoever shows up. Completed sales are the only real reference, and there are plenty of them.

Verified 12 October 2026, three year window, completed sales on the first page alone:

SearchCompleted sales
Athearn SW1500 HO261
Athearn GP40-2 HO230
Atlas RS-3 HO217
Athearn SD40-2 HO215

Built for walking a catalogue

Pricing one locomotive is a search box job. Pricing a roster, an estate collection or a shop's inventory is an API job. One request returns up to 240 completed sales, and you can walk a parts list without touching a browser.

curl -G https://api.compsapi.com/v1/sold \
  -H "Authorization: Bearer YOUR_KEY" \
  --data-urlencode "q=charizard psa 10" \
  --data-urlencode "days=1095" \
  --data-urlencode "best_offer=1"

Search like a seller titles it

Manufacturer, model and scale is the pattern that works: Atlas GP38-2 N. Add the road name when you want a specific paint scheme, and cut the noise with minus words, which this hobby needs more than most: bachmann F7 n scale -parts -shell -dummy.

Offers and three year depth

Trains are negotiated heavily, especially on lots and estate listings, so the asking price on a public sold page is usually not the sale price. We return the accepted amount per row. And because this is a slow, seasonal market where a model can sit unsold for months, ninety days of history tells you very little. Growth and above cover the full 1,095 days.

Price from what things
actually sold for

100 free requests a month · every filter on · no card

Get a free key