---
title: "So funktionieren Einmal-Links für Geheimnisse | LinkPilot-Blog"
url: https://uselinkpilot.com/de/blog/how-one-time-secret-links-work
description: "Ein Einmal-Link zeigt seinen Inhalt einmal: Der Browser verschlüsselt, der Server speichert nur Geheimtext, das erste Öffnen löscht die gespeicherte Kopie."
lang: de
---

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

# 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.

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 für Geheimnisse ist eine URL, die ihren Inhalt genau einmal anzeigt und danach dauerhaft wirkungslos ist. Der Browser des Absenders verschlüsselt das Geheimnis mit AES-GCM-256, der Server speichert nur den Geheimtext, und der Schlüssel steht im Teil des Links nach `#k=`, den Browser nie mitsenden. Das erste Öffnen durch den Empfänger entschlüsselt das Geheimnis und löscht die gespeicherte Kopie im selben Vorgang.

Mit dem kostenlosen Secret-Link-Generator (https://uselinkpilot.com/de/tools/free-secret-link-generator) erstellen Sie einen solchen Link ohne Konto.

Der Mechanismus ist einfach. Interessant wird es bei den Sonderfällen, denn dort lassen schlampige Umsetzungen unbemerkt Daten durch.

## Der grundlegende Ablauf

1. Der Absender fügt das Geheimnis ein. Der Browser erzeugt einen Zufallsschlüssel, verschlüsselt den Inhalt über die Web Crypto API (https://www.w3.org/TR/WebCryptoAPI/) mit AES-GCM-256 und sendet nur den Geheimtext. Der Server speichert ihn unter einem zufälligen, schwer zu erratenden Kürzel und gibt eine URL zurück. Der Browser hängt den Schlüssel als `#k=`-Fragment an, das das Gerät des Absenders nie verlässt.
2. Der Absender teilt die URL über einen beliebigen Kanal: E-Mail, Chat, SMS.
3. Der Empfänger öffnet die URL. Ein einfacher `GET` liefert nur den Status. Klickt er auf „Anzeigen“, markiert der Server das Geheimnis als verbraucht und gibt in demselben, unteilbaren Schritt den Geheimtext zurück; der Browser des Empfängers entschlüsselt ihn mit dem Schlüssel aus dem Teil des Links nach dem #.
4. Jeder weitere Besuch bekommt statt des Inhalts den Hinweis, dass der Inhalt gelöscht ist.

Entscheidend ist Schritt 3. Laufen das Lesen und die Statusänderung als zwei getrennte Abfragen (erst `SELECT` zum Prüfen, dann `UPDATE` zum Markieren), können zwei gleichzeitige Besucher die Prüfung bestehen, bevor einer von beiden schreibt. Beide erhalten den Inhalt. Das ist ein klassischer TOCTOU-Fehler (time-of-check to time-of-use), und er macht aus der Zusage „genau einmal“ ein „meistens einmal“.

## Warum müssen Lesen und Löschen ein einziger Schritt sein?

Weil sonst zwei gleichzeitige Besucher die Prüfung bestehen können, bevor einer von beiden das Geheimnis als verbraucht markiert. Die Lösung: Prüfen, Markieren und Lesen werden zu einer einzigen Datenbankoperation zusammengefasst. In Postgres sieht das mit `UPDATE ... RETURNING` (https://www.postgresql.org/docs/current/sql-update.html) so aus:

```sql
UPDATE secrets
SET burned_at = now()
WHERE slug = $1
  AND burned_at IS NULL
  AND expires_at > now()
RETURNING payload;
```

Die Zeilensperre, die das `UPDATE` setzt, sorgt dafür, dass gleichzeitige Aufrufe nacheinander abgearbeitet werden. Der erste erfüllt die `WHERE`-Bedingung, setzt `burned_at` und erhält den Inhalt über `RETURNING` zurück. Jeder spätere Aufruf findet `burned_at` bereits gesetzt, trifft null Zeilen und bekommt den Status „gelöscht“. Zwischen „prüfen“ und „verbrauchen“ gibt es kein Zeitfenster, weil beides dieselbe Anweisung ist.

Genau deshalb erfasst LinkPilot jeden Aufruf über eine Datenbankfunktion in einem einzigen, unteilbaren Schritt: Gleichzeitige Versuche, das Geheimnis zu öffnen, können es nicht zweimal preisgeben. Wenn Sie ein Tool prüfen, ist das eine berechtigte Frage an den Anbieter: _Geschehen Lesen und Löschen in einem einzigen, unteilbaren Schritt?_

## Warum liefern gelöschte Links HTTP 410 und nicht 404?

Weil 410 Gone (https://www.rfc-editor.org/rfc/rfc9110#section-15.5.11) besagt, dass die Ressource existiert hat und dauerhaft nicht mehr verfügbar ist. Genau das ist ein gelöschtes Geheimnis. Ist es verbraucht, soll der Link deutlich und dauerhaft scheitern. LinkPilot tut beim Löschen zwei Dinge:

- Der gespeicherte Inhalt wird im selben Schreibvorgang, der den Status umstellt, mit `[REDACTED]` **überschrieben**. Selbst eine spätere Kompromittierung der Datenbank kann ein verbrauchtes Geheimnis also nicht wiederherstellen.
- Weitere Versuche, es zu öffnen, liefern **HTTP 410 Gone** mit einer klaren Seite „bereits angesehen und vernichtet“.

410 ist der richtige Statuscode: Er bedeutet, dass die Ressource existiert hat und absichtlich und dauerhaft nicht mehr verfügbar ist. Ein 404 dagegen sagt „nie davon gehört“. Der Unterschied zählt auch für Menschen. Ein Empfänger, der „dieses Geheimnis wurde bereits angesehen“ liest, weiß, dass er dem Absender Bescheid geben muss. Der kann im Audit-Verlauf nachsehen und die Zugangsdaten erneuern, falls nicht der Empfänger selbst es geöffnet hat.

## Schwer zu erratende Kürzel und warum sie nicht reichen

Zwischen dem öffentlichen Internet und einem ungelesenen Geheimtext steht nur das Kürzel (der Schlüssel steht im Teil des Links nach dem #, nicht auf dem Server). Es muss daher echte Entropie tragen. Ein Kürzel aus einer kryptografisch sicheren Zufallsquelle mit beispielsweise 22 Zeichen in base62 trägt etwa 128 Bit. Durchprobieren ist damit bei keiner Anfragerate, die ein Server überstehen würde, ein realistischer Angriff.

Entropie im Kürzel schützt aber nur gegen _Erraten_. Gegen eine _mitgelesene_ URL hilft sie nicht: Browserverlauf, Proxy-Logs, weitergeleitete E-Mails, Bildschirmfreigaben, Zwischenablage-Manager. Deshalb ergänzen ernsthafte Umsetzungen weitere Schutzschichten:

- **Ablauf**, damit eine mitgelesene URL planmäßig ungültig wird.
- **Eine Passphrase**, damit eine mitgelesene URL allein nicht genügt.
- **Löschen nach dem Lesen**, damit eine mitgelesene URL nach dem rechtmäßigen Öffnen wertlos ist.

## Linkvorschauen und Bots

Chat-Programme (Slack, Teams, iMessage) und E-Mail-Sicherheitsscanner rufen URLs mit einem `GET` ab, sobald eine Nachricht zugestellt wird, um eine Vorschau zu erzeugen. Löscht Ihr Endpunkt zum Anzeigen schon beim `GET`, vernichtet der Vorschau-Bot das Geheimnis, bevor ein Mensch es je sieht. Das ist in der Praxis der häufigste Fehler naiver Tools mit Löschen nach dem Lesen.

So schützt LinkPilot dagegen:

- **Getrennte Aktionen für Metadaten und Anzeige.** Ein `GET` auf den Endpunkt zum Anzeigen liefert nur den Status und die Angabe, ob eine Passphrase nötig ist. Ein Aufruf wird erst bei einem ausdrücklichen `POST` gezählt, also bei der Aktion, die ein Mensch mit dem Klick auf die Schaltfläche „Anzeigen“ auslöst.
- **Passphrase-Sperre (Pro).** Ist eine Passphrase gesetzt, erhält niemand den Inhalt ohne den richtigen Hash, weder Bot noch Mensch.
- **`Cache-Control: no-store`** bei jeder Antwort mit Inhalt, damit Zwischenstationen geheime Inhalte nie zwischenspeichern.

Die Seite zur Sicherheitsarchitektur von LinkPilot (https://uselinkpilot.com/de/security-architecture) dokumentiert diese Behandlung von Anfang bis Ende.

## Der Lebenszyklus, Zustand für Zustand

| Zustand | Ausgelöst durch | Was ein Besucher sieht | Inhalt wiederherstellbar? |
| --- | --- | --- | --- |
| „Active“ (aktiv) | Erstellung | Seite zum Anzeigen (mit Abfrage der Passphrase, falls gesetzt) | Ja, einmal anzeigbar |
| „Burned“ (gelöscht) | Grenze der Aufrufe erreicht | „Bereits angesehen und vernichtet“, HTTP 410 | Nein, Inhalt überschrieben |
| „Expired“ (abgelaufen) | Ablaufzeitpunkt überschritten | Statusseite für abgelaufene Links | Nein, beim nächsten Zugriff geschwärzt |
| „Revoked“ (widerrufen) | Absender beendet ihn im Dashboard | Anzeige verweigert, HTTP 410 | Nein, sofort und dauerhaft |

Jeder Übergang landet im Audit-Verlauf, einer Pro-Funktion von LinkPilot. Die Ereignistypen sind `created`, `viewed`, `failed_passphrase`, `burned`, `expired` und `revoked`, jeweils mit Zeitstempel und gehashter IP (SHA-256 mit täglich wechselndem Salt; die rohe IP wird nie gespeichert). Dieser Verlauf macht aus „Ich glaube, sie haben es bekommen“ ein „um 10:05 aus dem erwarteten Land angesehen, ein Aufruf, dann gelöscht“.

## Übliche Erweiterungen

- **Passphrase-Sperre:** Vor dem Anzeigen ist eine Passphrase nötig, die über einen anderen Kanal kommt. Eine geleakte URL allein ist dann kein geleaktes Geheimnis. Bei LinkPilot ist das eine Pro-Funktion (29 $ im Monat), zusammen mit frei wählbarem Ablauf und dem Audit-Verlauf; der Generator ohne Konto kann keine Passphrase setzen. Begrenzen Sie die Zahl der Versuche: LinkPilot erlaubt 5 pro IP, Minute und Geheimnis und protokolliert jeden Fehlversuch.
- **Zeitlicher Ablauf:** Das Geheimnis verfällt nach einem festgelegten Zeitraum, auch wenn es nie gelesen wurde. Das Formular nach der Anmeldung bietet in jedem Tarif 1 Stunde, 24 Stunden oder 7 Tage, bei Pro auch ein frei wählbares Datum mit Uhrzeit; der Generator ohne Konto setzt standardmäßig 7 Tage. Das deckt den Fall ab, dass ein Link im Posteingang vergessen wird, den Löschen nach dem Lesen nicht abdeckt.
- **Manueller Widerruf:** Der Absender kann ein ungelesenes Geheimnis im Dashboard beenden, sobald ihm etwas merkwürdig vorkommt. Eine günstige Absicherung für den Fall „an den falschen Alex geschickt“.

## Sonderfälle, an denen sich gute Umsetzungen zeigen

### Die falsche Person öffnet ihn zuerst

Löschen nach dem Lesen hält die falsche Person nicht auf, macht die Fehlzustellung aber _sichtbar_. Der eigentliche Empfänger landet auf dem Hinweis, dass der Inhalt gelöscht ist, der Audit-Verlauf zeigt einen unerwarteten Aufruf, und Sie erneuern die Zugangsdaten. Das ist ärgerlich, aber begrenzt: genau eine Offenlegung, schnell entdeckt. Ein in den Chat kopiertes Geheimnis dagegen würden Sie nie bemerken.

### Das Screenshot-Problem

Einmalig heißt einmal _anzeigen_, nicht einmal _kopieren_. Der Empfänger kann das Geheimnis per Screenshot festhalten, kopieren oder abtippen. Der Link verhindert nichts davon, und Anbieter, die anderes andeuten, verkaufen Fiktion. Ehrlich gesagt: Löschen nach dem Lesen kontrolliert den Übertragungsweg, nicht den Empfänger. Vertrauen in den Empfänger ist eine Voraussetzung, kein Ergebnis.

### Prefetch im Browser und spekulatives Laden

Manche Browser und Apps laden URLs vorab, die wahrscheinlich angeklickt werden. Weil ein gut gebautes Tool nur bei einem ausdrücklichen `POST` löscht, verhält sich Prefetch genau wie ein Vorschau-Bot: Er kann das Seitengerüst laden, nie den Inhalt.

## Wann Sie keinen Einmal-Link verwenden sollten

- **Der Wert wird wieder gebraucht.** Wiederherstellbarkeit ist das zentrale Ziel eines Passwortmanagers und genau das, was ein Einmal-Link verhindern soll. Nutzen Sie einen Eintrag im Tresor.
- **Mehrere Empfänger brauchen ihn.** Ein Link, ein Lesevorgang. Bei mehreren Personen legen Sie entweder einen Link pro Person an (in Ordnung und nachvollziehbar) oder Sie brauchen in Wahrheit eine gemeinsame Zugriffskontrolle.
- **Eine Maschine ist der Abnehmer.** Dienste und CI sollten aus einem Secrets-Manager lesen, nicht Links anklicken.

Wenn Sie den Mechanismus in Aktion sehen wollen, erstellen Sie einen Link mit dem kostenlosen Secret-Link-Generator (https://uselinkpilot.com/de/tools/free-secret-link-generator): ohne Konto, in Ihrem Browser verschlüsselt, nach dem ersten Öffnen gelöscht.

## Weiterlesen

- Passwörter sicher teilen: 5 Methoden im Vergleich: https://uselinkpilot.com/de/secure-password-sharing
- One-Time Secret (https://uselinkpilot.com/de/one-time-secret), Einmal-Link (https://uselinkpilot.com/de/one-time-link) und Secret-Link (https://uselinkpilot.com/de/secret-link): die kurzen Seiten mit dem Tool ganz oben
- Ist OneTimeSecret sicher?: https://uselinkpilot.com/de/is-onetimesecret-secure
- Die besten Alternativen zu OneTimeSecret: https://uselinkpilot.com/de/blog/best-onetimesecret-alternatives
- OneTimeSecret vs Privnote vs Password Pusher: https://uselinkpilot.com/de/blog/onetimesecret-vs-privnote-vs-password-pusher
- Ablaufende Links: Das Geheimnis wird gelöscht, nicht nur umgeleitet: https://uselinkpilot.com/de/blog/expiring-links-security
- Kostenloser Secret-Link-Generator: https://uselinkpilot.com/de/tools/free-secret-link-generator

## Quellen

- W3C, Web Cryptography API (https://www.w3.org/TR/WebCryptoAPI/).
- IETF, RFC 3986, Abschnitt 3.5 Fragment (https://www.rfc-editor.org/rfc/rfc3986#section-3.5).
- IETF, RFC 9110: HTTP Semantics, Abschnitt 15.5.11 410 Gone (https://www.rfc-editor.org/rfc/rfc9110#section-15.5.11).
- PostgreSQL-Dokumentation, UPDATE (https://www.postgresql.org/docs/current/sql-update.html).

## Tools zu diesem Artikel

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

Selbstlöschende Nachricht

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

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

### Was passiert, wenn zwei Personen den Link gleichzeitig öffnen?

### Löscht eine Linkvorschau das Geheimnis?

### Warum liefern gelöschte Links HTTP 410 statt 404?

### Kann ich ein gelöschtes Geheimnis wiederherstellen?

### Kann der Server ein Einmal-Geheimnis lesen?

### Ist es sicher, einen Einmal-Link per E-Mail zu senden?

## 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

### 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

Sicherheit

### Clientseitige Verschlüsselung: Was sie schützt und was nicht

Verschlüsselung im Browser schützt Geheimnisse vor Betreiber und Datenbank-Leaks, mehr nicht. Schadcode, Erweiterungen und geleakte Links hebeln sie aus.
https://uselinkpilot.com/de/blog/client-side-encryption-for-secret-sharing

Sicherheit

### Zugangsdaten beim Kunden-Onboarding per Einmal-Link

Für Agenturen und MSPs: den ersten Login als Einmal-Link senden, vertrauliche Onboarding-Anleitungen ebenso teilen und die Übergabe dokumentieren.
https://uselinkpilot.com/de/blog/one-time-credential-sharing-for-client-onboarding

## 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": "So funktionieren Einmal-Links für Geheimnisse",
        "item": "https://uselinkpilot.com/de/blog/how-one-time-secret-links-work"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "BlogPosting",
    "@id": "https://uselinkpilot.com/de/blog/how-one-time-secret-links-work#article",
    "headline": "So funktionieren Einmal-Links für Geheimnisse",
    "description": "Ein Einmal-Link zeigt seinen Inhalt einmal: Der Browser verschlüsselt, der Server speichert nur Geheimtext, das erste Öffnen löscht die gespeicherte Kopie.",
    "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/how-one-time-secret-links-work"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Was passiert, wenn zwei Personen den Link gleichzeitig öffnen?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Ein korrekt umgesetzter Einmal-Link führt das Lesen und das Markieren als verbraucht in einer einzigen, unteilbaren Datenbankoperation aus, sodass genau ein Besucher gewinnt. Der andere sieht den Status „gelöscht“. Laufen beide Schritte getrennt, können beide Besucher das Geheimnis lesen. Das ist ein klassischer TOCTOU-Fehler."
        }
      },
      {
        "@type": "Question",
        "name": "Löscht eine Linkvorschau das Geheimnis?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Das sollte sie nicht. Server sollten nur bei einer ausdrücklichen Aktion zum Anzeigen (POST) löschen, nicht beim Abruf der Metadaten (GET), mit dem Chat- und E-Mail-Programme Vorschauen erzeugen. Der GET-Endpunkt von LinkPilot liefert nur den Status und die Angabe, ob eine Passphrase nötig ist."
        }
      },
      {
        "@type": "Question",
        "name": "Warum liefern gelöschte Links HTTP 410 statt 404?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "410 Gone bedeutet, dass die Ressource existiert hat und absichtlich und dauerhaft nicht mehr verfügbar ist. Genau das ist ein gelöschtes Geheimnis. Der Code sagt Clients und Caches, dass der Inhalt nicht zurückkommt, und er ist ehrlich: Der Link war echt, und er ist verbraucht."
        }
      },
      {
        "@type": "Question",
        "name": "Kann ich ein gelöschtes Geheimnis wiederherstellen?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nein, darum geht es ja. Bei LinkPilot wird der gespeicherte Geheimtext in dem Moment überschrieben, in dem das Geheimnis gelöscht wird, abläuft oder widerrufen wird. Es gibt also nichts wiederherzustellen. Wenn Sie Wiederherstellbarkeit brauchen, nutzen Sie einen Passwortmanager und teilen Sie stattdessen einen Eintrag im Tresor."
        }
      },
      {
        "@type": "Question",
        "name": "Kann der Server ein Einmal-Geheimnis lesen?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Bei LinkPilot nicht. Das Geheimnis wird vor dem Senden in Ihrem Browser mit AES-GCM-256 verschlüsselt. Der Server speichert nur den Geheimtext, und der Schlüssel zum Entschlüsseln steht im Teil des Links nach #k=, den Browser nie an einen Server senden. Beim Öffnen kommt der Geheimtext zurück, und Ihr Browser entschlüsselt ihn. Wer den vollständigen Link hat, hat auch den Schlüssel. Deshalb sind Ablauf und Löschen nach dem Lesen weiterhin wichtig."
        }
      },
      {
        "@type": "Question",
        "name": "Ist es sicher, einen Einmal-Link per E-Mail zu senden?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Einigermaßen, wenn der Link abläuft und mit einer Passphrase geschützt ist, die über einen anderen Kanal kommt. E-Mails werden gescannt, weitergeleitet und aufbewahrt. Gehen Sie also davon aus, dass die URL selbst gesehen werden kann. Die Passphrase und ein kurzer Ablauf verhindern, dass aus einer gesehenen URL ein geleaktes Geheimnis wird."
        }
      }
    ],
    "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"
    }
  }
]
```