Compatibility

Get an attachment

One attachment with its requirement groups (any of the standards within a group, every group across groups), what it provides once fitted, its caliber ratings and its stat and spec effects.

Available on every plan. Requires an API key; Explorer keys receive a reduced field set.

get/v1/attachments/{id}

Request

  • Base URL: https://api.gunspec.io
  • URL: https://api.gunspec.io/v1/attachments/{id}
  • Auth: one of:
    • API key in header X-API-Key
    • HTTP bearer

Path parameters

idstring required

Attachment slug

Headers

If-None-Matchstring

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

Get an attachment

successboolean required

Always true on a successful response. Every error carries false and an error object instead.

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 00:00:00",
    "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"
    },
    "requires": [
      [
        {
          "id": "stock:ak-100-folder",
          "name": "AK-100 series polymer side-folder trunnion (AK-74M pattern)",
          "kind": "stock_mount"
        }
      ]
    ],
    "provides": [
      {
        "id": "stock:ak-100-folder",
        "name": "AK-100 series polymer side-folder trunnion (AK-74M pattern)",
        "kind": "stock_mount",
        "position": "top"
      }
    ],
    "caliberRatings": [
      {
        "caliberId": "5-45x39mm",
        "caliberName": "5.45x39mm",
        "minBarrelLengthMm": 254
      }
    ],
    "createdAt": "2026-09-07 00:00:00"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.