GunSpec

Data reports

Found a figure you think is wrong? Tell us, with the page that shows the right one. A report is a question about a record like any task on the board, and it is answered the same way: against the record, your source and the maker's own page, and nothing changes until a person accepts it.

POST /v1/me/reports files a correction against a firearm, naming the section and the kind of problem; GET /v1/me/reports lists what you have filed and where each stands. Both need a key that belongs to an account. Full request and response shapes are in the reference.

Report a wrong barrel length
bash
curl -X POST https://api.gunspec.io/v1/me/reports \  -H "X-API-Key: your_api_key" \  -H "Content-Type: application/json" \  -d '{    "firearmId": "glock-17-gen5",    "section": "specs",    "issueType": "incorrect",    "description": "Barrel length is listed as 114 mm; Glock quotes 114.2 mm.",    "suggestedValue": "114.2",    "references": ["https://eu.glock.com/en/pistols/g17"]  }'

Request body

  • firearmIdstringrequired

    Slug of the firearm this row belongs to.

  • sectionenumrequired

    Which part of the record the report is about.

    • game-stats
    • specs
    • ballistics
    • barrel
    • materials
    • operating
    • calibers
    • users
    • description
  • issueTypeenumrequired

    What kind of problem: incorrect, missing, outdated.

    • incorrect
    • missing
    • outdated
  • descriptionstringrequired

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

  • suggestedValuestring

    What the reporter believes the value should be.

  • referencesstring[]

    Pages the reporter cited in support.

Lifecycle

  1. pending
  2. reviewed
  3. resolved
  4. dismissed
  • One report per account, per firearm, per section every 24 hours; a second one in that window is a 429 REPORT_RATE_LIMITED. Add to the report you already filed instead.
  • Cite a source in references where you can. A report with a manufacturer page behind it is resolved far faster than a bare number.
  • When a report is accepted the record's updatedAt and version change, a firearm.updated event fires, and a conditional request stops answering 304.

Every report takes the same path, and you can see where yours is at each step.

  1. Filed

    Your report is recorded as pending, beside the record and the section it concerns, with the source you cited.

  2. Checked against the evidence

    It moves to reviewed while it is checked: the record as it stands, the page you linked, the sources the record already cites, and where your link settles nothing, the maker's own page. The question is whether a page states what you say it does, for this exact model.

  3. Decided by a person

    A person on the team decides: resolved when the evidence holds up, dismissed when it does not, with the reason on the report either way. Nothing is applied automatically.

  4. Corrected for everyone

    An accepted correction is written into the record with its source: the record's version changes, subscribers are notified, and caches revalidate on the next request. Everyone using the data gets the fix, not only you.

  • On your profile, every report you filed with its status and, once decided, the reason.
  • Over the API, GET /v1/me/reports lists the same, for a script or an integration that files reports.
  • resolved: the evidence held up and the record was corrected, with the page that states the figure kept beside it.
  • dismissed: the record was right as it stood, or no page could be read that states the figure. The reason says which.
  • reviewed: still being checked. A report stays here until a person decides it.

Every task the catalogue's checks closed is on completed work, with who closed it and how.