---
title: "Kehittäjäintegraatio seurattaville brändätyille linkeille"
url: https://uselinkpilot.com/fi/blog/developer-integration-for-creating-trackable-branded-links
description: "Linkkien luonti omaan tuotteeseen tai työnkulkuun: API-avaimet, luontikutsu, idempotenssi, UTM-parametrit, uudelleenohjaukset, webhookit ja testaus."
lang: fi
---

Linkkien seuranta (https://uselinkpilot.com/fi/blog/category/link-tracking)

# Kehittäjäintegraatio seurattavien brändättyjen linkkien luomiseen: käytännön opas

Linkkien luonti omaan tuotteeseen tai työnkulkuun: API-avaimet, luontikutsu, idempotenssi, UTM-parametrit, uudelleenohjaukset, webhookit ja testaus.

LinkPilot Team (https://uselinkpilot.com/fi/author/linkpilot-team) · Ihmiset, jotka rakentavat ja ylläpitävät LinkPilotia TetraCore, LLC -yhtiössä 26. lokakuuta 2026 · Tietoa LinkPilotista (https://uselinkpilot.com/fi/about)

Jossain vaiheessa tiimi lakkaa tekemästä linkkejä käsin. Tuote tarvitsee jakolinkin jokaiselle käyttäjälle, julkaisujärjestelmän pitäisi luoda lyhyt URL-osoite, kun kirjoitus julkaistaan, ja kampanjatyökalu haluaa seuratun linkin jokaiselle mainosversiolle. Kehittäjäintegraatio seurattavien brändättyjen linkkien luomiseen tekee lyhentäjästä funktion, jota järjestelmäsi kutsuvat.

Tämä opas käy integraation läpi alusta loppuun: mitä päättää ennen koodin kirjoittamista, miten tunnistautuminen ja luontikutsu toimivat, miten linkeistä tehdään seurattavia rikkomatta attribuutiota, mitkä uudelleenohjausten erikoistapaukset aiheuttavat ongelmia, miten webhookit sopivat kokonaisuuteen ja miten integraatio testataan. Esimerkkinä on LinkPilotin API, mutta sama rakenne pätee useimpiin alustoihin.

## Päätä arkkitehtuuri ensin

Neljä kerran tehtyä päätöstä säästää suurimman osan uudelleentyöstä.

- **Mitkä järjestelmät luovat linkkejä** ja mistä laukaisijasta: julkaisutapahtumasta, käyttäjän toiminnosta vai kampanjatietueen tallentamisesta.
- **Mitä kenttiä kutsujat hallitsevat.** Yleensä kohdeosoitetta ja tunnisteita, joskus polkutunnusta. Harvoin verkkotunnusta, jonka pitäisi olla työtila- tai asiakaskohtainen asetus.
- **Miten kampanjatiedot muunnetaan seurannaksi.** Järjestelmäsi kampanjasta, kanavasta ja sijoittelusta tulee linkin tunnisteita ja kohdeosoitteen UTM-parametreja. Päätä muunnos ja kirjoita se yhteen funktioon.
- **Suora linkki, syvälinkki vai varasivu.** Mobiilisovellukseen vievä linkki tarvitsee verkkosivuversion niille, joilla sovellusta ei ole. Päätä, hoitaako sen lyhentäjä vai kohdesivusi.

Kirjoita nämä ylös. Integraatio on enimmäkseen liimakoodia, ja liimakoodin pitää olla tylsää.

## Tunnistaudu rajatuilla avaimilla

LinkPilotin API tunnistaa kutsujan bearer-avaimilla, jotka alkavat merkkijonolla `lp_live_`. Avaimet luodaan hallintapaneelissa, ja ne ovat käytössä kaikissa paketeissa, myös Free-paketissa. Jokainen avain kuuluu yhteen työtilaan, joten toimiston integraatio käyttää yhtä avainta asiakkaan työtilaa kohden, ja linkit päätyvät rakenteen ansiosta oikeaan paikkaan.

```bash
curl https://uselinkpilot.com/api/v1/me \
  -H "Authorization: Bearer lp_live_..."
```

`GET /me` palauttaa työtilan, paketin, rajat, nykyisen käytön ja avaimen pyyntökiintiön. Kutsu sitä käynnistyksen yhteydessä ja kirjaa rajat omiin lokeihisi, niin saat tietää ylärajasta ennen kuin kampanja törmää siihen.

Käsittele avainta tuotantoympäristön kirjautumistietona: säilytä se salaisuuksien hallintapalvelussa, älä koskaan koodivarastossa tai käyttöliittymän koodipaketissa, ja kun joudut antamaan sen integraatiota rakentavalle henkilölle, lähetä se kertakäyttöisellä salaisella linkillä (https://uselinkpilot.com/fi/tools/free-secret-link-generator). API-avainten opas (https://uselinkpilot.com/fi/blog/how-to-share-api-keys-securely) käsittelee luovutuksen ja kierrätyksen.

## Luo linkki

Luontikutsu ottaa kohdeosoitteen ja muutaman valinnaisen kentän.

```bash
curl -X POST https://uselinkpilot.com/api/v1/links \
  -H "Authorization: Bearer lp_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/launch?utm_source=newsletter&utm_medium=email&utm_campaign=oct-launch",
    "slug": "oct-launch-email",
    "domain": "go.example.com",
    "title": "October launch, newsletter",
    "tags": ["oct-launch", "email"]
  }'
```

Vastauksessa on linkin tunnus, lyhyt URL-osoite ja lähettämäsi metatiedot. Tallenna tunnus oman tietueesi viereen: sillä luet, päivität tai poistat linkin myöhemmin. `GET /links` listaa linkit uusimmasta alkaen kursoripohjaisella sivutuksella (`{ data, next_cursor }`), ja `GET /links/{id}` sekä `DELETE /links/{id}` käsittelevät yhtä linkkiä.

Muutama sääntö pitää integraation luotettavana:

- **Rakenna kohdeosoite koodissa** UTM-parametreineen kampanjasi kentistä. Käsin kirjoitetut parametrit lipsuvat. UTM-käsikirja (https://uselinkpilot.com/fi/blog/utm-parameters-complete-playbook) määrittää käytännöt.
- **Anna alustan luoda polkutunnukset**, ellei ihminen lue niitä. Jos asetat polkutunnukset itse, johda ne kampanjasta, kanavasta ja sijoittelusta pienillä kirjaimilla ja väliviivoilla, ja hoida ristiriita lisäämällä lyhyt pääte ja yrittämällä kerran uudelleen.
- **Tee luonnista idempotentti.** Sido jokainen luontikutsu omaan tietuetunnukseesi, jotta aikakatkaisun jälkeinen uusi yritys löytää olemassa olevan linkin eikä tee toista. Jos alusta ei tarjoa idempotenssiavainta, tarkista ennen luontia kutsulla `GET /links`, löytyykö tunnisteesi tai polkutunnuksesi jo.
- **Massaluonti on silmukka, jossa on viive.** Noudata kutsun `/me` kertomaa pyyntökiintiötä, hidasta vastauksen 429 kohdalla ja kirjaa jokainen epäonnistuminen sen tietueen kanssa, johon se liittyi.

Skripteihin ja paikallisiin työkaluihin npm:stä löytyy `linkpilot` CLI, joka käyttää samoja kutsuja, ja palvelin `@uselinkpilot/mcp` tarjoaa ne tekoälyagenteille. Molemmat ovat avointa lähdekoodia GitHubissa TetraCoreHQ-tilin alla.

## Tee linkeistä seurattavia rikkomatta attribuutiota

Jokainen klikkaus API:lla luotuun linkkiin kirjataan täsmälleen kuten hallintapaneelissa tehtyyn: aika, viittaava sivu, laite, selain, maa, alue, bottimerkintä ja suolattu tiiviste IP-osoitteen sijaan. Siitä saat linkkikohtaisen klikkausmäärän. Kohdesivun attribuutio riippuu silti siitä, että URL-osoite saapuu perille ehjänä.

- **Säilytä kyselyparametrit uudelleenohjauksen läpi.** Testaa linkki uudelleenohjausten tarkistimella (https://uselinkpilot.com/fi/tools/redirect-checker) ja varmista, että UTM-parametrit ovat lopullisessa URL-osoitteessa.
- **Vältä ketjuja.** Lyhytlinkki, joka ohjaa toiseen uudelleenohjaukseen, menettää parametreja ja nopeutta. Ohjaa suoraan lopulliselle sivulle.
- **Päätä, mitä keräät.** Maa ja laite ovat yhteenlaskettuja tilastoja. Käyttäjäkohtainen linkki, joka on yhdistetty asiakastietueeseen, on henkilötieto. Nykyaikainen opas linkkien seurantaan (https://uselinkpilot.com/fi/blog/modern-link-tracking) luettelee, mitä kirjataan ja mitä tarkoituksella jätetään kirjaamatta.
- **Kerro tuotteessa, mitä luvut ovat.** Klikkausten määrä ei ole konversioiden määrä. Näytä molemmat, nimettyinä.

## Hoida uudelleenohjausten erikoistapaukset

- **Kohdeosoitteen tarkistus.** Hylkää ennen linkin luontia kohteet, jotka eivät ole HTTPS-osoitteita, oma lyhentäjäsi verkkotunnus ja kaikki estolistalla olevat. Avoin uudelleenohjaus brändisi nimissä on tietojenkalastelun työkalu.
- **Vanhentuneet, käytöstä poistetut tai puuttuvat linkit.** Päätä varasivu linkkiä luodessa ja aseta se, jotta päättyneen kampanjan linkki vie etusivulle eikä virhesivulle. Painetuissa linkeissä on parempi muokata kohdeosoitetta kuin antaa linkin koskaan vanhentua.
- **Syvälinkit.** Käytä kohdetta, joka tunnistaa sovelluksen ja palaa tarvittaessa verkkosivulle, tai alustan omaa ominaisuutta siihen. Testaa molemmilla käyttöjärjestelmillä sekä sovelluksen kanssa että ilman sitä.
- **Koodaus.** URL-koodaa kohdeosoite ennen kuin laitat sen JSON-dataan, varsinkin jos siinä on oma kyselymerkkijono. Kaksinkertainen koodaus on tavallisin virhe.
- **Lokalisointi.** Jos yksi lyhytlinkki palvelee useaa kieltä, tunnista kieli kohdesivulla, älä polkutunnuksessa.

## Lisää webhookit tärkeille tapahtumille

Webhookien avulla muu järjestelmäsi voi reagoida linkkien tapahtumiin ilman jatkuvaa kyselyä. LinkPilot allekirjoittaa jokaisen toimituksen HMAC-allekirjoitusotsakkeella ja lähettää tapahtumat linkin elinkaaresta (`link.created`, `link.updated`, `link.deleted`) ja salaisuuden elinkaaresta (`secret.created`, `secret.viewed`, `secret.burned`). Tarkista allekirjoitus ennen jäsentämistä, kuittaa nopeasti, käsittele jonosta ja tallenna tapahtumien tunnukset, jotta uudelleenyritykset eivät aiheuta haittaa. Klikkaustiedot ovat raportointivirta eivätkä webhook: lue ne tilastoista ja vienneistä. Webhook-integraatioiden opas (https://uselinkpilot.com/fi/blog/how-to-choose-and-use-a-link-tracking-platform-with-webhook-integrations) käsittelee vastaanottajan rakentamista.

## Testaa alusta loppuun ja seuraa jatkossakin

Ennen kuin integraatio koskee oikeaan kampanjaan:

1. Luo linkki testitunnisteillasi testityötilassa.
2. Varmista, että vastauksessa on odottamasi tunnus ja lyhyt URL-osoite.
3. Klikkaa sitä puhelimella ja kannettavalla. Varmista uudelleenohjaus, UTM-parametrit perillä ja kaksi klikkausta tilastoissa oikeilla laitetyypeillä.
4. Luo sama tietue uudelleen ja varmista, että saat saman linkin etkä kaksoiskappaletta.
5. Poista linkki ja varmista, että `link.deleted` saapuu webhook-päätepisteeseesi, jos käytät sellaista.

Tuotannossa seuraa kolmea asiaa: API-virheiden osuutta tilakoodeittain, uudelleenohjauksen viivettä synteettisellä tarkistuksella ja viikoittaista täsmäytystä omien tietueidesi ja kutsun `GET /links` linkkimäärien välillä. Kierrätä API-avain aikataulun mukaan ja aina, kun joku lähtee avainta hallussaan pitävästä tiimistä.

Dokumentoi integraatio kuin sisäinen tuote: mitä kenttiä se hyväksyy, polkutunnusten sääntö, varasivun toiminta, kutsun `/me` rajat ja kenelle soitetaan, kun kampanja raportoi nolla klikkausta. Seuraava, joka koskee siihen, on kiitollinen, ja usein se olet sinä itse.

## Lue myös

- Linkinlyhentäjien API:t vertailussa: Bitly, Dub, Short.io, TinyURL: https://uselinkpilot.com/fi/blog/url-shortener-api-comparison
- Linkkien seuranta-alustan valinta ja käyttö webhook-integraatioiden kanssa: https://uselinkpilot.com/fi/blog/how-to-choose-and-use-a-link-tracking-platform-with-webhook-integrations
- API-avainten jakaminen turvallisesti: https://uselinkpilot.com/fi/blog/how-to-share-api-keys-securely
- UTM-parametrit: täydellinen käsikirja vuodelle 2026: https://uselinkpilot.com/fi/blog/utm-parameters-complete-playbook

## Työkalut tähän artikkeliin

Ilmainen URL-lyhentäjä

Lyhennä pitkä URL-osoite ja valitse sille oma polkutunnus.
https://uselinkpilot.com/fi/tools/url-shortener

Versiot: Linkinlyhentäjä TikTok-bioon (https://uselinkpilot.com/fi/tools/url-shortener/tiktok-bio) · Linkinlyhentäjä Instagram-bioon (https://uselinkpilot.com/fi/tools/url-shortener/instagram-bio) · Linkinlyhentäjä LinkedIn-julkaisuihin (https://uselinkpilot.com/fi/tools/url-shortener/linkedin-post) · Linkinlyhentäjä X:lle (Twitter) (https://uselinkpilot.com/fi/tools/url-shortener/twitter)

UTM-työkalu

Luo kampanjatunnisteilla merkityt URL-osoitteet sekunneissa.
https://uselinkpilot.com/fi/tools/utm-builder

Versiot: LinkedInin UTM-rakentaja (https://uselinkpilot.com/fi/tools/utm-builder/linkedin) · Facebookin UTM-rakentaja (https://uselinkpilot.com/fi/tools/utm-builder/facebook) · Sähköpostin UTM-rakentaja (https://uselinkpilot.com/fi/tools/utm-builder/email) · Instagramin UTM-rakentaja (https://uselinkpilot.com/fi/tools/utm-builder/instagram) · TikTokin UTM-rakentaja (https://uselinkpilot.com/fi/tools/utm-builder/tiktok) · YouTube-UTM-rakentaja (https://uselinkpilot.com/fi/tools/utm-builder/youtube) · Google Ads -kampanjoiden UTM-rakentaja (https://uselinkpilot.com/fi/tools/utm-builder/google-ads) · UTM-rakentaja X:lle (Twitter) (https://uselinkpilot.com/fi/tools/utm-builder/twitter) · Redditin UTM-rakentaja (https://uselinkpilot.com/fi/tools/utm-builder/reddit) · Pinterestin UTM-rakentaja (https://uselinkpilot.com/fi/tools/utm-builder/pinterest)

Uudelleenohjausten tarkistus

Seuraa minkä tahansa URL-osoitteen koko uudelleenohjausketjua.
https://uselinkpilot.com/fi/tools/redirect-checker

Versiot: Affiliate-linkkien uudelleenohjausten tarkistin (https://uselinkpilot.com/fi/tools/redirect-checker/affiliate-links) · Uudelleenohjausten SEO-tarkastus (https://uselinkpilot.com/fi/tools/redirect-checker/seo-audit)

Linkin klikkausten tarkistus

Näe lyhytlinkin klikkaukset, viittaajat ja sijainnit.
https://uselinkpilot.com/fi/tools/link-analytics

Älykkäät linkkiehdotukset

Tekoälyn ehdotuksia nimeämiseen, UTM-parametrien siistimiseen ja omiin verkkotunnuksiin.
https://uselinkpilot.com/fi/tools/smart-link-suggestions

## Usein kysytyt kysymykset

### Mikä on seurattava brändätty linkki?

### Mitä kenttiä linkkien luonnin API:n pitäisi hyväksyä?

### Miten integraation pitäisi käsitellä päällekkäisiä polkutunnuksia?

### Miksi kyselyparametrit pitää testata uudelleenohjauksen jälkeen?

### Mitä pitäisi tapahtua, kun linkki vanhenee tai poistetaan?

### Todistavatko linkkien klikkaukset, että kampanja aiheutti konversion?

## Fiksummat linkit LinkPilotilla

Seuranta, UTM-parametrit, QR-koodit, tekoälyn havainnot ja white label -raportointi samassa työtilassa. Aloittaminen on ilmaista.

Luo ilmainen tili (https://uselinkpilot.com/signup)

## Lue seuraavaksi

Linkkien seuranta

### Linkkien seuranta Customer Success -tiimeille: käytännön toteutusopas

Missä CS-tiimin linkit ovat, asiakaskohtainen seuranta ilman henkilötietoja URL-osoitteessa, klikkausten lukeminen käytön rinnalla ja tietosuojasäännöt.
https://uselinkpilot.com/fi/blog/custom-link-tracking-for-customer-success-teams

Linkkien seuranta

### Linkinlyhentäjä omalla verkkotunnuksella ja klikkausraporteilla

Mitä vaatia linkinlyhentäjältä, jolla on oma verkkotunnus ja klikkausraportit, miten verkkotunnus yhdistetään CNAME-tietueella ja miten tilastoja luetaan.
https://uselinkpilot.com/fi/blog/custom-domain-link-shortener-with-click-reports

Linkkien seuranta

### Oman verkkotunnuksen linkinlyhentäjä Slackiin

Määritä oma verkkotunnus ja Slack-sovellus, joka lyhentää linkit ja vaihtaa liitetyt salasanat kertakäyttölinkeiksi. Korjaa esikatselut ja lue klikkaukset.
https://uselinkpilot.com/fi/blog/how-to-integrate-a-branded-link-shortener-with-slack

## 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": "Kehittäjäintegraatio seurattaville brändätyille linkeille: käytännön opas",
        "item": "https://uselinkpilot.com/fi/blog/developer-integration-for-creating-trackable-branded-links"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "BlogPosting",
    "@id": "https://uselinkpilot.com/fi/blog/developer-integration-for-creating-trackable-branded-links#article",
    "headline": "Kehittäjäintegraatio seurattaville brändätyille linkeille: käytännön opas",
    "description": "Linkkien luonti omaan tuotteeseen tai työnkulkuun: API-avaimet, luontikutsu, idempotenssi, UTM-parametrit, uudelleenohjaukset, webhookit ja testaus.",
    "inLanguage": "fi",
    "datePublished": "2026-10-26",
    "dateModified": "2026-10-26",
    "image": "https://uselinkpilot.com/logo-512.png",
    "author": {
      "@type": "Organization",
      "@id": "https://uselinkpilot.com/author/linkpilot-team#organization",
      "name": "LinkPilot Team",
      "url": "https://uselinkpilot.com/fi/author/linkpilot-team"
    },
    "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/developer-integration-for-creating-trackable-branded-links"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Mikä on seurattava brändätty linkki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Lyhyt URL-osoite hallitsemassasi verkkotunnuksessa. Se ohjaa kohteeseen ja kirjaa matkalla jokaisen klikkauksen: ajan, viittaavan sivun, laitteen, maan ja bottimerkinnän. API:lla luotuna se on sama objekti kuin hallintapaneelissa tehty."
        }
      },
      {
        "@type": "Question",
        "name": "Mitä kenttiä linkkien luonnin API:n pitäisi hyväksyä?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Kohdeosoitteen, valinnaisen polkutunnuksen, verkkotunnuksen, jossa linkki toimii, otsikon ja tunnisteet. Kaikki muu, kuten UTM-parametrit, kuuluu antamaasi kohdeosoitteeseen. LinkPilotin POST /links ottaa juuri nämä kentät."
        }
      },
      {
        "@type": "Question",
        "name": "Miten integraation pitäisi käsitellä päällekkäisiä polkutunnuksia?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Käsittele polkutunnuksen ristiriitaa tavallisena vastauksena eikä virheenä, johon ohjelma kaatuu. Anna joko alustan luoda polkutunnus tai lisää ristiriidan sattuessa lyhyt pääte ja yritä kerran uudelleen. Älä koskaan korvaa olemassa olevaa linkkiä huomaamatta."
        }
      },
      {
        "@type": "Question",
        "name": "Miksi kyselyparametrit pitää testata uudelleenohjauksen jälkeen?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Koska uudelleenohjausketju, URL-osoitteita normalisoiva kohdesivu tai alusta, joka poistaa tuntemattomat parametrit, voi pudottaa UTM-parametrisi, jolloin yhtäkään klikkausta ei kohdisteta mihinkään. Yksi testi uudelleenohjausten tarkistimella paljastaa sen."
        }
      },
      {
        "@type": "Question",
        "name": "Mitä pitäisi tapahtua, kun linkki vanhenee tai poistetaan?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Lyhyen URL-osoitteen pitäisi viedä järkevälle varasivulle eikä pelkälle virhesivulle. Päätä varasivu linkkiä luodessa, ja painetun materiaalin linkeissä muokkaa mieluummin kohdeosoitetta kuin anna linkin koskaan vanhentua."
        }
      },
      {
        "@type": "Question",
        "name": "Todistavatko linkkien klikkaukset, että kampanja aiheutti konversion?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Eivät. Klikkaus näyttää, että joku ohjattiin kohteeseen. Konversiot mitataan kohdesivulla ja yhdistetään kampanjan nimen tai allekirjoitetun tunnisteen perusteella. Raportoi nämä kaksi rinnakkain."
        }
      }
    ],
    "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"
    }
  }
]
```