---
title: "Link-Scanner und Einmal-Geheimnisse | LinkPilot-Blog"
url: https://uselinkpilot.com/de/blog/link-scanners-and-one-time-secrets
description: "Ein Einmal-Link, der bei einfachem GET gelöscht wird, stirbt bei der Vorschau in Slack oder im Gateway. Auf GET nur Metadaten, löschen erst beim Anzeigen."
lang: de
---

Sicherheit (https://uselinkpilot.com/de/blog/category/security)

# Link-Scanner und Einmal-Geheimnisse

Ein Einmal-Link, der bei einfachem GET gelöscht wird, stirbt bei der Vorschau in Slack oder im Gateway. Auf GET nur Metadaten, löschen erst beim Anzeigen.

W. Miller (https://uselinkpilot.com/de/author/w-miller)26. Mai 2026 · Aktualisiert am 22. Oktober 2026 · Über LinkPilot (https://uselinkpilot.com/de/about)

Ein Einmal-Link, der schon bei einem einfachen `GET` gelöscht wird, ist in dem Moment verbraucht, in dem Slack, Teams oder ein E-Mail-Gateway ihn für eine Vorschau abruft. Die Lösung: Auf `GET` nur Metadaten zurückgeben und das Geheimnis erst bei einem ausdrücklichen `POST` zum Anzeigen löschen, mit einer Passphrase über einen zweiten Kanal als Absicherung. Dieser Beitrag zeigt, welche Systeme Links ungefragt abrufen und wie Sie Ihr Design gegen alle davon absichern.

Der Generator für Einmal-Links (https://uselinkpilot.com/de/tools/free-secret-link-generator) von LinkPilot ist genau so gebaut: Ein Vorschauabruf bekommt nur das Seitengerüst. Das Geheimnis wird erst abgerufen und der Aufruf erst gezählt, wenn ein Browser die Seite ausführt.

## Der übliche Fehler

Die meisten Chat- und E-Mail-Programme versuchen, eine Vorschau anzuzeigen, sobald sie eine URL sehen. Der Ablauf sieht so aus:

1. Jemand fügt den Secret-Link in Slack ein.
2. Der Vorschau-Bot von Slack ruft die URL ab (mit `GET`; Slack dokumentiert das Verhalten unter Link Unfurling (https://api.slack.com/reference/messaging/link-unfurling)).
3. Ihr Handler für das Anzeigen behandelt die Anfrage wie einen menschlichen Aufruf, löscht das Geheimnis und gibt den Inhalt zurück.
4. Slack erhält den gelöschten Inhalt (oder eine allgemeine Seite) und zeigt ihn an.
5. Der Mensch klickt auf den Link, sieht „bereits angesehen“ und bittet den Absender um einen neuen.

Der Vorschau-Bot hatte keine böse Absicht. Ihr Handler hat „jemand hat die URL abgerufen“ mit „der Empfänger hat das Geheimnis gelesen“ gleichgesetzt. Das sind zwei verschiedene Ereignisse, und die ganze Designaufgabe besteht darin, sie auseinanderzuhalten.

In Schritt 3 steckt eine noch schlimmere Variante: Hat das `GET` des Vorschau-Bots den eigentlichen Inhalt erhalten, liegt das Geheimnis jetzt in der Infrastruktur eines Dritten, die Vorschauen erzeugt. Im besten Fall wurde es nach dem Erstellen der Vorschau verworfen. Bestätigen können Sie das aber nicht, und kein Audit-Ereignis sagt Ihnen, dass es passiert ist.

## Wer ruft einen Link ab, bevor der Empfänger ihn öffnet?

Vorschau-Bots von Chat-Programmen, E-Mail-Sicherheitsgateways, Endpoint-Schutz, Firmen-Proxys und Vorschau-Erweiterungen, meist mehrere davon. „Slack zeigt Vorschauen an“ unterschätzt das Problem. Eine URL, die an einem modernen Arbeitsplatz eingefügt wird, rufen typischerweise mehrere Systeme ab, bevor irgendein Mensch klickt:

| Wer abruft | Wann | Erkennbar? |
| --- | --- | --- |
| Vorschau-Bots in Chats (Slack, Teams, iMessage, WhatsApp, LinkedIn) | Sobald die Nachricht gesendet ist | Meist ja: eigene User-Agents wie `Slackbot-LinkExpanding` |
| E-Mail-Sicherheitsgateways (Mimecast, Proofpoint, Microsoft Defender) | Bei der Zustellung und oft noch einmal beim Klick | Oft nicht: Viele geben sich mit echten Browser-User-Agents aus |
| Endpoint-Schutz / Virenschutz | Wenn die URL den Rechner des Empfängers erreicht | Selten |
| Firmen-Webproxys | Beim Klick, bevor die Anfrage des Nutzers weitergeleitet wird | Selten |
| Browser-Erweiterungen für Linkvorschauen | Beim Überfahren mit der Maus oder beim Laden der Seite | Nein: Sie laufen in der Browsersitzung des Nutzers selbst |

Das Verhalten der Anbieter in dieser Tabelle ändert sich laufend. Lesen Sie Angaben zu einzelnen Gateways als „Stand Juli 2026, mit der aktuellen Dokumentation abgleichen“. Der gemeinsame Nenner bleibt aber: Jedes dieser Systeme sendet ein einfaches `GET`, weil das der einzige sichere und universelle Weg ist, sich eine URL anzusehen, die man nicht kontrolliert.

## Wie verhindern Sie, dass eine Vorschau einen Einmal-Link löscht?

Liefern Sie auf `GET` Metadaten aus und löschen Sie nur bei einem ausdrücklichen `POST`. Die HTTP-Semantik gibt das schon her: RFC 9110, Abschnitt 9.2.1 (https://www.rfc-editor.org/rfc/rfc9110#section-9.2.1) definiert `GET` als sicher und idempotent, also als Anfrage, die jeder frei senden darf, weil sie nichts verändern soll. `POST` ist das Verb für Aktionen. Behandeln Sie das Anzeigen deshalb als `POST`-Aktion hinter einer sichtbaren Schaltfläche:

```http
GET  /s/abc123   →  HTML page: "Click to reveal this secret"
POST /s/abc123   →  burns the secret, returns the payload
```

Jetzt liefert das `GET` von Slack eine neutrale Seite mit Metadaten. Das Geheimnis wird erst gelöscht, wenn der Mensch auf die Schaltfläche klickt. Ein Scanner, der sich an die HTTP-Semantik hält, berührt den Inhalt nie. Das tun fast alle, denn `POST`-Anfragen mit Nebenwirkungen an beliebige URLs würden das halbe Web kaputt machen.

## Ein Ablauf Schritt für Schritt

Verfolgen Sie einen Link von Anfang bis Ende. Sie erstellen ein Geheimnis mit Löschen nach dem Lesen und einer Passphrase und fügen die URL in eine Slack-Direktnachricht und in eine E-Mail ein.

1. **Der Vorschau-Bot von Slack** sendet `GET /s/abc123`. Antwort: eine kleine Seite mit Metadaten, Status „active“, Passphrase erforderlich. Kein Aufruf gezählt. Das Geheimnis existiert noch.
2. **Das E-Mail-Gateway des Empfängers** schreibt die URL in der E-Mail um und ruft sie bei der Zustellung zur Reputationsprüfung ab. Dasselbe `GET`, dieselben Metadaten. Das Geheimnis existiert weiter.
3. **Der Empfänger klickt auf den Link in der E-Mail.** Der Scanner des Gateways ruft ihn beim Klick noch einmal ab (`GET`) und leitet den Browser dann weiter.
4. **Der Browser lädt die Seite zum Anzeigen**, wieder mit einem `GET`. Die Seite zeigt eine Schaltfläche zum Anzeigen und ein Feld für die Passphrase. Weiterhin kein Aufruf gezählt.
5. **Der Empfänger gibt die Passphrase ein und klickt auf „Anzeigen“.** Der Browser sendet `POST /s/abc123`. Der Aufruf wird gezählt, der Inhalt zurückgegeben, das Geheimnis gelöscht.
6. **Wer die URL danach abruft**, bekommt statt Inhalt eine ausdrückliche Antwort „bereits angesehen und gelöscht“.

Fünf Abrufe, ein Anzeigen. Dieses Verhältnis ist in einem Unternehmensnetz normal. Ein Design, das damit nicht umgehen kann, scheitert am ersten Tag, und der Absender fügt das Passwort dann einfach direkt in den Chat ein.

## Mehrere Schutzschichten

### Die Trennung von GET und POST

Sie fängt jeden Vorschau-Bot und Scanner ab, der sich an die Regeln hält, und das ist der weitaus größte Teil des automatisierten Verkehrs. Das ist die Grundlage, alles Weitere ist zusätzliche Tiefe.

### Passphrase als Sperre

Sie deckt ab, was die Trennung nicht schafft: Sandboxes, die JavaScript ausführen und mit der Seite interagieren, dazu versehentliche Klicks von Menschen und weitergeleitete E-Mails. Eine Detonations-Sandbox kann auf eine Schaltfläche zum Anzeigen klicken. Eine Passphrase, die über einen anderen Kanal kam, kann sie nicht eingeben. Schicken Sie den Link per E-Mail und die Passphrase per Slack-Direktnachricht oder SMS.

### Filtern von Bot-User-Agents

Verwerfen Sie bekannte Vorschau-Bots (`Slackbot`, `LinkedInBot`, `Twitterbot`), bevor sie die Logik zum Anzeigen erreichen. Das lohnt sich als zusätzliche Sicherung, reicht allein aber nie: Sicherheitsscanner geben sich regelmäßig mit echten Browser-User-Agents aus, gerade damit sich bösartige Seiten nicht vor der Analyse verstecken können.

### Kurzer Ablauf

Begrenzen Sie das Zeitfenster für Schaden. Ein Link, der fünfzehn Minuten gültig war, hinterlässt in Scannern, Logdateien und Chatverläufen eine URL, die auf nichts mehr verweist.

### Cache-Control: no-store

Setzen Sie den Header bei jeder Antwort zum Anzeigen, damit keine Zwischenstation (Firmen-Proxy, CDN, Browser-Cache) nach dem einen legitimen Lesen eine Kopie des Inhalts behält.

## Speziell: E-Mail-Sicherheitsgateways

Firmen-Gateways verdienen einen eigenen Abschnitt, weil sie zweimal abrufen. Produkte dieser Art (Microsoft Defender Safe Links (https://learn.microsoft.com/en-us/defender-office-365/safe-links-about) ist das dokumentierte Beispiel) schreiben jede URL in eingehenden E-Mails auf ihre eigene Scan-Domain um. Die URL wird typischerweise einmal bei der Zustellung zur Reputationsprüfung abgerufen und noch einmal beim Klick, bevor der Mensch zum echten Ziel weitergeleitet wird.

Würde einer dieser Abrufe das Geheimnis löschen, sähe der Empfänger _immer_ einen toten Link. Für Nutzer wirkt dieser Fehler zufällig, tatsächlich ist er völlig vorhersehbar. Die Trennung von `GET` und `POST` fängt beide Abrufe ohne Zusatzaufwand ab, denn beide sind einfache `GET`-Anfragen. Die Weiterleitung beim Klick bringt den Menschen dann auf die Seite zum Anzeigen, wo das `POST` stattfindet.

## Sonderfälle, die trotzdem Probleme machen

- **Sandboxes, die JavaScript ausführen.** Manche Detonationsumgebungen rendern die Seite und interagieren mit ihr. Ein `POST` hinter einer Schaltfläche _ohne Passphrase_ könnte eine aggressive Sandbox im Prinzip auslösen. Die Passphrase ist die letzte Absicherung.
- **Link und Passphrase im selben Kanal.** Gehen beide in derselben E-Mail raus, schrumpft jeder Schutz oben auf „hoffentlich liest niemand diese E-Mail“. Trennen Sie die Kanäle immer.
- **Weiterleiten.** Jede Weiterleitung in einen neuen Chat oder ein neues Mailsystem löst eine neue Runde von Vorschauabrufen aus. Mit der Trennung ist das harmlos, aber jede Station ist ein weiterer Satz Logs mit der URL. Das spricht für einen kurzen Ablauf.
- **Gleichzeitiges Anzeigen.** Klicken zwei Personen gleichzeitig auf „Anzeigen“, müssen Lesen und Löschen in einem einzigen, unteilbaren Schritt geschehen: Genau eine Anfrage gewinnt, die andere bekommt „bereits angesehen“. Trennt die Umsetzung diese beiden Schritte, kann sie den Inhalt zweimal ausliefern.

## Testen Sie Ihr eigenes Tool

Bevor Sie einem Dienst zum Teilen von Geheimnissen echte Zugangsdaten anvertrauen, machen Sie diese Prüfung, die zwei Minuten dauert:

1. Erstellen Sie ein Wegwerf-Geheimnis mit aktiviertem Löschen nach dem Lesen.
2. Rufen Sie es im Terminal ab, genau wie ein Vorschau-Bot: `curl -s -o /dev/null -w "%{http_code}" "<url>"`
3. Öffnen Sie den Link im Browser. Sehen Sie „bereits angesehen“, löscht das Tool schon bei `GET` und ist nicht sicher genug, um den Link in einen Chat oder eine E-Mail einzufügen.
4. Hat das Geheimnis überlebt, zeigen Sie es im Browser regulär an und rufen Sie es dann noch einmal mit `curl` ab. Jetzt sollten Sie eine ausdrückliche Antwort „nicht mehr vorhanden/gelöscht“ bekommen, nicht den Inhalt.

## Wie LinkPilot das umsetzt

Zur Einordnung: Dieses Design nutzen die Secret-Links von LinkPilot. Ein `GET` auf den Endpunkt zum Anzeigen gibt nur Metadaten zurück (den Status und ob eine Passphrase nötig ist). Ein Aufruf wird erst bei einem ausdrücklichen `POST` zum Anzeigen gezählt. Passphrasen werden clientseitig mit SHA-256 gehasht und auf fünf Versuche pro IP-Adresse, Minute und Geheimnis begrenzt. Jede Antwort zum Anzeigen trägt `Cache-Control: no-store`. Gelöschte oder abgelaufene Geheimnisse liefern HTTP 410, und der gespeicherte Inhalt ist überschrieben. Der Audit-Verlauf speichert jedes Ereignis mit einer gehashten IP-Adresse unter einem täglich wechselnden Salt, die rohe IP-Adresse wird nie gespeichert. Alle Details stehen auf der Seite zur Sicherheitsarchitektur (https://uselinkpilot.com/de/security-architecture).

Kostenlos testen, ohne Anmeldung

### Selbstlöschende Nachricht

Senden Sie eine Notiz, die nach einmaligem Lesen verschwindet.

Tool öffnen (https://uselinkpilot.com/de/tools/burn-after-read-secret)

## Grenzen dieses Designs

Ehrlich gesagt: Nichts davon schützt ein Geheimnis _nach_ einem legitimen Anzeigen. Der Empfänger kann den Inhalt selbst kopieren, einen Screenshot machen oder ihn weiterleiten. Es hilft nicht, wenn die Passphrase zusammen mit dem Link verschickt wird. Und es kann niemanden, der den Link versehentlich bekommen hat, daran hindern, ihn vor dem eigentlichen Empfänger zu öffnen. Dafür gibt es den Audit-Verlauf: Sie sehen den unerwarteten Aufruf und erneuern die Zugangsdaten.

## Weiterlesen

- So funktionieren Einmal-Links für Geheimnisse: https://uselinkpilot.com/de/blog/how-one-time-secret-links-work
- Warum URLs sensible Informationen preisgeben: https://uselinkpilot.com/de/blog/why-urls-leak-sensitive-information
- Sicherheitsarchitektur von LinkPilot: https://uselinkpilot.com/de/security-architecture

## Quellen

- IETF, RFC 9110: HTTP Semantics, section 9.2.1 Safe Methods (https://www.rfc-editor.org/rfc/rfc9110#section-9.2.1).
- Slack API, Unfurling links in messages (https://api.slack.com/reference/messaging/link-unfurling).
- Microsoft Learn, Safe Links in Microsoft Defender for Office 365 (https://learn.microsoft.com/en-us/defender-office-365/safe-links-about).

## Tools zu diesem Artikel

Selbstlöschende Nachricht

Senden Sie eine Notiz, die nach einmaligem Lesen verschwindet.
https://uselinkpilot.com/de/tools/burn-after-read-secret

One-Time-Secret-Link-Generator

Teilen Sie ein Passwort oder eine Notiz über einen Link, der sich nur einmal öffnen lässt.
https://uselinkpilot.com/de/tools/free-secret-link-generator

Generator für ablaufende Links

Erstellen Sie Links, die zu einem festgelegten Zeitpunkt nicht mehr funktionieren.
https://uselinkpilot.com/de/tools/temporary-link

## Häufige Fragen

### Welche Programme richten den meisten Schaden an?

### Kann ich Vorschau-Bots am User-Agent erkennen?

### Löst die Trennung von GET und POST das Problem vollständig?

### Klicken E-Mail-Scanner jemals auf Schaltflächen auf der Seite?

### Wie teste ich, ob ein Tool zum Teilen von Geheimnissen Vorschauen übersteht?

## LinkPilot verschickt einen Secret-Link, der nach dem Öffnen verschwunden ist.

In Ihrem Browser verschlüsselt, einmal angezeigt, dann gelöscht. Ohne Konto.

Secret-Link erstellen (https://uselinkpilot.com/de/tools/free-secret-link-generator)

## Weiterlesen

Sicherheit

### API-Schlüssel sicher teilen

Nie API-Schlüssel in Chat oder E-Mail: Ein Einmal-Link wird im Browser verschlüsselt und nach dem Öffnen gelöscht. Bereits eingefügte Schlüssel rotieren Sie.
https://uselinkpilot.com/de/blog/how-to-share-api-keys-securely

Sicherheit

### So funktionieren Einmal-Links für Geheimnisse

Ein Einmal-Link zeigt seinen Inhalt einmal: Der Browser verschlüsselt, der Server speichert nur Geheimtext, das erste Öffnen löscht die gespeicherte Kopie.
https://uselinkpilot.com/de/blog/how-one-time-secret-links-work

Sicherheit

### Ablaufende Links: Geheimnis vernichtet statt umgeleitet

Ein ablaufender Secret-Link vernichtet das Geheimnis zum Stichtag, ein toter Kurzlink leitet nur nicht mehr weiter. Zeitfenster wählen, Sonderfälle kennen.
https://uselinkpilot.com/de/blog/expiring-links-security

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "name": "Startseite",
        "item": "https://uselinkpilot.com/de"
      },
      {
        "@type": "ListItem",
        "position": 2,
        "name": "Blog",
        "item": "https://uselinkpilot.com/de/blog"
      },
      {
        "@type": "ListItem",
        "position": 3,
        "name": "Link-Scanner und Einmal-Geheimnisse",
        "item": "https://uselinkpilot.com/de/blog/link-scanners-and-one-time-secrets"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "BlogPosting",
    "@id": "https://uselinkpilot.com/de/blog/link-scanners-and-one-time-secrets#article",
    "headline": "Link-Scanner und Einmal-Geheimnisse",
    "description": "Ein Einmal-Link, der bei einfachem GET gelöscht wird, stirbt bei der Vorschau in Slack oder im Gateway. Auf GET nur Metadaten, löschen erst beim Anzeigen.",
    "inLanguage": "de",
    "datePublished": "2026-05-26",
    "dateModified": "2026-10-22",
    "image": "https://uselinkpilot.com/logo-512.png",
    "author": {
      "@type": "Person",
      "@id": "https://uselinkpilot.com/author/w-miller#person",
      "name": "W. Miller",
      "url": "https://uselinkpilot.com/de/author/w-miller",
      "worksFor": {
        "@type": "Organization",
        "name": "LinkPilot",
        "url": "https://uselinkpilot.com"
      }
    },
    "publisher": {
      "@type": "Organization",
      "name": "LinkPilot",
      "url": "https://uselinkpilot.com",
      "logo": {
        "@type": "ImageObject",
        "url": "https://uselinkpilot.com/logo-512.png",
        "width": 512,
        "height": 512
      }
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://uselinkpilot.com/de/blog/link-scanners-and-one-time-secrets"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Welche Programme richten den meisten Schaden an?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Alles, was Vorschauen für URLs erzeugt: Slack, Microsoft Teams, iMessage, LinkedIn-Direktnachrichten, die Webvorschauen von WhatsApp und die meisten E-Mail-Sicherheitsgateways (Mimecast, Proofpoint, Microsoft Defender). Sie alle rufen die URL beim Empfang ab."
        }
      },
      {
        "@type": "Question",
        "name": "Kann ich Vorschau-Bots am User-Agent erkennen?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Teilweise. Bots, die sich an die Regeln halten, senden erkennbare User-Agents (Slackbot-LinkExpanding, LinkedInBot, Twitterbot). Sicherheitsscanner geben sich oft als echte Browser aus, daher reicht das Filtern nach User-Agent allein nicht."
        }
      },
      {
        "@type": "Question",
        "name": "Löst die Trennung von GET und POST das Problem vollständig?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Für Vorschau-Bots vollständig, denn sie senden nur GET. Gegen einen Menschen, der versehentlich klickt und das Geheimnis löscht, hilft sie nicht. Dafür brauchen Sie zusätzlich die Passphrase als Sperre."
        }
      },
      {
        "@type": "Question",
        "name": "Klicken E-Mail-Scanner jemals auf Schaltflächen auf der Seite?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Manche Detonations-Sandboxes führen JavaScript aus und können mit einer Seite interagieren, eine bloße Schaltfläche zum Anzeigen ist also keine Garantie. Deshalb ist die Passphrase wichtig: Eine Sandbox kann keine Passphrase eingeben, die über einen anderen Kanal verschickt wurde."
        }
      },
      {
        "@type": "Question",
        "name": "Wie teste ich, ob ein Tool zum Teilen von Geheimnissen Vorschauen übersteht?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Erstellen Sie ein Wegwerf-Geheimnis, rufen Sie seine URL einmal mit curl ab (ein einfaches GET, genau das, was ein Vorschau-Bot tut), und öffnen Sie sie dann im Browser. Zeigt der Browser „bereits angesehen“, löscht das Tool schon bei GET und ist nicht sicher genug, um den Link in einen Chat oder eine E-Mail einzufügen."
        }
      }
    ],
    "inLanguage": "de"
  },
  {
    "@context": "https://schema.org",
    "@type": "SoftwareApplication",
    "@id": "https://uselinkpilot.com/#software",
    "name": "LinkPilot",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "Web",
    "description": "LinkPilot is a secure link management platform for creating branded short links, tracking engagement, and sharing secrets with expiring, protected, self-destructing links.",
    "url": "https://uselinkpilot.com",
    "offers": [
      {
        "@type": "Offer",
        "name": "Free",
        "price": "0",
        "priceCurrency": "USD",
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Pro",
        "price": "29",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "29",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency",
        "price": "299",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "299",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency Plus",
        "price": "799",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "799",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Pro (yearly)",
        "price": "288",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "288",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency (yearly)",
        "price": "2988",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "2988",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency Plus (yearly)",
        "price": "7980",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "7980",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Enterprise",
        "priceSpecification": {
          "@type": "PriceSpecification",
          "priceCurrency": "USD"
        },
        "url": "https://uselinkpilot.com/pricing"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Organization",
    "@id": "https://uselinkpilot.com/#organization",
    "name": "LinkPilot",
    "alternateName": "LinkPilot by TetraCore",
    "url": "https://uselinkpilot.com",
    "contactPoint": {
      "@type": "ContactPoint",
      "contactType": "customer support",
      "email": "support@uselinkpilot.com",
      "url": "https://uselinkpilot.com/support"
    },
    "parentOrganization": {
      "@type": "Organization",
      "@id": "https://tetracorehq.com/#organization",
      "name": "TetraCore",
      "url": "https://tetracorehq.com/"
    },
    "logo": {
      "@type": "ImageObject",
      "url": "https://uselinkpilot.com/logo-512.png",
      "width": 512,
      "height": 512
    },
    "description": "LinkPilot is a secure link management platform for creating branded short links, tracking engagement, and sharing secrets with expiring, protected, self-destructing links.",
    "sameAs": [
      "https://x.com/uselinkpilot",
      "https://www.linkedin.com/company/uselinkpilot",
      "https://facebook.com/uselinkpilot",
      "https://github.com/TetraCoreHQ/linkpilot-cli",
      "https://github.com/TetraCoreHQ/linkpilot-mcp",
      "https://www.npmjs.com/package/linkpilot",
      "https://www.npmjs.com/package/@uselinkpilot/sdk",
      "https://www.npmjs.com/package/@uselinkpilot/mcp",
      "https://chromewebstore.google.com/detail/linkpilot-short-links-and/mnmppadihpcncicldpkmgknhnjkondad",
      "https://addons.mozilla.org/en-US/firefox/addon/uselinkpilot/"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebSite",
    "name": "LinkPilot",
    "url": "https://uselinkpilot.com",
    "potentialAction": {
      "@type": "SearchAction",
      "target": "https://uselinkpilot.com/blog?q={search_term_string}",
      "query-input": "required name=search_term_string"
    }
  }
]
```