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+

Retrieve game metadata for firearms (archetypes, stat ranges, etc.).

gameMeta(params?: GameMetaParams): Promise<APIResponse<GameMetaItem[]>>
GET/v1/firearms/game-meta

  • stringheaderrequired

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

  • string

    Restrict to a single archetype

    Accepts

  • GameProfile[]

    The response payload.

  • string

    Slug of the firearm this profile is for.

  • string

    Display name, as the maker writes it.

  • integer | null

    Editorial game statistic, 0-100. Not a measured figure. These are balance numbers for game use and are not derived from the ballistics above.

  • integer | null

    Editorial game statistic, 0-100. Not a measured figure.

  • integer | null

    Editorial game statistic, 0-100. Not a measured figure.

  • integer | null

    Editorial game statistic, 0-100. Not a measured figure.

  • integer | null

    Editorial game statistic, 0-100. Not a measured figure.

  • integer | null

    Editorial game statistic, 0-100. Not a measured figure.

  • integer | null

    Editorial game statistic, 0-100. Not a measured figure.

  • integer | null

    Editorial game statistic, 0-100. Not a measured figure.

  • GameArchetype

    The role a firearm's game profile assigns it.

  • string[]

    The statistics this firearm scores highest on.

  • string[]

    The statistics it scores lowest on.

  • 400VALIDATION_ERRORValidation error
  • 401UNAUTHORIZEDAPI key required
  • 403FORBIDDENValid key, not permitted
  • 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.