Why GunSpec?
There was no good firearms specification API, so we built one: 9,162 firearms from 1,003 manufacturers, every record sourced, scored and served in one shape. This page is what we believe about that data and how we prove it.
- 9,162Firearms
- 1,003Manufacturers
- 605Calibers
- 74%Mean data confidence
The problem and the approach
Firearms data was scattered across wikis, forums, manufacturer sites and old PDFs. Game studios scraped Wikipedia. App builders copied specs from brochures. Researchers stitched together a dozen inconsistent sources. Nobody could cite where a number came from.
Before
Fifteen open tabs per firearm. A barrel length in inches on one page and millimetres on the next. A weight nobody could say was empty or loaded. A variant confused with its parent. No way to know what changed since last month, and no one to tell when a figure was wrong.
GunSpec
One request returns the record: 78 fields, units in the names, a confidence score, the sources, and a version that changes only when the data does. Every list is the same envelope, every error the same shape, every change announced. A wrong figure is a report that a person acts on.
What we stand for
Six principles. Each is a claim about the product, so each carries the figure or the page that lets you check it.
- 01
Sourced, not scraped
A specification comes from a manufacturer datasheet or a document of equal standing, is cross-checked against independent references and is reviewed by a person before it ships. Where sources disagree the record says so rather than picking one.
Every record names its sources and carries a confidence score; the catalog mean is 74%.
- 02
Honest about what we do not know
A missing value is null, never a guess, never a sibling's number. The confidence score is a record-level measure of completeness and provenance, not a promise that a given figure is right, and the docs say so wherever it appears.
The field reference documents null semantics and the score's meaning on every page it appears.
- 03
The same shape every time
Every list is the same envelope. Every unit lives in the field name. Every status, action type and event comes from a closed vocabulary that grows but never shifts. A client written against one record works against all of them.
133 operations, one JSON envelope (only the file downloads and the seller redirect answer otherwise), 39 named error reasons under a handful of stable codes.
- 04
Built for machines and models
The OpenAPI document is the contract, not a description of it: the SDKs, the reference, the agent packs and the tests are generated from it. An agent handed the packs learns the workflow that avoids the expensive mistakes: resolve a name before fetching, never invent a specification, cite the source.
Five agent packs, llms.txt and an OpenAPI 3 document, all cut from the same spec.
- 05
Open by default
A free Explorer key takes a minute and reads the catalog. Content reads need no key at all. The changelog, the accuracy methodology, the data protections and this page are public. A wrong figure can be reported by anyone with a key, and the correction ships to everyone.
200 requests a month at 10 a minute on the free plan; 17 operations answer with no key.
- 06
A contract you can build on
Additive changes land under the prefix you already use. A breaking change moves to a new prefix and the old one keeps answering; the narrow exception, correcting a defect in place, is announced ahead with every affected caller told. Changes to the catalog reach you as signed webhooks, not as a diff you run yourself.
A retired prefix answers for at least 12 months; 18 webhook event types; 61 changelog entries published.
By the numbers
Read from the catalog, the spec and the changelog at build time. The live figures are one call away.
The catalog
- Firearms
- 9,162
- Manufacturers
- 1,003
- Calibers
- 605
- Countries of origin
- 69
- Variants tracked
- 1,353
- Line-art silhouettes
- 2,589
- Fields per record
- 78
- Mean data confidence
- 74%
The API
- Operations
- 133
- Operations with no key
- 17
- Specific error reasons
- 39
- Webhook events
- 18
- Months a prefix keeps answering after a breaking change
- 12
- Explorer requests per month, free
- 200
- Changelog entries published
- 61
Live counts: GET /v1/stats/summary, or the statistics page on the website. What shipped and when: the changelog.
Who it is for
The same record serves very different readers. Each row opens the part of the reference that reader starts from.
- Game studiosEight balanced 0-100 stats per firearm, derived from the real specification, so a 1911 reads correctly against an MP5.
- App and tool buildersComparison tools, armory trackers, reference apps: typed records, full-text search, a resolver for names as people write them.
- Retailers and marketplacesAccurate specs on product pages, caliber compatibility, and a paid placement on the records you stock.
- Research, journalism and policyCitable figures with sources and a confidence score, queryable by any field, with provenance on every record.
- Defense, training and simulationProcurement sheets, courseware and VR ranges from one citable source, with what fits what computed from mount interfaces.
- AI agents and assistantsA spec to generate tools from, packs that teach the workflow, and a resolver that says when it is not sure.
How a record earns its place
Every figure in the catalog went through the same six steps. The score you see is the record of how far it got.
- 1Sourced from a manufacturer datasheet, procurement document or reference publication of equal standing. Wikis and forums are leads, never sources.
- 2Cross-checked against independent references. Where they disagree by year, factory or market, the record notes the disagreement rather than choosing.
- 3Reviewed by a person before it ships. No automated path writes to the catalog; a model can propose, only a person can publish.
- 4Scored. Data confidence is set from what was actually sourced and never raised by hand. The bands, the source order and the
provenanceobject are in the field reference. - 5Corrected in the open. A data report from any key lands in a queue a person works; the fix ships to everyone and the record's
versionmoves. - 6Kept current without polling. A change fires webhooks to subscribers; an unchanged record answers 304 so a mirror costs nothing to keep.
Which source wins
Where two sources disagree, the manufacturer's own page or spec sheet wins, then a standards body drawing for a cartridge, then a reference that cites one, then a reference site, then a distributor or retailer, with seed model knowledge last. sources on the record lists the pages consulted, and a specific figure is checked against those rather than against the score. The full order, what each band of the score means and the provenance object are in the field reference.
Where next
A free Explorer key takes a minute. The quick start gets you to a first response in four steps.