---
title: "Sicheres Teilen von Links für Entwickler | LinkPilot-Blog"
url: https://uselinkpilot.com/de/blog/secure-link-sharing-for-developers
description: "Ein Praxisleitfaden für Entwicklungsteams: wann Einmal-Links passen, wie Sie sie per Skript erzeugen und wie Sie sie in Onboarding und CI einbinden."
lang: de
---

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

# Sicheres Teilen von Links für Entwickler

Ein Praxisleitfaden für Entwicklungsteams: wann Einmal-Links passen, wie Sie sie per Skript erzeugen und wie Sie sie in Onboarding und CI einbinden.

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

In der Entwicklung taucht das Teilen von Geheimnissen meist an drei Stellen auf: beim **Onboarding**, bei der **Übergabe an Dienstleister** und bei der **Reaktion auf Sicherheitsvorfälle**. Dieser Artikel zeigt aus Sicht von Entwicklern, wann ein Einmal-Link passt, wann nicht, und wie Sie ihn per Skript erzeugen, ohne das Geheimnis dabei in Ihre Shell-History zu schreiben. Wer das Prinzip erst ausprobieren will: Der kostenlose Generator für Einmal-Links (https://uselinkpilot.com/de/tools/free-secret-link-generator) funktioniert ohne Konto.

## Wann sollten Entwickler einen Einmal-Link nutzen?

Wenn an mindestens einem Ende der Übergabe ein Mensch steht und der Wert danach nirgends mehr liegen soll. Die typischen Fälle:

- Neue Teammitglieder in der Entwicklung bekommen ihre ersten Zugangsdaten.
- Während eines Vorfalls wird ein temporäres Admin-Passwort geteilt.
- Ein Token für einen Dienstleister oder Freelancer soll nicht in Ihrem Tresor landen.
- Zugangsdaten werden erneuert, und der alte Wert soll schnell ungültig werden.
- Ein Kunde bekommt den API-Schlüssel, den Sie für ihn angelegt haben.

## Wann Sie keinen Einmal-Link nutzen sollten

- **Geheimnisse zwischen Maschinen.** CI-Umgebungsvariablen (zum Beispiel GitHub Actions secrets (https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions)), Kubernetes Secrets (https://kubernetes.io/docs/concepts/configuration/secret/) und dynamische Zugangsdaten aus Vault sind dort das richtige Mittel. Ein Link dient der Übergabe von Mensch zu Mensch, mit der die Werte in diese Systeme gelangen.
- **Langlebige Team-Zugangsdaten.** Die gehören in einen Passwortmanager.
- **Öffentliche Konfiguration.** Verkleiden Sie keine harmlose Konfiguration als Geheimnis. Nutzen Sie einen normalen Link.

Die Trennlinie: Sind beide Enden der Übertragung Maschinen, nutzen Sie den Secret Store Ihrer Plattform. Steht an mindestens einem Ende ein Mensch, ist ein Einmal-Link meist das sauberste Mittel.

| Situation | Richtiges Mittel |
| --- | --- |
| Erste Zugangsdaten für neue Entwickler | Einmal-Link |
| CI-Pipeline braucht zur Laufzeit ein Deploy-Token | CI-Secret-Store / Umgebungsvariablen |
| Pod braucht ein Datenbank-Passwort | K8s-Secret / External Secrets Operator |
| Team-Login, den fünf Personen täglich nutzen | Passwortmanager (geteilter Tresor) |
| Kunde braucht den für ihn angelegten API-Schlüssel | Einmal-Link |
| Geheimnis wird in einem Git-Repository gebraucht | Niemals; auf einen Secret Store verweisen und Scanning in die CI aufnehmen |

## Per Skript erzeugen

LinkPilot hat eine REST-API in jedem Tarif, auch im Free-Tarif (die Rate-Limits unterscheiden sich je nach Tarif). Ein Geheimnis aus einem Skript heraus anzulegen, sieht so aus:

```bash
LP_KEY=lp_live_...

URL=$(curl -sS https://api.uselinkpilot.com/v1/secrets \
  -H "Authorization: Bearer $LP_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "payload": "'"$NEW_DB_PASSWORD"'",
    "expires_in": 3600,
    "burn_after_read": true,
    "passphrase": "'"$ONBOARDING_PASSPHRASE"'"
  }' | jq -r '.url')

echo "Secret link: $URL"
```

Diese URL leiten Sie in den Zustellkanal weiter, den Sie ohnehin nutzen: Slack-Direktnachricht, E-Mail oder den Webhook Ihres Onboarding-Tools.

### Den Inhalt aus der Prozessliste heraushalten

Das Beispiel oben hat einen klassischen Fehler: Wird der Inhalt in `-d` eingesetzt, steht er in der Kommandozeile von curl, und jeder lokale Benutzer kann ihn mit `ps` lesen, solange die Anfrage läuft. Bauen Sie das JSON stattdessen mit `jq` (https://jqlang.org/manual/) und übergeben Sie es mit curls `-d @-` (https://curl.se/docs/manpage.html#-d) über stdin:

```bash
set -euo pipefail

jq -n --arg payload "$NEW_DB_PASSWORD" \
      --arg pass "$ONBOARDING_PASSPHRASE" \
      '{payload: $payload, expires_in: 3600,
        burn_after_read: true, passphrase: $pass}' |
curl -sS https://api.uselinkpilot.com/v1/secrets \
  -H "Authorization: Bearer $LP_KEY" \
  -H "Content-Type: application/json" \
  -d @- | jq -r '.url'
```

Drei Gewohnheiten, die zum Reflex werden sollten:

- Werte kommen aus Umgebungsvariablen oder der CLI eines Secrets-Managers. Tippen Sie sie nie in eine interaktive Shell, wo sie in der History landen.
- Das Skript gibt den _Link_ aus, nie den Inhalt.
- `set -euo pipefail`, damit ein fehlgeschlagener API-Aufruf nicht unbemerkt eine leere URL an den nächsten Schritt weitergibt.

## Vorlage für das Onboarding

Ein Ablauf, der sich am ersten Tag neuer Entwickler bewährt:

1. Das Onboarding-Skript legt Konten an und holt einmalige Zugangsdaten.
2. Das Skript erstellt pro Zugang einen Secret-Link mit Ablauf nach 4 Stunden und einer gemeinsamen Passphrase.
3. Das Skript schickt eine E-Mail mit allen Links und eine Slack-Direktnachricht mit der Passphrase.
4. Die neue Person öffnet jeden Link und kopiert die Zugangsdaten in ihren Passwortmanager.
5. Was bis Feierabend ungelesen ist, wird widerrufen und in ihrem Tempo neu ausgestellt.

Warum diese Einstellungen: Der Ablauf nach 4 Stunden deckt einen normalen ersten Vormittag ab, ohne dass Zugangsdaten über Nacht gültig bleiben. Die Passphrase kommt über einen zweiten Kanal, sodass eine weitergeleitete oder falsch zugestellte E-Mail keinen Schaden anrichtet. Durch das Löschen nach dem Lesen enthält das Postfach abends nur noch tote URLs.

Sagen Sie der neuen Person ausdrücklich: _„Jeder Link funktioniert nur einmal. Speichern Sie den Wert in Ihrem Passwortmanager, bevor Sie den Tab schließen.“_ Der häufigste Fehler beim Onboarding: Jemand liest das Geheimnis, schließt den Tab und geht davon aus, später noch einmal nachsehen zu können.

## Ablaufplan für einen Passwortwechsel

So erneuern Sie ein geteiltes Datenbank-Passwort, wenn ein Freelancer oder ein Teammitglied den neuen Wert bekommen soll:

1. Erzeugen Sie das neue Passwort und setzen Sie es im Quellsystem (Datenbank, Cloud-Konsole oder wo immer es maßgeblich ist).
2. Aktualisieren Sie zuerst Ihre eigenen Systeme, die den Wert nutzen (CI-Tresor, K8s-Secret, App-Konfiguration), damit nichts ausfällt, während die Übergabe an den Menschen läuft.
3. Erstellen Sie einen Einmal-Link für den neuen Wert: Löschen nach dem Lesen, Ablauf nach 1 Stunde, Passphrase.
4. Schicken Sie Link und Passphrase über verschiedene Kanäle.
5. Prüfen Sie das Abruf-Ereignis im Audit-Verlauf. Kein Abruf vor dem Ablauf? Widerrufen und neu ausstellen. Schicken Sie nie denselben Link noch einmal.
6. Bestätigen Sie, dass die alten Zugangsdaten an der Quelle deaktiviert sind.

Jeder Passwortwechsel bekommt einen eigenen Link. Links sind bewusst unabhängig voneinander. Für die Zustellung ist das ein Vorteil, für die Verwaltung bringt es nichts. Der _Zeitplan_ für Passwortwechsel gehört deshalb in Ihren Manager oder Ihr Runbook, nicht in das Link-Tool.

## Reaktion auf Sicherheitsvorfälle

Während eines Vorfalls müssen Sie oft Zugangsdaten erneuern und die neuen schnell an einige Beteiligte verteilen. Fügen Sie sie nicht in den Vorfall-Kanal ein. Dieser Kanal wird für die Nachbesprechung aufgezeichnet, und das Geheimnis landet im Export, im Retro-Dokument und in jedem Archivsystem, das daran hängt.

- Erneuern Sie die Zugangsdaten im Quellsystem.
- Erstellen Sie einen Secret-Link mit Ablauf nach 30 Minuten.
- Posten Sie den Link im Kanal und schicken Sie die Passphrase per Direktnachricht.
- Bestätigen Sie nach dem Vorfall, dass der Link gelöscht oder widerrufen ist.

In der Nachbesprechung steht dann eine tote URL statt eines gültigen Admin-Passworts. Der Audit-Verlauf liefert der Person, die die Zeitleiste prüft, nebenbei einen exakten Eintrag wie „Zugangsdaten um 14:32 neu ausgestellt, um 14:33 gelesen“.

Ein Hinweis zu Link-Vorschauen: Chat-Clients rufen eingefügte URLs ab, um eine Vorschau anzuzeigen. Ein gut gebauter Secret-Link übersteht das, weil der Abruf für die Vorschau ein `GET` ist und das Öffnen ein ausdrücklicher `POST`. Die genaue Funktionsweise steht im Artikel Link-Scanner und Einmal-Geheimnisse (https://uselinkpilot.com/de/blog/link-scanners-and-one-time-secrets). Wenn Sie ein Tool prüfen, testen Sie das vor einem Vorfall, nicht währenddessen.

## Was verrät der Audit-Verlauf?

Ob ein Geheimnis gelesen wurde, wann und ungefähr von wo, und ob jemand eine falsche Passphrase versucht hat. Jedes Geheimnis in LinkPilot hat einen Ereignisverlauf: created, viewed, failed_passphrase, burned, expired, revoked. Abrufe werden mit Zeitstempel, grober Standortangabe (falls verfügbar), User-Agent und gehashter IP-Adresse gespeichert (SHA-256 mit täglich wechselndem Salt; die unveränderte IP-Adresse wird nie gespeichert). In der Praxis liefert das drei Antworten, auf die sich Skripte und Runbooks verlassen können:

- **Zustellbestätigung:** Ein viewed-Ereignis bedeutet, dass die Übergabe stattgefunden hat.
- **Erkennung von Auffälligkeiten:** Eine Häufung von failed_passphrase oder ein Abruf, den Sie nicht zuordnen können, ist das Signal, die Zugangsdaten sofort zu erneuern.
- **Ein sauberer Nachweis für Prüfungen:** „Einmal zugestellt, einmal gelesen, gelöscht“ ist ein Satz, den Auditoren gern lesen.

## Grenzen: was Links nicht lösen

- **Sie sind kein Tresor.** Ein Einmal-Link verwaltet weder laufende Zugriffe noch Zeitpläne für Passwortwechsel oder Übersichten, wer was hat.
- **Der Link ist der Schlüssel.** LinkPilot verschlüsselt Texte in Ihrem Browser und erhält den Schlüssel nie. Dieser Schlüssel steckt aber im Teil des Links nach dem #. Wer den vollständigen Link hat, kann das Geheimnis also lesen, und ist der Link verloren, lässt sich das Geheimnis nicht wiederherstellen. Angehängte Dateien werden genauso verschlüsselt, ihre Namen und Größen jedoch nicht. Ein kurzer Ablauf und das Löschen nach dem Lesen bleiben deshalb wichtig. _Aktualisierung vom 29. September 2026: Dieser Punkt lautete früher „Sie sind nicht Ende-zu-Ende-verschlüsselt“. Das traf bis zu diesem Datum zu._ Details stehen auf der Seite zur Sicherheitsarchitektur (https://uselinkpilot.com/de/security-architecture).
- **Sie beheben keine verstreuten Geheimnisse im Code.** Schlüssel, die fest in Repositories stehen, brauchen Scanning und Erneuerung, keinen besseren Zustellweg.
- **Sie schützen nicht das andere Ende.** Hat ein Mensch den Wert gelesen, gehen Sie davon aus, dass er überall dort existiert, wo diese Person ihn abgelegt hat.

Kostenlos testen, ohne Anmeldung

### One-Time-Secret-Link-Generator

Teilen Sie ein Passwort oder eine Notiz über einen Link, der sich nur einmal öffnen lässt.

Tool öffnen (https://uselinkpilot.com/de/tools/free-secret-link-generator)

## Weiterlesen

- API-Schlüssel sicher teilen: https://uselinkpilot.com/de/blog/how-to-share-api-keys-securely
- Ablaufende Links: Warum kurze Fristen wichtig sind: https://uselinkpilot.com/de/blog/expiring-links-security
- Sicherheitsarchitektur von LinkPilot: https://uselinkpilot.com/de/security-architecture

## Quellen

- GitHub Docs, Using secrets in GitHub Actions (https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions).
- Kubernetes, Secrets (https://kubernetes.io/docs/concepts/configuration/secret/).
- jq, Manual (https://jqlang.org/manual/).
- curl, Manual page, `-d, --data` (https://curl.se/docs/manpage.html#-d).

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

### Kann ich Secret-Links aus einem Skript heraus erstellen?

### Dürfen Geheimnisse in der CI überhaupt in Umgebungsvariablen stehen?

### Wie gehe ich in Skripten mit Passwortwechseln um?

### Landet das Geheimnis nicht in meiner Shell-History oder in der Prozessliste?

### Wie prüfe ich, ob die Zugangsdaten tatsächlich angekommen sind?

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

### Secret-Links oder Passwortmanager?

Ein Passwortmanager speichert Zugangsdaten fürs Team; ein Einmal-Link übergibt sie einmal an eine Person. Die meisten Teams brauchen beides.
https://uselinkpilot.com/de/blog/secret-links-vs-password-managers

Sicherheit

### 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.
https://uselinkpilot.com/de/blog/link-scanners-and-one-time-secrets

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

## 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": "Sicheres Teilen von Links für Entwickler",
        "item": "https://uselinkpilot.com/de/blog/secure-link-sharing-for-developers"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "BlogPosting",
    "@id": "https://uselinkpilot.com/de/blog/secure-link-sharing-for-developers#article",
    "headline": "Sicheres Teilen von Links für Entwickler",
    "description": "Ein Praxisleitfaden für Entwicklungsteams: wann Einmal-Links passen, wie Sie sie per Skript erzeugen und wie Sie sie in Onboarding und CI einbinden.",
    "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/secure-link-sharing-for-developers"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Kann ich Secret-Links aus einem Skript heraus erstellen?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Ja. LinkPilot bietet in jedem Tarif, auch im Free-Tarif, eine REST-API (die Rate-Limits unterscheiden sich je nach Tarif), mit der Sie Geheimnisse aus Onboarding-Skripten, CI-Jobs oder internen Tools anlegen. Jeder Aufruf liefert eine URL, die Sie an E-Mail, Slack oder SMS weitergeben können."
        }
      },
      {
        "@type": "Question",
        "name": "Dürfen Geheimnisse in der CI überhaupt in Umgebungsvariablen stehen?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Ja, für die Laufzeit der CI ist das weiterhin das richtige Mittel. Secret-Links sind für die Übergabe von Mensch zu Mensch gedacht (eine Person bekommt die ersten Zugangsdaten, die sie in den CI-Tresor einträgt), nicht für den Weg von Maschine zu Maschine."
        }
      },
      {
        "@type": "Question",
        "name": "Wie gehe ich in Skripten mit Passwortwechseln um?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Erzeugen Sie neue Zugangsdaten im Quellsystem, packen Sie sie in einen Einmal-Link, schicken Sie den Link, und lassen Sie die Empfänger die Werte in ihrem Manager oder CI-Tresor ablegen. Verwenden Sie Links nicht über mehrere Wechsel hinweg: Jeder Passwortwechsel bekommt einen eigenen Link."
        }
      },
      {
        "@type": "Question",
        "name": "Landet das Geheimnis nicht in meiner Shell-History oder in der Prozessliste?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Genau das ist das Risiko bei naiven Skripten: Kommandozeilenargumente sind für andere lokale Benutzer über ps sichtbar, solange der Befehl läuft, und interaktive Shells schreiben History-Dateien. Übergeben Sie Inhalte über stdin (curl -d @-) und halten Sie API-Schlüssel in Umgebungsvariablen, nie in Parametern."
        }
      },
      {
        "@type": "Question",
        "name": "Wie prüfe ich, ob die Zugangsdaten tatsächlich angekommen sind?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Sehen Sie im Audit-Verlauf des Geheimnisses nach. Ein viewed- oder burned-Ereignis mit Zeitstempel bestätigt die Zustellung. Läuft ein Geheimnis ohne Abruf ab, ist die Zustellung gescheitert. Widerrufen Sie es dann und stellen Sie es neu aus, statt zu raten."
        }
      }
    ],
    "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"
    }
  }
]
```