GunSpec

Firearms

Browse, search, compare and retrieve detailed specifications for 8,500+ firearms, variants included.

Auth RequiredBuilder+

Returns, for each of up to 5 firearms firing a load, its maximum point-blank range: the furthest distance at which the bullet stays within half the target's diameter of the line of sight all the way from the muzzle, at the zero that makes that distance longest. With it come that zero (the far zero), the near zero where the bullet first rises through the line of sight, the peak, the time of flight and the velocity at the range, and the supersonic range.

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
2,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.