GunSpec

Manufacturers

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

Auth RequiredExplorer+

Get a single manufacturer by its slug or ID.

get(id: string): Promise<APIResponse<Manufacturer>>
GET/v1/manufacturers/{id}

  • stringheaderrequired

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

  • stringrequired

    Manufacturer slug

    Accepts
    a lowercase slug: letters, digits and hyphens
    Example

  • Manufacturer

    The response payload

  • string

    URL-safe slug identifying the manufacturer, e.g. glock.

  • string

    Display name, as the maker writes it.

  • string | null

    ISO 3166-1 alpha-2 code of where the company is based.

  • integer | null

    Year the company was founded.

  • string | null

    Whether the company still trades. Much of this catalog is historical, and null means nobody has established which.

  • integer | null

    Year the company ceased trading, where that is established. Null while it still trades, and also null where the closing year is simply unknown, so an absent value is never read as "still trading".

  • boolean | null

    Government owned. Null is not false: it means nobody has established it, and a consumer treating null as false would report every unchecked company as private.

  • boolean | null

    Builds the products this catalog lists, as against importing, rebranding or customising them. Scope is the catalog rather than a legal definition: air rifles are listed here as rifles and pistols, so their makers are true. Null means unestablished.

  • string | null

    The manufacturer that owns this one today.

  • string | null

    The manufacturer this one succeeded, which is not the same as being owned by it: U.S. Repeating Arms followed Winchester without Winchester owning it.

  • string | null

    Official website, where one is known.

  • string | null

    Absolute URL of the logo, or null where none is on file.

  • string | null

    Prose summary of the record, where one has been written.

  • string

    When the record was first added, YYYY-MM-DD HH:MM:SS in UTC.

  • string

    When a field we serve last changed. Maintained by the database rather than by whatever wrote the row, so it moves for a corrected specification and does not move for a re-run of the importer.

  • string | null

    Opaque fingerprint of this record. It changes when and only when a field we serve changes, so a client holding the same value already has the record and need not fetch it. Equality is the only supported operation: do not parse it, and do not assume how it is computed. Null means the record has not been written since versioning began, not that it is unchanged.

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

Minimum tier
Explorer+
Monthly quota
200/mo
Rate limit
10/min
Daily cap
50

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.