GunSpec
Datenschutz

Wie wir deine Daten schützen

Was bei jeder Anfrage an die API läuft, wie der Katalog vor dem Massenkopieren geschützt wird, wie Schlüssel und Konto gesichert sind und welche Richtlinien dahinterstehen. Die Zahlen auf dieser Seite stammen aus der Konfiguration, die sie durchsetzt.

  • 118/135Operationen brauchen einen Schlüssel
  • 17ohne Schlüssel erreichbar
  • 33antworten mit 304 Not Modified
  • 8weisen zu große Bodies ab
  • 39dokumentierte Fehlergründe
  • 4Pläne, jeder mit eigenem Limiter

Die API ist eine Pipeline, und die Reihenfolge ist der Vertrag: Eine Anfrage wird identifiziert, gehärtet, gedrosselt und gezählt, bevor ein Handler läuft; auch ein gecachter Lesezugriff durchläuft jede Stufe. Jede Zeile nennt, was ein Aufrufer beobachten kann.

  1. 1
    Nur TLSStrict-Transport-Security

    Jeder Endpunkt ist HTTPS. Reines HTTP wird umgeleitet, und HSTS mit Preload sagt Browsern, es nie zu versuchen.

  2. 2
    Härtungs-HeaderX-Content-Type-OptionsX-Frame-OptionsReferrer-Policy

    Content-Sniffing, Framing und Referrer-Leaks sind auf jeder Antwort abgeschaltet. Von der API gelieferte SVGs tragen eine sandboxende Content-Security-Policy, weil ein von unserem Origin geöffnetes SVG sonst Skript mit unserer Autorität ausführen würde.

  3. 3
    Origin-AllowlistAccess-Control-Allow-Origin

    Browser dürfen die API nur von Origins aufrufen, die wir benennen. Alles andere bekommt kein Access-Control-Allow-Origin, und der Browser verwirft die Antwort.

  4. 4
    Body-Obergrenze413 PAYLOAD_TOO_LARGE

    Ein Request-Body über 1 MB wird anhand von Content-Length abgewiesen, bevor ein Byte gelesen wird; nichts wird gespeichert, und die Anfrage kann geteilt neu gesendet werden.

    Mehr lesen
  5. 5
    Notbremsen und Client-Schutz403 CLIENT_BLOCKED503 MAINTENANCE

    Eine Sperrliste nach Adresse, ein Schutz gegen leere oder bekannte Scraper-User-Agents und Betreiberschalter für Wartung, Nur-Lesen und Vollstopp. Die Konsole liegt bewusst außerhalb, damit ein Ausfall immer abgeschaltet werden kann.

    Mehr lesen
  6. 6
    Die Website ist kein Kunde

    gunspec.io erreicht die API über einen Proxy, der ein serverseitiges Token anhängt, das der Browser nie sieht. Sie hat keinen API-Schlüssel und keine Stufe, also kann sich niemand das Credential der Seite leihen, um den Katalog kostenlos zu lesen.

  7. 7
    Signierter Browser-Verkehr403 ORIGIN_BLOCKED

    Eine Browser-Anfrage, die einen GunSpec-Origin behauptet, aber keinen Schlüssel trägt, muss mit einem HMAC signiert sein, der nach 5 Minuten verfällt. Eine unsignierte wird abgewiesen statt anonym bedient.

    Mehr lesen
  8. 8
    Dein Schlüssel401403

    Gesendet als X-API-Key or Authorization. Ein fehlendes, fehlerhaftes oder abgelaufenes Credential ist ein 401; ein gültiges ohne Berechtigung ein 403, und der Fehler sagt welches, damit du nie einen Schlüssel rotierst, der in Ordnung war.

    Mehr lesen
  9. 9
    Minutenlimit429 RATE_LIMITEDRetry-After

    Ein Cloudflare-Rate-Limiter pro Plan, nach Schlüssel. Darüber sagt Retry-After, wie lange zu warten ist.

    Explorer
    10/min
    Builder
    60/min
    Studio
    120/min
    Enterprise
    300/min
    Mehr lesen
  10. 10
    Tagesgrenze429 DAILY_CAP_EXCEEDED

    Eine zweite Obergrenze pro Schlüssel, zurückgesetzt um Mitternacht UTC. Eine 304-Revalidierung zählt nicht dagegen.

    Explorer
    50/day
    Builder
    2,000/day
    Studio
    10,000/day
    Enterprise
    50,000/day
    Mehr lesen
  11. 11
    Paginierungs-Burst429 PAGINATION_BURST

    10 oder mehr aufeinanderfolgende Seiten innerhalb von 90 Sekunden werden abgewiesen. Ein Mirror sollte ein größeres per_page nutzen, oder Webhooks.

    Mehr lesen
  12. 12
    Seitentiefe403 PAGINATION_DEPTH_EXCEEDED

    Wie weit ein Plan in eine Liste blättern darf. Filter grenzen eine Liste ein; tiefes Blättern zählt sie auf.

    Explorer
    5 pages
    Builder
    25 pages
    Studio
    Enterprise
    Mehr lesen
  13. 13
    Feldformung

    Antworten werden pro Plan an einer Stelle geformt, nach dem Handler. Der Gratisplan sieht 7 Listenfelder und eine Detail-Zusammenfassung; bezahlte Pläne volle Spezifikationen.

    Mehr lesen
  14. 14
    Conditional RequestsETag304 Not Modified

    33 Lese-Operationen antworten auf ein passendes If-None-Match mit 304 Not Modified. Das ETag ist ein Hash des exakten Bodys für deinen Plan, nie des Datensatzes, sodass ein geteilter Cache nie den Body eines Plans an einen anderen liefert.

    Mehr lesen
  15. 15
    Edge-Cache nach PlanVary: X-API-Key

    Öffentliche Lesezugriffe werden am Edge gecacht, nach Zugriffsstufe und Aufruferart. Jede /v1-Antwort trägt Vary: X-API-Key, damit kein Proxy dazwischen eine Antwort über Credentials hinweg wiederverwendet.

    Mehr lesen
  16. 16
    Request-IDX-Request-Id

    Jede Antwort trägt X-Request-Id, jeder Fehler wiederholt sie als request_id. Nenne sie dem Support; sie findet die Anfrage in unseren Logs.

    Mehr lesen

Der Datensatz ist das Produkt. Diese Grenzen machen eine Vollkopie in jedem Plan teuer, während eine gewöhnliche Integration sie nie erreicht.

Feldformung

Listenzeilen des Gratisplans tragen 7 Felder, seine Detailansicht 19; bezahlte Pläne erhalten volle Spezifikationen. Einmal angewandt, nach jedem Handler, damit ein neuer Endpunkt es nicht vergessen kann.

  • id
  • name
  • manufacturerId
  • manufacturer
  • updatedAt
  • version
  • provenance
Welche Felder das sind

Seitentiefe

Die tiefste Seitennummer, die ein Plan anfordern darf.

Explorer
5 Seiten
Builder
25 Seiten
Studio
Enterprise
So funktioniert Paginierung

Tagesgrenze

Zusätzlich zum Monatskontingent und dem Minutenlimit.

Explorer
50 pro Tag
Builder
2,000 pro Tag
Studio
10,000 pro Tag
Enterprise
50,000 pro Tag

Gesamtzahlen

Ob eine Listenantwort sagt, wie viele Datensätze passen. Im Gratisplan verborgen, damit die Größe des Datensatzes daraus nicht abgeleitet werden kann.

Explorer
Builder
Studio
Enterprise

Paginierungs-Burst

10 oder mehr aufeinanderfolgende Seiten innerhalb von 90 Sekunden werden mit 429 abgewiesen. Filter und größere Seiten sind der Weg, mehr zu lesen; Webhooks der Weg, aktuell zu bleiben.

So funktioniert Paginierung

Assets und SVGs

Line-Art- und Modell-URLs erreichen API-Schlüssel als absolute, abrufbare URLs und die Website als verschleierte Pfade, die nur ihr eigener Decoder liest. Jedes von der API gelieferte SVG ist gesandboxt:

Content-Security-Policy
default-src
'none'
style-src
'unsafe-inline'
img-src
data:
sandbox
gesetzt, kein Wert

Die Kontoseite: wie ein Credential gespeichert, begrenzt und geprüft wird.

WasWie
API-SchlüsselGesendet als X-API-Key, Authorization, nur über TLS. Im Profil erstellen, deaktivieren und widerrufen; der Widerruf wirkt sofort. Ein deaktivierter oder abgelaufener Schlüssel antwortet 401 mit einem Grund, der sagt welches.
Erkennung geteilter SchlüsselRequest-Header werden zu einem Client-Fingerabdruck gehasht. Teilen sich 3 oder mehr Schlüssel einen Fingerabdruck, wird das Konto zur Rotation markiert. Die Prüfung läuft nach der Antwort, ohne Latenzkosten.
Website-SitzungenGetrennt von API-Schlüsseln und von der Mitarbeiterkonsole. Das Cookie ist HttpOnly, Secure und auf unsere Domain begrenzt; Schreibzugriffe eines angemeldeten Kontos sind auf 60 pro Minute begrenzt; eine ablaufende Sitzung ist ein 401 SESSION_EXPIRED, kein stiller Logout.
Anmelde-Drosselung10 Versuche pro Adresse und 1 Stunde auf der Login-Oberfläche, damit Credential Stuffing die Versuche ausgehen, bevor die Vermutungen ausgehen.
Versiegelte GeheimnisseZugangsdaten, die Betreiber in die Konsole einfügen, werden mit authentifizierter Verschlüsselung versiegelt, bevor sie die Datenbank berühren; ein geleaktes Backup ist kein geleaktes Konto.
Mitarbeiter-Audit-TrailJede ändernde Mitarbeiteraktion landet in einem Append-only-Log: wer, was, wann, von wo. Request-Bodies werden nie gespeichert, damit das Log kein Geheimnis verraten kann.
Kill-Switch, Wartung, Nur-LesenBetreiber können die öffentliche API anhalten, ohne die Konsole zu berühren. Du siehst ein 503 mit Retry-After und benanntem Grund. Siehe die 503-Gründe.
Webhook-ZustellungenJede Zustellung ist signiert: X-Webhook-Signature ist t=TIMESTAMP,v1=HMAC_SHA256_HEX(TIMESTAMP + "." + BODY), über ein Geheimnis, das nur du und wir halten. Fehlgeschlagene Zustellungen werden nach 1, 5, 15 Minuten wiederholt. Prüfanleitung.
Studio
5
Enterprise
20

Von der API auf allen Routen gesetzt; die Website setzt dieselbe Familie plus eine eigene Content-Security-Policy und Permissions-Policy.

HeaderWert
Strict-Transport-Securitymax-age=31536000; includeSubDomains; preload
X-Content-Type-Optionsnosniff
X-Frame-OptionsDENY
Referrer-Policystrict-origin-when-cross-origin
Cross-Origin-Resource-Policycross-origin
VaryX-API-Key, Accept-Encoding

Der Katalog sind öffentliche technische Daten ohne personenbezogene Informationen. Personenbezogen ist, was ein Konto braucht: eine E-Mail-Adresse, ein Plan, Nutzungsdaten. So wird damit umgegangen.

  • DSGVO und Australian Privacy Principles. Buun Group ist ein australisches Unternehmen; die Datenschutzerklärung nennt deine Rechte auf Auskunft, Berichtigung, Löschung, Übertragbarkeit und Widerspruch nach beiden.
  • Auftragsverarbeitungsvertrag. Online veröffentlicht; eine gegengezeichnete Fassung mit den EU-Standardvertragsklauseln gibt es auf Anfrage.
  • Meldung von Datenpannen. Ohne unangemessene Verzögerung, sobald wir davon erfahren, mit dem, was du für deine eigenen Pflichten brauchst.
  • Internationale Übermittlungen. Daten werden in Australien und den USA auf Cloudflares Netz verarbeitet, unter Standardvertragsklauseln.
  • Aufbewahrung. Kontodaten werden innerhalb von 30 Tagen nach Kontolöschung gelöscht. API-Nutzungslogs bleiben 90 Tage, Abrechnungsunterlagen 7 Jahre, wie das Steuerrecht verlangt.
  • Opt-in-Analytics. Analytics lädt erst nach Zustimmung im Cookie-Banner. Authentifizierungs- und Sicherheits-Cookies sind die einzigen zwingend nötigen.
  • Datensparsamkeit. Kartendaten berühren unsere Systeme nie; Stripe hält sie. Fehlerlogs enthalten einen Code und eine Request-ID, nie einen Request-Body.
  • Wir crawlen selbst höflich. Wo unsere Pipelines eine fremde Seite abrufen, beachten sie robots.txt und ziehen sich bei Ablehnung zurück, pro Origin gecacht.

Wer Daten verarbeitet

AuftragsverarbeiterRolleRegion
Cloudflarehosting, edge compute, database, object storage, securityUS and global
Stripepayments and subscription billing; card details never touch usUS and Ireland
Google Analyticsopt-in analytics, loaded only after consentUS
Resendlogin codes and account emailUS
Sentryerror reports from the website only; the API never reports to itUS

Die Richtlinien

Eine Schwachstelle gefunden? Die Sicherheitsseite sagt, wie du sie meldest, oder schreib an security@gunspec.io.