---
title: "API-avainten jakaminen turvallisesti | LinkPilot-blogi"
url: https://uselinkpilot.com/fi/blog/how-to-share-api-keys-securely
description: "Älä liitä API-avainta chattiin tai sähköpostiin. Lähetä selaimessasi salattu kertakäyttölinkki, joka tuhoutuu avattaessa, ja vaihda jo liitetyt avaimet."
lang: fi
---

Tietoturva (https://uselinkpilot.com/fi/blog/category/security)

# API-avainten jakaminen turvallisesti

Älä liitä API-avainta chattiin tai sähköpostiin. Lähetä selaimessasi salattu kertakäyttölinkki, joka tuhoutuu avattaessa, ja vaihda jo liitetyt avaimet.

W. Miller (https://uselinkpilot.com/fi/author/w-miller)26. toukokuuta 2026 · Päivitetty 22. lokakuuta 2026 · Tietoa LinkPilotista (https://uselinkpilot.com/fi/about)

Älä liitä API-avainta chattiin tai sähköpostiin. Lähetä se kertakäyttöisenä salaisena linkkinä (https://uselinkpilot.com/fi/tools/free-secret-link-generator): avain salataan selaimessasi, purkuavain pysyy linkin #-merkin jälkeisessä osassa, ja tallennettu kopio tuhotaan ensimmäisen avauksen jälkeen. Vaihda sen jälkeen jokainen avain, joka on jo liitetty johonkin selväkielisenä.

Loppuosa oppaasta käy läpi yksityiskohdat: miksi ilmeiset kanavat pettävät, miten luovutus tehdään vaihe vaiheelta, mitä tehdä, kun avain silti vuotaa, ja milloin kertakäyttölinkki on väärä työkalu.

## Miksi API-avaimen lähettäminen Slackissa tai sähköpostilla ei ole turvallista?

Koska molemmat säilyttävät viestin niin kauan kuin jokin sitä säilyttää, ja kopioivat sen matkan varrella jokaiselle laitteelle ja jokaiseen vientiin.

- **Molemmista voi hakea ikuisesti.** Vuonna 2023 jaettu avain on seuraavan tietoturvapoikkeamasi lähde. Hyökkääjät, jotka pääsevät yrityksen chattiin tai postilaatikkoon, hakevat sieltä rutiininomaisesti juuri niitä merkkijonoja, joilta API-avaimet näyttävät: `sk_live`, `AKIA`, `ghp_`, `Bearer`.
- **Molemmat synkronoituvat kaikkialle.** Puhelimiin, henkilökohtaisiin kannettaviin ja tabletteihin eli laitteisiin, joita tietoturvakäytäntösi eivät kata ja joita etätyhjennyskäytäntösi ei tavoita.
- **Molemmista tehdään vientejä.** Vaatimustenmukaisuuden tarkastukset, oikeudenkäyntien aineistopyynnöt ja työtilan viennit tuottavat kaikki kopioita historiasta. Jokainen vienti on yksi paikka lisää, jossa avain on tallessa.
- **Molemmat säilyvät, vaikka työsuhde päättyy.** Alihankkijan toimeksianto loppuu, mutta yksityisviestiketju, jossa on Stripe-avaimesi, ei katoa.

Kun salaisuuden laittaa kumpaan tahansa työkaluun, hyväksyy samalla, että salaisuus on tallessa kaikkialla, minne viesti päätyy, niin kauan kuin jokin sitä säilyttää. Kumpaakaan järjestelmää ei ole suunniteltu unohtamaan.

## Ennen jakamista: pienennä avaimen oikeuksia

Paras luovutus on sellainen, jossa luovutettavalla avaimella ei juuri ole merkitystä. Sovella vähimpien oikeuksien periaatetta jo lähteessä, ennen kuin luot mitään:

- **Rajaa oikeudet.** Stripen rajoitetut avaimet (https://docs.stripe.com/keys), GitHubin tarkkarajaiset henkilökohtaiset käyttötunnisteet (https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) ja tiettyihin toimintoihin ja resursseihin rajatut AWS IAM -käytännöt: useimmissa vakavasti otettavissa palveluissa voi luoda avaimen, joka pystyy tekemään vain sen yhden asian, jota vastaanottaja tarvitsee.
- **Suosi vain luku -oikeutta**, ellei kirjoitusoikeutta todella tarvita.
- **Aseta palveluntarjoajan puolelle voimassaoloaika**, jos alusta sen sallii (GitHubin tarkkarajaiset PAT-tunnisteet, AWS:n tilapäiset kirjautumistiedot STS:n kautta (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)). Silloin vuotaneellakin avaimella on käyttöikä, joka ei riipu mistään, mitä teet myöhemmin.
- **Nimeä avain vastaanottajan mukaan** (`vendor-x-readonly`), jotta sen mitätöinti puolen vuoden päästä on yhden vilkaisun päätös eikä arkeologinen kaivaus.

Kun avain on rajattu, vanhenee ja sallii vain lukemisen, pahinkin vuoto on harmi eikä tietoturvapoikkeama.

## Luovutuksen kaava

1. **Luo avain lähdejärjestelmässä** (AWS, Stripe, oma API) pienimmillä mahdollisilla oikeuksilla, kuten yllä.
2. **Liitä se kertakäyttöiseen salaiseen linkkiin**, kytke päälle asetus ”Tuhoa lukemisen jälkeen” ja valitse lyhin sopiva voimassaoloaika: lyhin valmis vaihtoehto on 1 tunti, sen jälkeen tulevat 24 tuntia ja 7 päivää, ja Pro-paketissa voi valita oman päivän ja kellonajan. Juuri sen verran kuin luovutus vaatii, ei enempää.
3. **Lisää salalause ja toimita se eri kanavaa pitkin**: linkki sähköpostilla, salalause tekstiviestillä tai Slackin yksityisviestillä. LinkPilotissa salalause, oma voimassaoloaika ja tarkastusloki kuuluvat Pro-pakettiin, joka maksaa 29 $ kuukaudessa. Jos toinen kanava vuotaa, hyökkääjällä on silti vain puolet palapelistä. (LinkPilot laskee salalauseesta SHA-256-tiivisteen selaimessa ennen lähetystä. Salalause itse ei koskaan päädy palvelimen tietokantaan tai lokeihin, ja yrityksiä sallitaan enintään 5 minuutissa yhdestä IP-osoitteesta.)
4. **Lähetä linkki.**
5. **Varmista toista kanavaa pitkin, että vastaanottaja sai avaimen**, ja tarkista tarkastusloki eli loki linkin tapahtumista: yksi avaus, odotettuun aikaan, odotetusta paikasta. Se on kuittisi.

Jos linkkiä ei avata ennen kuin se vanhenee, mitätöi se ja lähetä uusi. Älä pidennä voimassaoloaikaa äläkä käytä linkkiä uudelleen.

## Esimerkki: Stripen rajoitetun avaimen välittäminen

```bash
# generate a restricted key with the minimum needed scopes
stripe api_keys create \
  --restricted \
  --display-name "vendor-x-readonly"

# pipe the resulting key into a LinkPilot secret
curl -X POST https://api.uselinkpilot.com/v1/secrets \
  -H "Authorization: Bearer $LP_KEY" \
  -d 'payload=sk_restricted_…' \
  -d 'expires_in=3600' \
  -d 'burn_after_read=true'
```

Mitä vastaanottaja näkee: linkki avaa sivun, jolla on Näytä-painike, ei avainta. Linkkien esikatselutoiminnot ja sähköpostin tarkistimet, jotka hakevat URL-osoitteen etukäteen, saavat vain metatiedot, koska avaus kirjataan ainoastaan erillisestä näyttämistoiminnosta eikä koskaan `GET`-pyynnöstä. Kun vastaanottaja napsauttaa painiketta ”Näytä” (ja kirjoittaa salalauseen, jos sellainen on asetettu), hän näkee avaimen täsmälleen kerran. Sen jälkeen tallennettu sisältö ylikirjoitetaan, ja linkki palauttaa HTTP-tilakoodin 410. Vaikka sähköposti kiertäisi koko yrityksessä, vain ensimmäinen avaaja on voinut lukea avaimen, ja tarkastuslokista näet, kuka se oli.

## Mikä kanava mihinkin luovutukseen

| Tilanne | Suositeltu tapa | Huomioita |
| --- | --- | --- |
| Työkaveri samassa huoneessa tai puhelussa | Kertakäyttölinkki, voimassaoloaika 1 tunti (lyhin valmis vaihtoehto) | Salalause on vapaaehtoinen, koska voit varmistaa vastaanoton saman tien |
| Etänä työskentelevä työkaveri | Kertakäyttölinkki + salalause toista kanavaa pitkin | Voimassaoloaika 1 tunti |
| Alihankkija tai toimisto | Rajattu avain + kertakäyttölinkki + salalause | Nimeä avain alihankkijan mukaan ja merkitse mitätöinti kalenteriin toimeksiannon päättymispäivälle |
| Asiakas, joka saa oman avaimensa | Kertakäyttölinkki sovelluksestasi tai asiakastuen kautta | Voimassaoloaika 24 tuntia; neuvo asiakasta tallentamaan avain heti |
| CI/CD-putki tai palvelu | Alustan oma salaisuuksien säilö (Actions secrets, Vault, ASM) | Ei koskaan linkkiä, koska koneet eivät tee luovutuksia |
| Koko tiimi, jatkuva käyttö | Salasanojen hallintaohjelman holvi | Tämä on säilytystä ja käyttöoikeuksien hallintaa, ei luovutus |

## Mitä tehdä, jos API-avain vuotaa?

Pidä avainta vuotaneena ja vaihda se palveluntarjoajalla. Viestin poistaminen ei auta mitään. Jokainen avain, joka on ollut chattiviestissä, sähköpostin tekstissä, kuvakaappauksessa, git-commitissa tai julkisessa tekstinjakopalvelussa, lasketaan vuotaneeksi. Toimi tässä järjestyksessä:

1. **Luo korvaava avain ensin**, jos palveluntarjoaja sallii kaksi aktiivista avainta. Näin oikeat käyttäjät eivät kärsi katkoksesta.
2. **Mitätöi vuotanut avain palveluntarjoajalla.** Vain tämä vaihe oikeasti lopettaa altistuksen. Slack-viestin poistaminen ei sitä tee.
3. **Luovuta uusi avain oikein**: kertakäyttölinkki, salalause ja lyhyt voimassaoloaika, kuten yllä kuvattiin.
4. **Tarkista palveluntarjoajan käyttölokit** vuotaneen avaimen osalta vuodon ja mitätöinnin väliltä. Odottamattomat kutsut tarkoittavat, että kyse on nyt tietoturvapoikkeamasta eikä pelkästä siivouksesta.
5. **Korjaa se, mikä sai avaimen liitetyksi**: siirrä salaisuus ympäristömuuttujatyökaluihin, jotka on lisätty tiedostoon `.gitignore`, ota käyttöön salaisuuksien skannaus koodivarastosi palvelussa tai päivitä ohje, joka käski lähettämään avaimen yksityisviestillä.

Koko kierroksen pitäisi viedä minuutteja. Jos avaimen vaihtaminen on niin pelottavaa, että sitä vältellään, todellinen haavoittuvuus on juuri tuo hauraus. Korjaa se ensin.

## Mitä välttää

- **Saman salaisuuden lähettäminen uudelleen.** Vaihda avain sen sijaan. Uudelleenlähetyksen jälkeen tarkastusloki ei enää todista ”täsmälleen yhtä altistusta”, ja juuri sen takia kertakäyttölinkkiä kannatti käyttää.
- **Pitkät voimassaoloajat.** Valitse oletuksena lyhyt. Useimmat luovutukset valmistuvat minuuteissa, ja 8 tunnin aikaikkuna on vain pidempi vuoto.
- **Salalauseen jättäminen pois.** Se ei maksa juuri mitään ja suojaa vahingossa vuotaneilta URL-osoitteilta: edelleen lähetetyiltä sähköposteilta, näytönjaoilta ja olan yli kurkkimiselta jaetulla näytöllä.
- **Kuvakaappaukset avaimista.** Ne päätyvät kamerarullaan, kuvien pilvisynkronointiin ja kuvahakuun. Kuvakaappaus on yhtä pysyvä kuin chattiin liitetty teksti, mutta _sinun_ on vaikeampi löytää se, kun taas tekstintunnistus löytää sen hyvin.
- **Linkkityökalun käyttäminen säilytykseen.** Linkki on kuriiri, ei holvi. Vastaanottajan pitää tallentaa avain salasanojen hallintaohjelmaan tai ympäristömuuttujatyökaluihin heti, kun hän saa sen.

## Milloin kertakäyttölinkki on väärä työkalu

Rehellisesti sanottuna tälläkin kaavalla on rajansa:

- **Koneiden väliset kirjautumistiedot** kuuluvat salaisuuksien hallintaohjelmaan tai alustan omaan säilöön, josta ne syötetään käyttöönoton tai ajon aikana. Linkkiä napsauttava ihminen ei ole käyttöönoton vaihe.
- **Pitkäikäiset jaetut kirjautumistiedot** kuuluvat salasanojen hallintaohjelmaan, jossa käyttöoikeuksia hallitaan kunnolla ja ne voi mitätöidä henkilö kerrallaan.
- **Tiheä kierrätys** (avaimet, jotka vaihtuvat tunneittain) kannattaa automatisoida alusta loppuun. Ihmisten ja linkkien ei pitäisi olla siinä mukana lainkaan.
- **Salaisuudet, joihin ei saa koskea mikään kolmas osapuoli**: siirrä luovutus verkon ulkopuolelle. _Päivitys 29. syyskuuta 2026: tässä kohdassa luki alun perin, ettei LinkPilot väitä tarjoavansa päästä päähän -salausta, ja kehotettiin käyttämään päästä päähän salattua työkalua. Nykyään LinkPilot salaa tekstisisällön ja liitetiedostot selaimessa, joten se tallentaa vain salatekstiä. Sivu Tietoturva-arkkitehtuuri (https://uselinkpilot.com/fi/security-architecture) kertoo tarkalleen, mikä on suojattu ja mikä ei._

Tavallisessa tapauksessa, kun yksi ihminen luovuttaa yhdet kirjautumistiedot toiselle ihmiselle kerran, kertakäyttölinkki salalauseella ja lyhyellä voimassaoloajalla on vahvin saatavilla oleva yksinkertainen kaava.

## Lue myös

- Miksi URL-osoitteet vuotavat arkaluonteisia tietoja: https://uselinkpilot.com/fi/blog/why-urls-leak-sensitive-information
- Turvallinen salasanojen jakaminen: 5 tapaa vertailussa: https://uselinkpilot.com/fi/secure-password-sharing
- LinkPilotin tietoturva-arkkitehtuuri: https://uselinkpilot.com/fi/security-architecture
- Lyhytlinkkipalvelujen API-vertailu: https://uselinkpilot.com/fi/blog/url-shortener-api-comparison
- Ilmainen salaisen linkin generaattori: https://uselinkpilot.com/fi/tools/free-secret-link-generator

## Lähteet

- Stripe Docs, API keys: limit access with restricted keys (https://docs.stripe.com/keys).
- GitHub Docs, Managing your personal access tokens (https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).
- AWS IAM User Guide, Temporary security credentials in IAM (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html).

## Työkalut tähän artikkeliin

Kertakäyttöisen salaisen linkin luontityökalu

Jaa salasana tai muistiinpano linkillä, joka avautuu vain kerran.
https://uselinkpilot.com/fi/tools/free-secret-link-generator

Itsetuhoutuva viesti

Lähetä muistiinpano, joka katoaa, kun se on luettu kerran.
https://uselinkpilot.com/fi/tools/burn-after-read-secret

Vanhenevan linkin luontityökalu

Luo linkkejä, jotka lakkaavat toimimasta asettamanasi aikana.
https://uselinkpilot.com/fi/tools/temporary-link

## Usein kysytyt kysymykset

### Onko API-avaimen lähettäminen Slackissa todella niin huono asia?

### Pitäisikö minun vain käyttää salasanojen hallintaohjelmaa?

### Entä jos vastaanottaja tarvitsee avaimen myöhemmin uudelleen?

### Miten API-avain viedään CI/CD-putkeen?

### Voiko LinkPilot lukea jakamani API-avaimen?

## LinkPilot lähettää salaisen linkin, joka katoaa, kun se on avattu.

Salataan selaimessasi, näytetään kerran ja tuhotaan sitten. Tiliä ei tarvita.

Luo salainen linkki (https://uselinkpilot.com/fi/tools/free-secret-link-generator)

## Lue seuraavaksi

Tietoturva

### Näin kertakäyttöiset salaiset linkit toimivat

Kertakäyttölinkki näyttää sisältönsä kerran. Selain salaa sen, palvelin tallentaa vain salatekstin ja ensimmäinen avaus tuhoaa tallennetun kopion.
https://uselinkpilot.com/fi/blog/how-one-time-secret-links-work

Tietoturva

### Vanhenevat linkit: salaisuus tuhotaan, ohjaus ei vain katkea

Vanheneva salainen linkki tuhoaa salaisuuden määräajan päättyessä, kuollut lyhytlinkki vain lakkaa ohjaamasta. Ajan valinta ja erikoistapaukset.
https://uselinkpilot.com/fi/blog/expiring-links-security

Tietoturva

### Selainpuolen salaus salaisuuksien jakamisessa: mitä se suojaa

Selainpuolen salaus suojaa salaisuuden ylläpitäjältä ja tietokantavuodolta, muulta ei: haitallinen JavaScript, laajennus tai vuotanut linkki kumoaa sen.
https://uselinkpilot.com/fi/blog/client-side-encryption-for-secret-sharing

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "name": "Etusivu",
        "item": "https://uselinkpilot.com/fi"
      },
      {
        "@type": "ListItem",
        "position": 2,
        "name": "Blogi",
        "item": "https://uselinkpilot.com/fi/blog"
      },
      {
        "@type": "ListItem",
        "position": 3,
        "name": "API-avainten jakaminen turvallisesti",
        "item": "https://uselinkpilot.com/fi/blog/how-to-share-api-keys-securely"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "BlogPosting",
    "@id": "https://uselinkpilot.com/fi/blog/how-to-share-api-keys-securely#article",
    "headline": "API-avainten jakaminen turvallisesti",
    "description": "Älä liitä API-avainta chattiin tai sähköpostiin. Lähetä selaimessasi salattu kertakäyttölinkki, joka tuhoutuu avattaessa, ja vaihda jo liitetyt avaimet.",
    "inLanguage": "fi",
    "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/fi/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/fi/blog/how-to-share-api-keys-securely"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Onko API-avaimen lähettäminen Slackissa todella niin huono asia?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Ongelma ei ole lähettäminen vaan pysyvyys. Chattihistoriasta voi hakea, se synkronoituu puhelimiin, siitä tehdään vientejä vaatimustenmukaisuuden tarkastuksissa, ja se säilyy, vaikka työsuhde päättyy. Kertakäyttölinkki poistaa salaisuuden kanavasta yhden lukukerran jälkeen."
        }
      },
      {
        "@type": "Question",
        "name": "Pitäisikö minun vain käyttää salasanojen hallintaohjelmaa?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Kyllä, pitkäikäisille kirjautumistiedoille. Käytä hallintaohjelmaa virallisena säilytyspaikkana ja kertakäyttölinkkiä vain luovutukseen. Monet tiimit käyttävät molempia: linkki siirtää avaimen, holvi säilyttää sen."
        }
      },
      {
        "@type": "Question",
        "name": "Entä jos vastaanottaja tarvitsee avaimen myöhemmin uudelleen?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Älä lähetä alkuperäistä avainta uudelleen. Luo uusi avain tai pyydä vastaanottajaa tallentamaan avain hallintaohjelmaan heti, kun hän saa sen. Uudelleenjakaminen vie pohjan avainten vaihtamiselta ja sotkee tarkastuslokin."
        }
      },
      {
        "@type": "Question",
        "name": "Miten API-avain viedään CI/CD-putkeen?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Ei linkillä. Koneiden pitää lukea avain alustan omasta salaisuuksien säilöstä: GitHub Actions secrets, GitLab CI variables, AWS Secrets Manager tai Vault. Kertakäyttölinkit ovat vain ihmisten välisiä luovutuksia varten."
        }
      },
      {
        "@type": "Question",
        "name": "Voiko LinkPilot lukea jakamani API-avaimen?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Ei. 29. syyskuuta 2026 alkaen sisältö salataan selaimessasi, ja avain kulkee linkin #-merkin jälkeisessä osassa, jota selaimet eivät koskaan lähetä. Ylläpitäjä, jolla on täysi pääsy tietokantaan, näkee siis vain salatekstiä. Tuhoutuneet sisällöt ylikirjoitetaan, eikä niitä voi palauttaa. Vastapainona kuka tahansa, jolla on koko linkki, saa myös avaimen, joten lyhyt voimassaoloaika ja tuhoutuminen lukemisen jälkeen ovat edelleen tärkeitä. Liitetiedostot salataan samalla tavalla. Tietoturva-arkkitehtuuri-sivu kuvaa koko mallin, myös metatiedot, jotka näemme edelleen: tiedoston nimen, koon ja tyypin."
        }
      }
    ],
    "inLanguage": "fi"
  },
  {
    "@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"
    }
  }
]
```