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+

Load a firearm with ammunition and get combined performance data.

load(id: string, params?: LoadFirearmParams): Promise<APIResponse<FirearmLoadProfile>>
GET/v1/firearms/{id}/load

  • stringheaderrequired

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

  • stringrequired

    Resource slug ID

    Accepts
    a lowercase slug: letters, digits and hyphens
    Example

The example asks for glock-g17-gen5. See that record on gunspec.io, rendered for people.

  • string

    Ammunition load to chamber. Defaults to the firearm default load, then the first common load for its primary caliber.

    Max length
    255
    Example
  • integer

    Zero distance in metres, where the bullet crosses the line of sight. Defaults to 25 for a handgun and 100 for a long gun.

    Range
    10 – 1000
    Example
  • number

    Line of sight above the bore, in mm. Defaults to 20 for a handgun and 38 for a long gun.

    Range
    0 – 150
    Example

  • object

    The response payload.

  • BallisticsFirearm

    The firearm the solution was computed for. barrelLengthMm is absent when the firearm has no recorded barrel.

  • string

    URL-safe slug identifying the firearm, e.g. glock-g17-gen5.

  • string

    Display name, as the maker writes it.

  • number

    Barrel length in millimetres, measured from the breech face.

  • object

    The load the calculation used.

  • string

    Slug of the ammunition load the firearm was chambered with.

  • string

    Display name, as the maker writes it.

  • string

    Slug of the cartridge. Resolve against /v1/calibers/{id}.

  • number

    Bullet weight in grams. Divide by 0.0648 for grains.

  • string

    Bullet construction: fmj, jhp, sp, match.

  • object

    The figures derived for the barrel length asked about, rather than the reference one.

  • number

    Muzzle velocity in metres per second, for the default load.

  • number

    Muzzle energy in joules, for the default load.

  • number

    Effective range in metres against a point target.

  • TerminalBallistics

    Terminal performance indices computed at the muzzle.

  • object

    The figures published for this firearm, where the catalog records them.

  • number | null

    Muzzle velocity in metres per second, for the default load.

  • number | null

    Muzzle energy in joules, for the default load.

  • number | null

    Effective range in metres against a point target.

  • Zeroing

    How the gun is assumed sighted for pathCm. Neither figure is recorded per gun, so each is an assumption the caller may override with zero_m and sight_height_mm: a handgun zeroed at 25 m with its sights 20 mm above the bore, a long gun at 100 m with an optic 38 mm above it.

  • number

    The distance at which the bullet crosses the line of sight, in m.

  • number

    The line of sight above the bore, in mm.

  • TrajectoryPoint[]

    The flight path, one row per distance step.

  • number

    Distance from the muzzle in metres.

  • number

    Remaining velocity at this distance, in metres per second.

  • number

    Remaining energy at this distance, in joules.

  • number

    Drop below the bore line at this distance, in cm: the fall under gravity alone, with no sighting.

  • number

    Height relative to the line of sight at this distance, in cm, negative below: how a drop table reads, for the answer's zeroing (the gun zeroed at zeroM with its sights sightHeightMm above the bore). Starts at minus the sight height at the muzzle and is 0 at the zero.

  • number

    Time of flight to this distance, in seconds.

  • number

    Velocity as a multiple of the speed of sound. Below ~1.2 the projectile is transonic and destabilises.

  • number

    Momentum in kilogram-metres per second.

  • number

    Taylor Knock-Out factor at this distance.

  • number

    Energy per unit frontal area, in joules per square centimetre.

  • string | null

    Why the calculation could not be completed, or null when it succeeded.

  • 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.