GunSpec

Firearms

Resource class for interacting with the GunSpec Firearms API. Wraps all /v1/firearms endpoints. Instantiated internally by the GunSpec client and exposed as client.firearms.

Auth RequiredBuilder+

Compare the maximum point-blank range and supersonic range of up to 5 firearms. Builder. On the trajectory the ballistic profile flies (the same load, the firearm's own barrel, the same solver, the ICAO standard atmosphere): the furthest distance the bullet stays within half target_mm of the line of sight, the zero that gives it, and how far it stays supersonic.

pointBlank(params: PointBlankParams): Promise<APIResponse<PointBlankComparison>>
GET/v1/firearms/point-blank

  • stringheaderrequired

    Your API key. Authorization: Bearer <key> is accepted in its place.

  • stringrequired

    Comma-separated firearm slugs, maximum 5.

    Example
  • string

    The load every firearm fires. Without it, each fires the load its ballistic profile uses.

    Example
  • numberdefault200

    The target's diameter in mm: the bullet must stay within half of it above and below the line of sight.

    Range
    20 – 2000
    Example
  • number

    Height of the sights above the bore in mm. Default: the height the ballistic profile assumes for the firearm's category.

    Range
    0 – 150

  • object

    The response payload.

  • object

    The method behind every figure in the answer.

  • string

    The method the figures were computed with.

  • string

    The method by name.

  • string

    The geometry as written, with its units, so the figures can be reproduced.

  • object[]

    Where the atmosphere the trajectory is flown through is defined.

  • integer

    The step, in metres, every distance is found to.

  • integer

    How far each trajectory is flown, in metres.

  • object

    The atmosphere, as the trajectory solver uses it.

  • string

    The air every trajectory is flown through.

  • number

    Air temperature in °C.

  • number

    Air pressure in kPa.

  • number

    Air density in kg/m³.

  • number

    Speed of sound in m/s: the line the supersonic range is drawn at.

  • object

    The target every firearm was answered for.

  • number

    Target diameter in mm.

  • number

    Half of it: how far above or below the line of sight the bullet may be.

  • string[]

    The query parameters not sent, answered from their defaults.

  • object[]

    One result per firearm, in the order their ids were given.

  • object

    The firearm this result is for.

  • object | null

    The load fired: the one named by ammo_id, or the one /v1/firearms/{id}/load fires this firearm with. Null when there is none.

  • number | null

    The load's muzzle velocity from this firearm's barrel, in m/s.

  • object

    The sights the path is measured from.

  • object | null

    The maximum point-blank range. Null when it could not be computed; error says why.

  • object | null

    How far the bullet stays supersonic. Null when no trajectory was flown.

  • object | null

    Against the option with the longest point-blank range. Null on that option, on a lone firearm, and where no range was computed.

  • string[]

    What an answer needs qualifying with.

  • string | null

    Why this firearm could not be answered. Null when it was.

  • 400VALIDATION_ERRORValidation error
  • 401UNAUTHORIZEDAPI key required
  • 403FORBIDDENValid key, not permitted
  • 404NOT_FOUNDResource not found
  • 429RATE_LIMITEDRate limit exceeded
  • 500INTERNAL_ERRORUnexpected server error

Minimum tier
Builder+
Monthly quota
25,000/mo
Rate limit
60/min
Daily cap
5,000

Figures shown are for this endpoint's minimum tier. Higher tiers raise every limit.

This read answers conditional requests. Keep the ETag from a response and send it back as If-None-Match: an unchanged record returns 304 Not Modified with no body, which counts toward your per-minute rate limit but not your daily allowance.