Notice

Platform RebuildWe have completely rebuilt our platform check out the changes.Platform Rebuild

Firearm data for whatever you build next

Sourced specifications on 9,000+ firearms for reports, games, analytics, apps and AI agents.

curl https://api.gunspec.io/v1/firearms/glock-19-gen5 \  -H "X-API-Key: $GUNSPEC_API_KEY"
Response
{  "id": "glock-19-gen5",  "name": "Glock 19 Gen5",  "manufacturer": "Glock Ges.m.b.H.",  "category": "pistol",  "action": "short-recoil, locked-breech",  "calibers": ["9x19mm Parabellum"],  "barrel_length_mm": 102,  "overall_length_mm": 187,  "weight_empty_g": 670,  "capacity": [15, 17, 19, 24, 33],  "introduced": 2017,  "data_confidence": 0.92,  "sources": 4}
Firearms
9,162
Manufacturers
1,003
Calibers
605
Endpoints
134

Made in 69 countries. Read in one schema.

A firearm from Brescia, Oberndorf or Izhevsk arrives with the same fields, the same units and the page each figure came from. Where it was made is a value on the record, not a reason to parse it differently.

Resolve

Send how a person writes it. Get back the record it means, with how sure the resolver is.

Data you can cite

Every record lists the pages its figures came from and what kind of page each is: the maker, a standards body, a reference work. A figure goes into your report with its source beside it.

Compare

Two records, the same fields, the same units. Nothing left as free text for you to parse.

What fits

Fitment answered from interfaces and requirements, including which requirement said no.

Ask the catalogue from your agent.

Connect Claude, Cursor or any MCP client once, and it looks firearms up, compares them and answers what fits, from the same records the API returns. 40 tools, one sign in.

Works with

Claude CodeClaude DesktopCursorVS CodeGitHub CopilotWindsurf
mcp.gunspec.io40 tools

Session

Captured from the hosted server, tool by tool, the last time we released.See the nightly check resultsopens in a new tab

Install

claude mcp add --transport http gunspec \  https://mcp.gunspec.io/mcp-oauthclaude mcp login gunspec

Your browser opens; approve the connection in the console and the client holds a token. No key to create or paste.

One request, and this is what comes back

The samples are cut from the same spec the reference is built from, and the answer beside them is this call, run now.

curl --request GET \  --url 'https://api.gunspec.io/v1/firearms?category=pistol&per_page=5' \  --header 'X-API-Key: your_key'
Response
[  {    "id": "uberti-sharps-1a-derringer-replica",    "name": "A. Uberti Sharps 1A Derringer Replica",    "manufacturerId": "uberti",    "categoryId": "pistol",    "yearIntroduced": null,    "status": "discontinued",    "countryOfOrigin": "IT",    "actionType": "short_recoil",    "weightEmptyG": 340,    "barrelLengthMm": 53,    "createdAt": "2026-02-18 03:53:29",    "updatedAt": "2026-02-18 03:53:29",    "svgLineArtUrl": null,    "model3dUrl": null,    "favoriteCount": 0  },  {    "id": "apb",    "name": "APB",    "manufacturerId": "izhevsk-mechanical-plant",    "categoryId": "pistol",    "yearIntroduced": 1972,    "status": "limited_production",    "countryOfOrigin": "SU",    "actionType": "blowback",    "weightEmptyG": 1020,    "barrelLengthMm": 140,    "createdAt": "2026-06-21 23:00:52",    "updatedAt": "2026-09-22 14:02:45",    "svgLineArtUrl": "https://api.gunspec.io/v1/firearms/apb/media/silhouette",    "model3dUrl": null,    "favoriteCount": 0  }]

How we keep the data right

The queue

Every finding becomes a task. Four kinds, because the work differs: research, a diagnosis, a decision, a search for a picture.

  • gapa missing figure
  • contradictiontwo facts that disagree
  • vocabularyan unlisted spelling
  • asseta search for a picture
871 tasks open

Redback

An agent that does the reading. It searches, reads the pages and quotes the sentence. A quote not on the page is thrown away.

redback gap
  1. Search twice, from the record's name, maker and part
  2. Read the pages, cut to passages naming the field
  3. Check the quote is on the page
  4. Check the figure is in the quote
  5. Convert the unit, or refuse a figure without one
  6. File a proposal with its source
A quote, or no answer

Corroboration

Two sources, two models. The same figure is looked for on a second site, and a model on another provider is asked to confirm it. Doubt goes to a stronger model.

second model: agreesAgreement, or escalation

Random fact-checks

A sample nobody chose. Records are picked at random and the list is fixed before any result is seen, then each figure is re-read against the page it cites. The model only reads the figure off the page; code does the comparing.

random pick, fixed before any result
Record
Catalogue says
sigsauer.com maker
Code compares

Filed as a task: to review

No topping up a bad batch

Review

A person decides what lands. Every task ends as a proposal a person reviews, or a reason it could not be done.

Review
redback-7c2e91proposed a correction
Record
SIG Sauer P320 Compact
Barrel length
114 mm99 mm
Source
sigsauer.com
  • Source page reached
  • Figure found on the page
  • Unit matches the field
ReturnApprove
  • 871open
  • 23resolved
Nothing automated writes to the catalogue
Build with it

What teams build on the catalogue

Every cell below is running the thing it describes, against the live API: the figures are fetched, the pictures and drawings are the catalogue's own.

Retail listings

A product page filled from one call: the specifications, the picture and a drawing for every feature, in the units your storefront uses.

Photos, renders and line art

Every picture a record has, labelled by kind, and line art drawn as a mask so it reads on light and dark.

Drawn from the record

Cartridges drawn from their own dimensions, to scale with each other. No picture, no template.

Simulation and ballistics

Four loads flown down one range by the solver, each from a firearm that chambers it, with range, velocity, drop and time read off the shot as it goes.

731 feature drawings

Every feature a record lists has a drawing, so a spec sheet reads at a glance. Point at the card to go through a few.

Specifications from 1,003 manufacturers, in the same fields.

The things people ask first

If something here is still unclear, the docs go deeper and the answer is usually in the reference.

The catalogue

What exactly is in the catalogue?

Firearms, manufacturers, calibers, ammunition and attachment fitment. Each firearm carries dimensions, weights, action and feed details, capacities, calibers, production years and the sources those came from. Fields are typed and units are fixed, so a barrel length is always millimetres and never the string "4 in".

Read the full answer in the docs
Where does the data come from?

Manufacturer specification pages, standards bodies such as SAAMI and CIP, and government and military documents, with everything else ranked below those. Each record names the pages it was built from, and a confidence figure reflects how much of it came from a page a claim can be checked against.

Read the full answer in the docs
How often does it change?

Continuously. Every record carries an updated timestamp, the changelog endpoint lists what moved, and webhooks can tell you when a record you care about changes rather than you polling for it.

Read the full answer in the docs

Using the API

Can I use it in a commercial product?

Yes, on any paid plan. The free tier is for evaluating the shape of the data and building against it; the paid tiers differ by rate limit, field access and how much of the catalogue a single response may return.

Read the full answer in the docs
Does it work with AI agents?

There is a hosted MCP server, so an agent in Claude, Cursor or any MCP client can look up a firearm, compare two, or ask what fits one without you writing a tool wrapper. It forwards your own API key, so the calls are metered against your plan and nothing is shared.

Read the full answer in the docs
What do I get without paying?

A key, a rate limit generous enough to build against, and the core catalogue endpoints. No card, and no expiry on the key.

Read the full answer in the docs

Start with a key and one call

A free key returns the summary view of every record, which is enough to see whether the data is shaped the way you need. The full record, deeper pages and the rest of the endpoints come with a plan.

No card, no sales call, no waiting on an approval.