GunSpec

Interfaces

Interface standards resource for the GunSpec SDK. Wraps /v1/interfaces: the mount vocabulary every fit is computed from (thread:1/2x28, mag:stanag, rail:picatinny). Listing it is open; asking which firearms expose a standard is Studio.

Auth RequiredStudio+

Firearms that expose a standard at some position. Studio. The id is URL-encoded for you: thread:1/2x28 carries a colon and a slash that would otherwise be read as path separators.

getFirearms(id: string, params?: PaginationParams): Promise<PaginatedResponse<InterfaceFirearm>>
GET/v1/interfaces/{id}/firearms

  • stringheaderrequired

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

  • stringrequired

    Interface standard id. URL-encode it in the path: the colon and any slash must be escaped, so thread:1/2x28 is sent as thread%3A1%2F2x28

    Accepts
    a kind-prefixed standard id such as thread:1/2x28
    Example

  • integerdefault1

    Page number, from 1 to 10,000

    Range
    1 – 10000
    Example
  • integerdefault20

    Items per page (max 100)

    Range
    1 – 100
    Example

  • object[]

    One page of results

  • string

    Slug of the firearm exposing the standard.

  • string

    Display name, as the maker writes it.

  • string

    Where on the firearm the interface sits: muzzle, rear, top, bottom.

  • InterfaceSource

    Where an interface row on a firearm came from. curated is a person; inferred is the backfill, capped at 0.6 confidence; the inherited kinds came through the parent chain or a platform.

  • number

    How well evidenced this row is, 0 to 1. A minimum, not an average: an inferred row caps every fit computed through it, and min_confidence on the endpoint hides rows below a threshold.

  • ManufacturerRef | null

    Who makes it.

  • string | null

    Display name of the firearm category.

  • InlineMediaItem[]

    Renders and photographs of the firearm, ordered so images[0] is the frame to show at rest.

  • integer

    Autoincrementing image id.

  • string

    Absolute, directly fetchable URL.

  • MediaKind

    What kind of asset a media row is.

  • string | null

    Alt text, where one has been written. Null otherwise, so do not render an empty string.

  • integer | null

    Pixel width, where it is known.

  • integer | null

    Pixel height, where it is known.

  • string | null

    Line-art silhouette, or null where none has been drawn.

  • integer

    Year it entered production or service. Null where the date is disputed or unknown.

  • number

    Current page number

  • number

    Items per page

  • number

    Total matching records (Builder and above)

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

Minimum tier
Studio+
Monthly quota
150,000/mo
Rate limit
120/min
Daily cap
10,000

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