---
title: "Com funcionen els enllaços secrets d'un sol ús | Blog de LinkPilot"
url: https://uselinkpilot.com/ca/blog/how-one-time-secret-links-work
description: "Un enllaç secret d'un sol ús es mostra una vegada: el navegador el xifra, el servidor només en desa el text xifrat i la primera lectura destrueix la còpia."
lang: ca
---

Seguretat (https://uselinkpilot.com/ca/blog/category/security)

# Com funcionen els enllaços secrets d'un sol ús

Un enllaç secret d'un sol ús es mostra una vegada: el navegador el xifra, el servidor només en desa el text xifrat i la primera lectura destrueix la còpia.

W. Miller (https://uselinkpilot.com/ca/author/w-miller)26 de maig del 2026 · Actualitzat el 22 d’octubre del 2026 · Sobre LinkPilot (https://uselinkpilot.com/ca/about)

Un enllaç secret d'un sol ús és un URL que mostra el contingut exactament una vegada i després queda inactiu per sempre. El navegador de qui l'envia xifra el secret amb AES-GCM-256 i el servidor només desa el text xifrat. La clau viatja a la part de l'enllaç que va després de `#k=`, que els navegadors no envien mai. Quan el destinatari el mostra per primera vegada, el text es desxifra i la còpia desada es destrueix en la mateixa operació.

Podeu crear-ne un sense compte amb el generador gratuït d'enllaços secrets (https://uselinkpilot.com/ca/tools/free-secret-link-generator).

El mecanisme és senzill, però els casos límit són la part interessant, i és allà on les implementacions descuidades tenen fuites sense que ningú se n'adoni.

## El flux bàsic

1. Qui envia enganxa un secret. El navegador genera una clau aleatòria, xifra el contingut amb AES-GCM-256 mitjançant la Web Crypto API (https://www.w3.org/TR/WebCryptoAPI/) i només envia el text xifrat. El servidor el desa amb un àlies aleatori i difícil d'endevinar i retorna un URL; el navegador hi afegeix la clau com a fragment `#k=`, que no surt mai del dispositiu de qui envia.
2. Qui envia comparteix l'URL per qualsevol canal: correu, xat, SMS.
3. El destinatari obre l'URL. Un `GET` normal només retorna l'estat. Quan fa clic a Mostra, el servidor marca el secret com a consumit i retorna el text xifrat en una sola operació que no es pot dividir; el navegador del destinatari el desxifra amb la clau del fragment.
4. Qualsevol visita posterior rep una pàgina amb l'estat «destruït» en lloc del contingut.

El pas clau és el 3. Si la lectura i l'actualització de l'estat es fan com dues consultes separades (un `SELECT` per comprovar i després un `UPDATE` per marcar), dos visitants simultanis poden passar tots dos la comprovació abans que cap dels dos escrigui. Tots dos reben el contingut. És un error TOCTOU clàssic (time-of-check to time-of-use, és a dir, entre el moment de la comprovació i el de l'ús), i converteix la garantia d'«exactament una vegada» en «normalment una vegada».

## Per què la destrucció i la lectura han de ser un sol pas?

Perquè, si no, dos visitants simultanis poden passar tots dos la comprovació abans que cap dels dos marqui el secret com a consumit. La solució és fondre la comprovació, la marca i la lectura en una sola operació de base de dades. A Postgres, amb `UPDATE ... RETURNING` (https://www.postgresql.org/docs/current/sql-update.html), queda així:

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

El bloqueig de fila que fa l'`UPDATE` obliga les crides simultànies a anar una darrere l'altra. La primera compleix la clàusula `WHERE`, canvia `burned_at` i rep el contingut a través de `RETURNING`. Totes les crides posteriors troben `burned_at` ja definit, no coincideixen amb cap fila i reben l'estat de destruït. No hi ha cap interval entre «comprovar» i «consumir», perquè són la mateixa instrucció.

LinkPilot registra cada visualització en un sol pas indivisible, amb una funció de base de dades, precisament per això: diversos intents simultanis de mostrar el secret no el poden filtrar dues vegades. Si esteu avaluant una eina, és una pregunta legítima per fer directament al proveïdor: _la destrucció i la lectura es fan en un sol pas indivisible?_

## Per què els enllaços destruïts retornen HTTP 410 i no 404?

Perquè 410 Gone (https://www.rfc-editor.org/rfc/rfc9110#section-15.5.11) indica que el recurs va existir i ja no està disponible de manera permanent, que és exactament el cas d'un secret destruït. Un cop consumit, l'enllaç ha de fallar de manera clara i definitiva. LinkPilot fa dues coses quan destrueix un secret:

- El contingut desat se **sobreescriu** amb `[REDACTED]` en la mateixa escriptura que canvia l'estat. Així, ni tan sols un accés il·lícit posterior a la base de dades no pot recuperar un secret ja consumit.
- Els intents posteriors de mostrar-lo retornen **HTTP 410 Gone** amb una pàgina clara que diu que el secret «ja s'ha vist i s'ha destruït».

410 és el codi d'estat correcte: vol dir que el recurs va existir i que ha deixat d'estar disponible de manera intencionada i permanent, a diferència del 404, que vol dir «no en sé res». La diferència també importa a les persones: un destinatari que veu «aquest secret ja s'ha vist» sap que ho ha de dir a qui l'ha enviat, que pot revisar la cronologia d'auditoria i rotar la credencial si qui l'ha vist no era el destinatari.

## Àlies difícils d'endevinar, i per què no n'hi ha prou

L'àlies és l'única cosa que separa l'internet públic d'un text xifrat sense llegir (la clau és a la part de l'enllaç que va després del #, no al servidor), de manera que ha de tenir entropia real. Un àlies generat amb una font aleatòria criptogràficament segura amb, per exemple, 22 caràcters en base62 té aproximadament 128 bits. Provar-los tots no és un atac realista a cap ritme de peticions que un servidor pugui suportar.

Però l'entropia de l'àlies només protegeix contra qui l'_endevina_. No fa res si algú _veu_ l'URL: l'historial del navegador, els registres d'un servidor intermediari, els correus reenviats, la pantalla compartida, els gestors del porta-retalls. Per això les implementacions serioses hi afegeixen capes:

- **Caducitat**, perquè un URL que algú ha vist deixi de funcionar quan toca.
- **Una frase de contrasenya**, perquè l'URL tot sol no sigui suficient.
- **Destrucció després de la lectura**, perquè l'URL no serveixi de res després de la lectura legítima.

## Previsualitzacions d'enllaços i bots

Les aplicacions de xat (Slack, Teams, iMessage) i els analitzadors de seguretat del correu generen previsualitzacions dels URL: els obren amb una petició `GET` en el moment que arriba el missatge. Si el vostre punt d'accés per mostrar el secret el destrueix amb un `GET`, el previsualitzador destrueix el secret abans que cap persona el vegi. És la fallada real més habitual de les eines ingènues de destrucció després de la lectura.

Les defenses, tal com les implementa LinkPilot:

- **Accions separades per a les metadades i per mostrar el secret.** Un `GET` al punt d'accés només retorna l'estat i si cal una frase de contrasenya. Una visualització només es registra amb un `POST` explícit, que és l'acció que fa una persona quan fa clic al botó Mostra.
- **Frase de contrasenya obligatòria (Pro).** Quan hi ha una frase de contrasenya, no es retorna el contingut a ningú, ni a un bot ni a una persona, sense el hash correcte.
- **`Cache-Control: no-store`** a totes les respostes que mostren el secret, perquè els intermediaris no desin mai el contingut a la memòria cau.

La pàgina d'arquitectura de seguretat de LinkPilot (https://uselinkpilot.com/ca/security-architecture) documenta aquest tractament de principi a fi.

## El cicle de vida, estat per estat

| Estat | Què el provoca | Què veu qui l'obre | Es pot recuperar el contingut? |
| --- | --- | --- | --- |
| Actiu | La creació | Pàgina per mostrar-lo (amb la petició de frase de contrasenya, si n'hi ha) | Sí, es pot mostrar una vegada |
| Destruït | S'arriba al límit de visualitzacions | «Ja s'ha vist i s'ha destruït», HTTP 410 | No, el contingut s'ha sobreescrit |
| Caducat | Passa la data de caducitat | Pàgina amb l'estat de caducat | No, se sobreescriu en el següent accés |
| Revocat | Qui l'ha enviat l'anul·la des del tauler | No es mostra, HTTP 410 | No, de manera immediata i permanent |

Cada canvi d'estat queda a la cronologia d'auditoria, una funció del pla Pro de LinkPilot. Els tipus d'esdeveniment són `created`, `viewed`, `failed_passphrase`, `burned`, `expired` i `revoked`, cadascun amb l'hora i una IP en hash (SHA-256 amb una sal que canvia cada dia; la IP original no es desa mai). Aquest rastre és el que converteix «crec que li ha arribat» en «vist a les 10:05 des del país esperat, una visualització i després destruït».

## Extensions habituals

- **Frase de contrasenya obligatòria**: cal una frase de contrasenya enviada per un altre canal abans de mostrar el secret, de manera que un URL filtrat tot sol no és un secret filtrat. A LinkPilot és una funció del pla Pro (29 $ al mes), igual que la caducitat personalitzada i la cronologia d'auditoria; el generador sense compte no en permet posar cap. Limiteu els intents: LinkPilot en permet 5 per IP i per minut per a cada secret i registra totes les fallades.
- **Caducitat per temps**: el secret desapareix al cap d'un temps determinat encara que no s'hagi llegit mai. El formulari de LinkPilot amb la sessió iniciada ofereix 1 hora, 24 hores o 7 dies a tots els plans, i una data i hora personalitzades al pla Pro; el generador sense compte posa 7 dies per defecte. Cobreix el cas de l'enllaç oblidat a la safata d'entrada, que la destrucció després de la lectura no resol.
- **Revocació manual**: qui l'ha enviat pot anul·lar un secret sense llegir des del tauler tan bon punt alguna cosa no quadra. Una assegurança barata per quan «l'he enviat a l'Àlex equivocat».

## Casos límit que distingeixen les bones implementacions

### L'obre primer qui no toca

La destrucció després de la lectura no impedeix que l'obri qui no toca: fa _visible_ l'error de lliurament. El destinatari previst arriba a una pàgina de secret destruït, la cronologia d'auditoria mostra una visualització que no esperàveu i roteu la credencial. És molest, però limitat: una sola exposició, detectada de pressa. Compareu-ho amb un secret enganxat en un xat, on no ho sabríeu mai.

### El problema de les captures de pantalla

D'un sol ús vol dir que es _mostra_ una vegada, no que se'n faci una sola _còpia_. El destinatari pot fer una captura de pantalla, copiar el secret o tornar-lo a escriure, i l'enllaç no ho impedeix de cap manera. Els proveïdors que donen a entendre el contrari venen ficció. La manera honesta de dir-ho: la destrucció després de la lectura controla el canal de lliurament, no el destinatari. La confiança en el destinatari és un punt de partida, no un resultat.

### Precàrrega del navegador i càrrega especulativa

Alguns navegadors i aplicacions carreguen per avançat els URL que és probable que s'obrin. Com que una eina ben feta només destrueix el secret amb un `POST` explícit, la precàrrega es comporta exactament com un previsualitzador: pot obtenir l'estructura de la pàgina, però mai el contingut.

## Quan no s'ha de fer servir un enllaç d'un sol ús

- **El valor es tornarà a necessitar.** Poder recuperar-lo és tot l'objectiu d'un gestor de contrasenyes i just el contrari del que vol un enllaç d'un sol ús. Feu servir un element de la caixa forta.
- **Ho necessiten diversos destinataris.** Un enllaç, una lectura. Si l'heu de repartir, o bé creeu un enllaç per persona (correcte i auditable) o bé reconeixeu que el que necessiteu és un control d'accés compartit.
- **Qui el consumeix és una màquina.** Els serveis i la CI han de llegir d'un gestor de secrets, no fer clic a enllaços.

Si voleu veure el mecanisme en acció, creeu-ne un amb el generador gratuït d'enllaços secrets (https://uselinkpilot.com/ca/tools/free-secret-link-generator): sense compte, xifrat al vostre navegador i destruït després de mostrar-lo per primera vegada.

## Lectures relacionades

- Compartir contrasenyes de manera segura: 5 mètodes comparats: https://uselinkpilot.com/ca/secure-password-sharing
- One time secret (https://uselinkpilot.com/ca/one-time-secret), enllaç d'un sol ús (https://uselinkpilot.com/ca/one-time-link) i enllaç secret (https://uselinkpilot.com/ca/secret-link): les pàgines breus amb l'eina a dalt de tot
- És segur OneTimeSecret?: https://uselinkpilot.com/ca/is-onetimesecret-secure
- Les millors alternatives a OneTimeSecret: https://uselinkpilot.com/ca/blog/best-onetimesecret-alternatives
- OneTimeSecret vs Privnote vs Password Pusher: https://uselinkpilot.com/ca/blog/onetimesecret-vs-privnote-vs-password-pusher
- Enllaços que caduquen: el secret es destrueix, no només es redirigeix: https://uselinkpilot.com/ca/blog/expiring-links-security
- Generador gratuït d'enllaços secrets: https://uselinkpilot.com/ca/tools/free-secret-link-generator

## Referències

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

## Eines per a aquest article

Generador d'enllaços secrets d'un sol ús

Compartiu una contrasenya o una nota amb un enllaç que només s'obre una vegada.
https://uselinkpilot.com/ca/tools/free-secret-link-generator

Missatge que s'autodestrueix

Envieu una nota que desapareix després de llegir-la una vegada.
https://uselinkpilot.com/ca/tools/burn-after-read-secret

Generador d'enllaços amb caducitat

Creeu enllaços que deixen de funcionar en un moment determinat.
https://uselinkpilot.com/ca/tools/temporary-link

## Preguntes freqüents

### Què passa si dues persones obren l'enllaç alhora?

### Una previsualització de l'enllaç destrueix el secret?

### Per què els enllaços destruïts retornen HTTP 410 en lloc de 404?

### Puc recuperar un secret destruït?

### El servidor pot llegir un secret d'un sol ús?

### És segur enviar un enllaç d'un sol ús per correu?

## LinkPilot envia un enllaç secret que desapareix després d'obrir-lo.

Es xifra al vostre navegador, es mostra una sola vegada i després es destrueix. Sense compte.

Crea un enllaç secret (https://uselinkpilot.com/ca/tools/free-secret-link-generator)

## Llegiu també

Seguretat

### Enllaços que caduquen: destrueixen secrets, no redirigeixen

Un enllaç secret amb caducitat destrueix el secret al termini; un enllaç curt mort només deixa de redirigir. Com triar el termini i els casos límit.
https://uselinkpilot.com/ca/blog/expiring-links-security

Seguretat

### Xifratge al costat del client per compartir secrets: què protegeix i què no

Xifrar al client protegeix el secret desat de l'operador i d'una filtració de dades, i prou: JavaScript maliciós, extensions o un enllaç filtrat l'anul·len.
https://uselinkpilot.com/ca/blog/client-side-encryption-for-secret-sharing

Seguretat

### Credencials d'un sol ús en la incorporació de clients

Per a agències i MSP: envieu el primer accés en un enllaç d'un sol ús, compartiu així les instruccions confidencials i registreu el lliurament.
https://uselinkpilot.com/ca/blog/one-time-credential-sharing-for-client-onboarding

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "name": "Inici",
        "item": "https://uselinkpilot.com/ca"
      },
      {
        "@type": "ListItem",
        "position": 2,
        "name": "Blog",
        "item": "https://uselinkpilot.com/ca/blog"
      },
      {
        "@type": "ListItem",
        "position": 3,
        "name": "Com funcionen els enllaços secrets d'un sol ús",
        "item": "https://uselinkpilot.com/ca/blog/how-one-time-secret-links-work"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "BlogPosting",
    "@id": "https://uselinkpilot.com/ca/blog/how-one-time-secret-links-work#article",
    "headline": "Com funcionen els enllaços secrets d'un sol ús",
    "description": "Un enllaç secret d'un sol ús es mostra una vegada: el navegador el xifra, el servidor només en desa el text xifrat i la primera lectura destrueix la còpia.",
    "inLanguage": "ca",
    "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/ca/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/ca/blog/how-one-time-secret-links-work"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Què passa si dues persones obren l'enllaç alhora?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Un enllaç d'un sol ús ben implementat fa la lectura i la marca de consumit en una sola operació de base de dades que no es pot dividir, de manera que només un visitant se l'endú. L'altre veu l'estat «destruït». Si es fan en dos passos, tots dos poden llegir el secret: és un error TOCTOU clàssic."
        }
      },
      {
        "@type": "Question",
        "name": "Una previsualització de l'enllaç destrueix el secret?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "No hauria de fer-ho. Els servidors només haurien de destruir el secret amb una acció explícita per mostrar-lo (POST), no amb la consulta de metadades (GET) que fan servir les aplicacions de xat i de correu per generar les previsualitzacions. El punt d'accés GET de LinkPilot només retorna l'estat i si cal una frase de contrasenya."
        }
      },
      {
        "@type": "Question",
        "name": "Per què els enllaços destruïts retornen HTTP 410 en lloc de 404?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "410 Gone vol dir que el recurs va existir i ha deixat d'estar disponible de manera intencionada i permanent, que és exactament el que passa amb un secret destruït. Indica als clients i a les memòries cau que el contingut no tornarà, i és honest: l'enllaç era real i ja s'ha fet servir."
        }
      },
      {
        "@type": "Question",
        "name": "Puc recuperar un secret destruït?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "No, i aquesta és la gràcia. A LinkPilot el text xifrat desat se sobreescriu en el moment que el secret es destrueix, caduca o es revoca, de manera que no queda res per restaurar. Si necessiteu poder-lo recuperar, feu servir un gestor de contrasenyes i compartiu un element de la caixa forta."
        }
      },
      {
        "@type": "Question",
        "name": "El servidor pot llegir un secret d'un sol ús?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "A LinkPilot, no. El secret es xifra al vostre navegador amb AES-GCM-256 abans d'enviar-lo; el servidor només desa el text xifrat, i la clau per desxifrar-lo viatja a la part de l'enllaç que va després de #k=, que els navegadors no envien mai a cap servidor. Quan es mostra el secret, el servidor retorna el text xifrat i el vostre navegador el desxifra. Qui té l'enllaç complet té la clau, i per això la caducitat i la destrucció després de la lectura continuen sent importants."
        }
      },
      {
        "@type": "Question",
        "name": "És segur enviar un enllaç d'un sol ús per correu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Raonablement, si l'enllaç caduca i té una frase de contrasenya enviada per un altre canal. El correu s'analitza, es reenvia i es conserva, així que doneu per fet que algú pot veure l'URL. La frase de contrasenya i una caducitat curta són el que impedeix que un URL vist es converteixi en un secret filtrat."
        }
      }
    ],
    "inLanguage": "ca"
  },
  {
    "@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"
    }
  }
]
```