---
title: "Jak fungují jednorázové tajné odkazy | Blog LinkPilot"
url: https://uselinkpilot.com/cs/blog/how-one-time-secret-links-work
description: "Jednorázový tajný odkaz zobrazí obsah jednou: prohlížeč ho zašifruje, server uloží jen šifrový text a první zobrazení uloženou kopii zničí."
lang: cs
---

Bezpečnost (https://uselinkpilot.com/cs/blog/category/security)

# Jak fungují jednorázové tajné odkazy

Jednorázový tajný odkaz zobrazí obsah jednou: prohlížeč ho zašifruje, server uloží jen šifrový text a první zobrazení uloženou kopii zničí.

W. Miller (https://uselinkpilot.com/cs/author/w-miller)26. května 2026 · Aktualizováno 22. října 2026 · O LinkPilotu (https://uselinkpilot.com/cs/about)

Jednorázový tajný odkaz je adresa URL, která svůj obsah zobrazí právě jednou a pak už natrvalo nic neukáže. Prohlížeč odesílatele zašifruje tajnou zprávu pomocí AES-GCM-256 a server uloží jen šifrový text. Klíč putuje v části odkazu za znakem # (za `#k=`), kterou prohlížeče nikdy neodesílají. První zobrazení u příjemce zprávu dešifruje a v téže operaci uloženou kopii zničí.

Takový odkaz si můžete vytvořit bez účtu v bezplatném generátoru tajných odkazů (https://uselinkpilot.com/cs/tools/free-secret-link-generator).

Samotný mechanismus je jednoduchý. Zajímavé jsou až okrajové případy, protože právě v nich nedbalé implementace potichu propouštějí data.

## Základní průběh

1. Odesílatel vloží tajnou zprávu. Prohlížeč vygeneruje náhodný klíč, zašifruje obsah pomocí AES-GCM-256 přes Web Crypto API (https://www.w3.org/TR/WebCryptoAPI/) a odešle jen šifrový text. Server ho uloží pod náhodnou, těžko uhodnutelnou koncovkou a vrátí URL. Prohlížeč k ní připojí klíč jako část `#k=`, která nikdy neopustí zařízení odesílatele.
2. Odesílatel pošle URL libovolným kanálem: e-mailem, v chatu, v SMS.
3. Příjemce URL otevře. Prostý požadavek `GET` vrátí jen stav. Když příjemce klikne na „Zobrazit“, server v jednom nedělitelném kroku označí tajnou zprávu jako spotřebovanou a vrátí šifrový text. Prohlížeč příjemce ho dešifruje klíčem z části za znakem #.
4. Každá další návštěva dostane místo obsahu stránku se stavem „zničeno“.

Rozhodující je krok 3. Pokud čtení a změna stavu proběhnou jako dva samostatné dotazy (`SELECT` pro kontrolu a pak `UPDATE` pro označení), dva souběžní návštěvníci mohou kontrolou projít dřív, než kterýkoli z nich zapíše změnu. Obsah pak dostanou oba. To je klasická chyba TOCTOU (time-of-check to time-of-use), která z vaší záruky „právě jednou“ udělá „obvykle jednou“.

## Proč musí zničení proběhnout ve stejném kroku jako čtení?

Protože jinak mohou dva souběžní návštěvníci projít kontrolou dřív, než kterýkoli z nich tajnou zprávu označí jako spotřebovanou. Řešením je sloučit kontrolu, označení a čtení do jedné databázové operace. V Postgresu to s `UPDATE ... RETURNING` (https://www.postgresql.org/docs/current/sql-update.html) vypadá takto:

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

Příkaz `UPDATE` zamkne řádek, takže souběžní volající se seřadí za sebe. První odpovídá podmínce `WHERE`, nastaví `burned_at` a přes `RETURNING` dostane obsah zpět. Každý další volající najde `burned_at` už nastavené, neodpovídá mu žádný řádek a dostane stav „zničeno“. Mezi „kontrolou“ a „spotřebováním“ není žádné okno, protože jde o jediný příkaz.

LinkPilot právě z tohoto důvodu zaznamenává zobrazení databázovou funkcí v jednom nedělitelném kroku, takže souběžné pokusy o zobrazení nemohou tajnou zprávu vyzradit dvakrát. Pokud nějaký nástroj vybíráte, je rozumné zeptat se přímo dodavatele: _zničí se zpráva v tomtéž nedělitelném kroku jako čtení?_

## Proč zničené odkazy vracejí HTTP 410, a ne 404?

Protože 410 Gone (https://www.rfc-editor.org/rfc/rfc9110#section-15.5.11) říká, že zdroj existoval a je natrvalo nedostupný, a přesně to zničená tajná zpráva je. Po spotřebování má odkaz selhat jasně a natrvalo. LinkPilot při zničení udělá dvě věci:

- Uložený obsah se **přepíše** hodnotou `[REDACTED]` v tomtéž zápisu, který mění stav. Ani pozdější průnik do databáze proto spotřebovanou tajnou zprávu neobnoví.
- Další pokusy o zobrazení vrátí **HTTP 410 Gone** se srozumitelnou stránkou „už zobrazeno a zničeno“.

410 je správný stavový kód: znamená, že zdroj existoval a je záměrně a natrvalo nedostupný. Oproti tomu 404 říká „o ničem takovém nevím“. Rozdíl je důležitý i pro lidi. Příjemce, který uvidí „tato tajná zpráva už byla zobrazena“, ví, že to má říct odesílateli. Ten si pak projde auditní záznam, a pokud zprávu nezobrazil příjemce, přihlašovací údaje změní.

## Těžko uhodnutelné koncovky a proč nestačí

Koncovka odkazu je to jediné, co stojí mezi veřejným internetem a nepřečteným šifrovým textem (klíč je v části za znakem #, ne na serveru), takže musí nést skutečnou entropii. Koncovka z kryptograficky bezpečného zdroje náhody, třeba 22 znaků v base62, nese zhruba 128 bitů. Postupné zkoušení všech možností tak není reálný útok při žádné rychlosti požadavků, kterou by server přežil.

Entropie koncovky ale chrání jen před _uhodnutím_. Nijak nepomůže, když URL někdo _zahlédne_: v historii prohlížeče, v logu proxy, v přeposlaném e-mailu, při sdílení obrazovky nebo ve správci schránky. Proto seriózní implementace přidávají další vrstvy:

- **Vypršení platnosti**, aby zahlédnutá URL podle plánu přestala fungovat.
- **Heslovou frázi**, aby samotná zahlédnutá URL nestačila.
- **Zničení po přečtení**, aby zahlédnutá URL po oprávněném přečtení neměla žádnou cenu.

## Náhledy odkazů a boti

Chatovací aplikace (Slack, Teams, iMessage) a bezpečnostní skenery e-mailu vytvářejí z URL náhled tak, že ji hned po doručení zprávy načtou požadavkem `GET`. Pokud váš koncový bod pro zobrazení zničí zprávu už při `GET`, nástroj pro náhledy tajnou zprávu zničí dřív, než ji uvidí člověk. U naivních nástrojů typu „zničit po přečtení“ je to v praxi nejčastější selhání.

Obrana, jak ji implementuje LinkPilot:

- **Oddělená akce pro metadata a pro zobrazení.** Požadavek `GET` na koncový bod pro zobrazení vrátí jen stav a informaci, zda je vyžadována heslová fráze. Zobrazení se zaznamená až při výslovném požadavku `POST`, tedy při akci, kterou člověk udělá kliknutím na tlačítko „Zobrazit“.
- **Ochrana heslovou frází (Pro).** Když je heslová fráze nastavená, bez správného hashe nikdo nedostane žádný obsah, ať je to bot, nebo člověk.
- **`Cache-Control: no-store`** u každé odpovědi se zobrazením, aby obsah tajné zprávy neukládal do mezipaměti žádný prostředník.

Celé toto zpracování popisuje stránka o bezpečnostní architektuře LinkPilotu (https://uselinkpilot.com/cs/security-architecture).

## Životní cyklus stav po stavu

| Stav | Spouštěč | Co uvidí návštěvník | Lze obsah obnovit? |
| --- | --- | --- | --- |
| „Active“ (aktivní) | Vytvoření | Stránka pro zobrazení (s výzvou k heslové frázi, pokud je nastavená) | Ano, zbývá jedno zobrazení |
| „Burned“ (zničeno) | Dosažen limit počtu zobrazení | „Už zobrazeno a zničeno“, HTTP 410 | Ne, obsah je přepsán |
| „Expired“ (platnost vypršela) | Uplynul termín platnosti | Stránka se stavem „platnost vypršela“ | Ne, při dalším přístupu se přepíše |
| „Revoked“ (zneplatněno) | Odesílatel odkaz zneplatní v řídicím panelu | Odmítne zobrazit obsah, HTTP 410 | Ne, okamžitě a natrvalo |

Každý přechod se zapíše do časové osy auditu, kterou LinkPilot nabízí v tarifu Pro. Typy událostí jsou `created`, `viewed`, `failed_passphrase`, `burned`, `expired` a `revoked`, každá s časovým razítkem a hashovanou IP adresou (SHA-256 se solí, která se denně mění; samotnou IP adresu nikdy neukládáme). Díky tomuto záznamu se z „myslím, že to dostali“ stane „zobrazeno v 10:05 z očekávané země, jedno zobrazení, pak zničeno“.

## Běžná rozšíření

- **Ochrana heslovou frází:** před zobrazením se vyžaduje heslová fráze předaná jiným kanálem, takže uniklá URL sama o sobě neznamená uniklou tajnou zprávu. V LinkPilotu je to funkce tarifu Pro (29 $/měs.) spolu s vlastní dobou platnosti a časovou osou auditu; generátor bez účtu ji nastavit neumí. Počet pokusů omezujte; LinkPilot povoluje 5 pokusů za minutu z jedné IP adresy na jednu tajnou zprávu a zaznamená každý neúspěch.
- **Vypršení platnosti po určité době:** tajná zpráva zanikne po nastavené době, i když ji nikdo nepřečte. Formulář LinkPilotu po přihlášení nabízí v každém tarifu 1 hodinu, 24 hodin nebo 7 dní a v tarifu Pro i vlastní datum a čas; generátor bez účtu nastavuje ve výchozím stavu 7 dní. Pokrývá případ, kdy odkaz zůstane zapomenutý v e-mailové schránce, a ten zničení po přečtení nevyřeší.
- **Ruční zneplatnění:** odesílatel může nepřečtenou tajnou zprávu zneplatnit v řídicím panelu, jakmile se mu něco nezdá. Levná pojistka pro situaci „odešlo to jinému Alexovi“.

## Okrajové případy, na kterých se pozná dobrá implementace

### Jako první ho otevře nesprávný člověk

Zničení po přečtení nesprávnému čtenáři nezabrání, ale chybné doručení _zviditelní_. Zamýšlený příjemce narazí na stránku se zničenou zprávou, auditní záznam ukáže jedno zobrazení, které jste nečekali, a vy přihlašovací údaje změníte. Je to nepříjemné, ale ohraničené: právě jedno vyzrazení, rychle odhalené. Srovnejte to s tajnou zprávou vloženou do chatu, kde byste se o tom nikdy nedozvěděli.

### Problém se snímky obrazovky

Jednorázový znamená jedno _zobrazení_, ne jednu _kopii_. Příjemce si tajnou zprávu může vyfotit, zkopírovat nebo přepsat a odkaz tomu nijak nezabrání. Dodavatelé, kteří naznačují opak, prodávají smyšlenku. Poctivě řečeno: zničení po přečtení řídí kanál doručení, ne příjemce. Důvěra v příjemce je vstupní předpoklad, ne výsledek.

### Přednačítání v prohlížeči a spekulativní načítání

Některé prohlížeče a aplikace předem načítají URL, na které uživatel pravděpodobně klikne. Dobře postavený nástroj zprávu zničí jen při výslovném `POST`, takže přednačítání se chová stejně jako nástroj pro náhledy: načte kostru stránky, nikdy ale obsah.

## Kdy jednorázový odkaz nepoužívat

- **Údaj budete potřebovat znovu.** Možnost obnovení je hlavním cílem správce hesel a přesným opakem toho, oč jde jednorázovému odkazu. Použijte položku v trezoru.
- **Potřebuje ho víc příjemců.** Jeden odkaz, jedno přečtení. Rozeslání víc lidem znamená buď jeden odkaz pro každého (v pořádku a dohledatelné v auditu), nebo přiznat, že místo toho potřebujete sdílené řízení přístupu.
- **Údaj spotřebovává stroj.** Služby a CI mají číst ze správce tajných údajů, ne klikat na odkazy.

Pokud chcete mechanismus vidět v akci, vytvořte si odkaz v bezplatném generátoru tajných odkazů (https://uselinkpilot.com/cs/tools/free-secret-link-generator): bez účtu, zašifruje se ve vašem prohlížeči a po prvním zobrazení zmizí.

## Související články

- Bezpečné sdílení hesel: srovnání 5 metod: https://uselinkpilot.com/cs/secure-password-sharing
- One time secret (https://uselinkpilot.com/cs/one-time-secret), jednorázový odkaz (https://uselinkpilot.com/cs/one-time-link) a tajný odkaz (https://uselinkpilot.com/cs/secret-link): krátké stránky s nástrojem nahoře
- Je OneTimeSecret bezpečný?: https://uselinkpilot.com/cs/is-onetimesecret-secure
- Nejlepší alternativy k OneTimeSecret: https://uselinkpilot.com/cs/blog/best-onetimesecret-alternatives
- OneTimeSecret vs Privnote vs Password Pusher: https://uselinkpilot.com/cs/blog/onetimesecret-vs-privnote-vs-password-pusher
- Odkazy s omezenou platností: tajná zpráva se zničí, ne jen přesměruje: https://uselinkpilot.com/cs/blog/expiring-links-security
- Bezplatný generátor tajných odkazů: https://uselinkpilot.com/cs/tools/free-secret-link-generator

## Zdroje

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

## Nástroje k tomuto článku

Generátor jednorázových tajných odkazů

Pošlete heslo nebo poznámku odkazem, který se otevře jen jednou.
https://uselinkpilot.com/cs/tools/free-secret-link-generator

Samozničující zpráva

Pošlete poznámku, která po jednom přečtení zmizí.
https://uselinkpilot.com/cs/tools/burn-after-read-secret

Generátor dočasných odkazů

Vytvořte odkaz, který v nastavený čas přestane fungovat.
https://uselinkpilot.com/cs/tools/temporary-link

## Časté dotazy

### Co se stane, když odkaz otevřou dva lidé současně?

### Zničí tajnou zprávu náhled odkazu?

### Proč zničené odkazy vracejí HTTP 410, a ne 404?

### Můžu zničenou tajnou zprávu obnovit?

### Může server jednorázovou tajnou zprávu přečíst?

### Je bezpečné poslat jednorázový odkaz e-mailem?

## LinkPilot pošle tajný odkaz, který po otevření zmizí.

Zašifruje se ve vašem prohlížeči, zobrazí se jednou a pak se zničí. Bez účtu.

Vytvořit tajný odkaz (https://uselinkpilot.com/cs/tools/free-secret-link-generator)

## Čtěte dál

Bezpečnost

### Odkazy s omezenou platností: tajná zpráva se opravdu zničí

Tajný odkaz s omezenou platností v termínu zprávu zničí, mrtvý krátký odkaz jen přestane přesměrovávat. Jak zvolit dobu platnosti a hraniční případy.
https://uselinkpilot.com/cs/blog/expiring-links-security

Bezpečnost

### Šifrování na straně klienta při sdílení: co chrání a co ne

Šifrování na straně klienta chrání uloženou tajnou zprávu před provozovatelem a únikem databáze, nic víc. Obejde ho škodlivý kód, rozšíření i uniklý odkaz.
https://uselinkpilot.com/cs/blog/client-side-encryption-for-secret-sharing

Bezpečnost

### Jednorázové sdílení přihlašovacích údajů při onboardingu

Pro agentury a poskytovatele spravovaných služeb: pošlete první přihlášení jednorázovým odkazem, stejně sdílejte důvěrné pokyny a předání zaznamenejte.
https://uselinkpilot.com/cs/blog/one-time-credential-sharing-for-client-onboarding

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "name": "Domů",
        "item": "https://uselinkpilot.com/cs"
      },
      {
        "@type": "ListItem",
        "position": 2,
        "name": "Blog",
        "item": "https://uselinkpilot.com/cs/blog"
      },
      {
        "@type": "ListItem",
        "position": 3,
        "name": "Jak fungují jednorázové tajné odkazy",
        "item": "https://uselinkpilot.com/cs/blog/how-one-time-secret-links-work"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "BlogPosting",
    "@id": "https://uselinkpilot.com/cs/blog/how-one-time-secret-links-work#article",
    "headline": "Jak fungují jednorázové tajné odkazy",
    "description": "Jednorázový tajný odkaz zobrazí obsah jednou: prohlížeč ho zašifruje, server uloží jen šifrový text a první zobrazení uloženou kopii zničí.",
    "inLanguage": "cs",
    "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/cs/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/cs/blog/how-one-time-secret-links-work"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Co se stane, když odkaz otevřou dva lidé současně?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Správně implementovaný jednorázový odkaz provede čtení i označení jako spotřebované v jediné nedělitelné databázové operaci, takže uspěje právě jeden návštěvník. Druhý uvidí stav „zničeno“. Pokud jsou to dva oddělené kroky, mohou tajnou zprávu přečíst oba. Je to klasická chyba TOCTOU."
        }
      },
      {
        "@type": "Question",
        "name": "Zničí tajnou zprávu náhled odkazu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Neměl by. Server má zprávu zničit jen při výslovné akci zobrazení (POST), ne při načtení metadat (GET), které chatovací a e-mailové aplikace používají k vykreslení náhledu. Koncový bod GET v LinkPilotu vrací jen stav a informaci, zda je vyžadována heslová fráze."
        }
      },
      {
        "@type": "Question",
        "name": "Proč zničené odkazy vracejí HTTP 410, a ne 404?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "410 Gone znamená, že zdroj existoval a je záměrně a natrvalo nedostupný, což přesně odpovídá zničené tajné zprávě. Klientům a mezipaměti říká, ať nečekají, že se obsah vrátí. A je to poctivé: odkaz byl skutečný a už je spotřebovaný."
        }
      },
      {
        "@type": "Question",
        "name": "Můžu zničenou tajnou zprávu obnovit?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Ne, o to právě jde. V LinkPilotu se uložený šifrový text přepíše ve chvíli, kdy se tajná zpráva zničí, vyprší její platnost nebo je zneplatněna, takže není co obnovit. Pokud potřebujete možnost obnovení, použijte správce hesel a sdílejte položku z trezoru."
        }
      },
      {
        "@type": "Question",
        "name": "Může server jednorázovou tajnou zprávu přečíst?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "V LinkPilotu ne. Tajná zpráva se před odesláním zašifruje ve vašem prohlížeči pomocí AES-GCM-256. Server ukládá jen šifrový text a dešifrovací klíč putuje v části odkazu za znakem # (za #k=), kterou prohlížeče serveru nikdy neposílají. Zobrazení vrátí šifrový text a dešifruje ho váš prohlížeč. Kdo má celý odkaz, má i klíč, a proto na vypršení platnosti a zničení po přečtení pořád záleží."
        }
      },
      {
        "@type": "Question",
        "name": "Je bezpečné poslat jednorázový odkaz e-mailem?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Celkem ano, pokud odkaz vyprší a je chráněný heslovou frází poslanou jiným kanálem. E-maily se skenují, přeposílají a archivují, takže počítejte s tím, že URL může někdo vidět. Že se z viděné URL nestane uniklá tajná zpráva, zajistí heslová fráze a krátká platnost."
        }
      }
    ],
    "inLanguage": "cs"
  },
  {
    "@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"
    }
  }
]
```