List attachments
The attachment catalog: stocks, grips, handguards, optics, mounts, muzzle devices, suppressors, magazines, lights, bipods, slings, triggers and adapters. requires=<standard> narrows to what needs a given interface. Browsing is open to any key. fits=<firearm> runs the compatibility engine and therefore needs Studio, the same as the dedicated fit endpoints.
Available on every plan. Requires an API key; Explorer keys receive a reduced field set.
Request
- Base URL: https://api.gunspec.io
- URL: https://api.gunspec.io/v1/attachments
- Auth: one of:
- API key in header X-API-Key
- HTTP bearer
Query parameters
Page number, from 1 to 10,000
Items per page (max 100)
Attachment category
Manufacturer slug
Only attachments that fit this firearm
Only attachments requiring this interface standard
Substring match on name
Only factory parts (true) or only aftermarket (false)
Production status. The catalog keeps discontinued parts on purpose, so a store front asks for in_production
Restrict to one seller. me resolves to the vendor your key belongs to
Drop anything that seller does not currently stock. Needs a resolvable vendor, and yields nothing without one
Headers
The ETag from a previous response. If the body would be byte-identical, the API answers 304 Not Modified with no body. A 304 counts toward the per-minute rate limit but not the daily request allowance.
Response
List attachments
Example response
{
"success": true,
"data": [
{
"id": "magpul-zhukov-s-stock",
"name": "Zhukov-S Stock",
"category": "stock",
"manufacturer": {
"id": "magpul",
"name": "Magpul Industries"
},
"modelNumber": "MAG585",
"weightG": 490,
"lengthMm": 240,
"statMods": {
"mobility": 3,
"recoil_control": 2
},
"specDeltas": {
"folded_length_mm": 705
},
"imageUrl": "https://assets.gunspec.io/content/attachments/optic/aimpoint-acro-p-2/01-product.webp",
"dataConfidence": 0.9,
"updatedAt": "2026-09-07 12:56:03",
"version": "e27e61b4b373f5a621d6ae5c67d521096131f2cf56300a1b2c3d4e5f6a7b8c9d",
"provenance": {
"sources": [
"https://www.glock.com/en/products/pistols/g17-gen5"
],
"sourceKinds": [
{
"url": "https://www.glock.com/en/products/pistols/g17-gen5",
"kind": "manufacturer",
"archivedFrom": null,
"rank": 0,
"tier": "authority",
"basis": "declared",
"evidence": null
}
],
"makerSource": "https://www.glock.com/en/products/pistols/g17-gen5",
"evidence": "maker",
"checks": {
"raised": 3,
"history": [
{
"task": "verify:firearms:glock-g17-gen5",
"number": 1204,
"check": "quality:firearm-weight-fits-its-size",
"kind": "verify",
"agent": "redback",
"worker": "redback-046535",
"status": "resolved",
"decidedAt": "2026-09-25 07:42:39",
"proposed": "Read https://us.glock.com/en/pistols/g17-gen5: agrees on barrel_length, weight.",
"fields": [
"barrel_length_mm",
"weight_empty_g"
],
"sources": [
"https://us.glock.com/en/pistols/g17-gen5"
],
"finding": {
"why": "2.22 g/cm3 against a submachine-gun / carbon-steel median of 0.64; check the weight and the dimensions",
"evidence": {
"apparentDensity": 2.218,
"categoryMedian": 0.635
}
}
}
]
},
"dataConfidence": 0.95,
"verifiedAt": "2026-09-08",
"verifiedFields": [
"barrel_length_mm",
"weight_empty_g"
],
"updatedAt": "2026-09-08 04:10:22",
"version": "ba5c1d9e06c279a5"
},
"provides": []
}
],
"pagination": {
"page": 1,
"per_page": 20,
"limit": 20,
"total": 42,
"totalPages": 3
}
}Changes
No recorded changes to this operation across all 1 revision of this API.