JSON API
Everything this site shows is available as JSON: 5,655 MSFS add-ons, 8,643 store offers across 7 storefronts, with the price history behind every discount. No key, no rate limit, CORS open to every origin.
Last price check across all stores: 2026-09-22T13:20:30.485Z (UTC). Responses are cached for 10 minutes and carry generated_at.
Shape of a response
Every response is an object carrying generated_at (RFC 3339, UTC),source, license and contact, followed by the payload. Money always looks like this — the currency the store charges in, plus a conversion into all three display currencies so you never need an FX table of your own:
"price": {
"amount": 59.99,
"currency": "GBP",
"converted": { "EUR": 69.14, "USD": 74.82, "GBP": 59.99 }
}Quote amount/currency when stating a price; converted is for comparison only. Offers carry both go_url (our counted redirect) andstore_url (the store's own page).
Catalog
GET /api/v1/products.json
Paginated list of add-ons. The same query engine as /addons, so a filter here and the equivalent page on the site can never disagree.
- q
- Full-text search over title, summary, developer and tags. Minimum three characters.
- category
- Category slug: aircraft, airport, livery, other, scenery, utility.
- sim
- msfs2020, msfs2024, or unknown for add-ons with no declared version.
- store
- Store slug: aerosoft, contrail, justflight, orbx, pmdg, simmarket, inibuilds.
- developer
- Developer slug, as shown on /developers.
- aircraft_type
- ICAO Doc 8643 designator — B738, A20N, C172. Vocabulary: /api/v1/aircraft-types.json.
- airport
- ICAO airport code — EGLL, KJFK. Vocabulary: /api/v1/airports.json.
- on_sale
- Set to 1 for discounted add-ons only.
- sort
- relevance, price_asc, price_desc, discount, newest, ending_soon, saving.
- page / per_page
- 1-based page number; up to 100 rows per page (default 50).
One add-on
GET /api/v1/products/{slug}.json
Everything we hold on a single product: every store offer with its VAT split, sale expiry and last-checked time, plus the daily price history the chart on the site is drawn from.
- {slug}
- The slug from the add-on page URL, /addons/{slug}.
Deals
GET /api/v1/deals.json
Current discounts, in the same three cuts the site publishes as pages, plus catalog-wide counters under totals.
- type
- all (default), ending-soon, or lowest-ever.
- category / sim / store
- Same slugs as the catalog endpoint.
- page / per_page
- As above.
Aircraft types
GET /api/v1/aircraft-types.json
The vocabulary behind aircraft_type: every ICAO Doc 8643 designator with its manufacturer, model, family, category, first flight and a freely-licensed photo where we have one, plus how many add-ons we carry for it. Aircraft facts come from Doc 8643 and Wikidata; the counts are ours.
- all
- Set to 1 to include sim-relevant types that have no add-on yet.
- manufacturer
- Manufacturer slug, as used in /aircraft/{manufacturer}.
- category
- airliner, regional, business-jet, general-aviation, turboprop, military, helicopter, glider, historic, other.
Airports
GET /api/v1/airports.json
The vocabulary behind airport: every ICAO airport at least one tracked add-on implements, with name, city, country, continent, size and coordinates from OurAirports, plus the add-on count. Airports nobody has built scenery for are not listed.
- country
- ISO 3166-1 alpha-2 (GB) or the slug used in site URLs (united-kingdom).
- continent
- AF, AN, AS, EU, NA, OC or SA.
Stores
GET /api/v1/stores.json
Every storefront we read, with how many products it carries, how many are discounted, and what our price history says about how deep its discounts usually run.
Questions people ask
- Do I need an API key?
- No. There is no authentication and no rate limit today. Responses are cached for 10 minutes and CORS is open to every origin, so you can call these endpoints straight from a browser.
- What does "discount" mean in the API?
- The current price is below the highest price we have ever recorded for that same offer at that same store. It is never derived from a store-printed list price, which is why a permanent "50% off" markdown does not appear as a deal.
- Which currency are prices in?
- Both: every money object carries the amount and currency the store actually charges, plus a converted block with EUR, USD and GBP at the latest ECB reference rate. Use the store currency when quoting a price and the converted values only for comparison.
- Can I republish this data?
- Facts — titles, prices, discounts, store and developer names, declared compatibility — can be reused and cited freely with attribution to fsaircraft.net and a link to the page the fact came from. Product images and store-written descriptions belong to their vendors and are not ours to license.
Fair use
There is no rate limit because nobody has needed one. If you are planning a full crawl, take the catalog endpoint at per_page=100 rather than fetching every product detail — and if you are building something on this data, we would like to hear about it: [email protected].