Link Console API
- Reference

Link Console API

Create, read and update tracked links from your CMS, marketing automation or scripts. Every link goes through your workspace's naming rules and approved values, exactly like the app. Available on Link Console Pro.

Authentication

The workspace owner creates keys in Link Console, Integrations, API. Send the key in the Authorization header. Keys start with lc_, are shown once, and can be revoked at any time. Base URL: https://links.planconversion.com/api/v1.

Authorization: Bearer lc_your_key

Create a link

POST /links

FieldDescription
destinationRequired. The page, starting with https://.
utm_source, utm_medium, utm_campaign, utm_term, utm_content, utm_idParameter values, at the top level or inside params. Custom parameters work the same way. Values are cleaned with your rules.
shorttrue to create a short link and QR code.
slugOptional custom ending for the short link (letters, numbers, - and _).
notesOptional, up to 500 characters.
curl -X POST https://links.planconversion.com/api/v1/links \
  -H "Authorization: Bearer lc_your_key" -H "content-type: application/json" \
  -d '{"destination":"https://www.example.com/demo","utm_source":"LinkedIn","utm_medium":"paid-social","utm_campaign":"Q4 ABM","short":true}'
201 Created
{ "ok": true, "link": { "id": "6f1c...", "full_url": "https://www.example.com/demo?utm_source=linkedin&utm_medium=paid-social&utm_campaign=q4-abm",
  "short_url": "https://go.planconversion.com/k7Pq2xD", "params": { "utm_source": "linkedin", ... }, "clicks": 0, ... } }

List links

GET /links?limit=100&since=2026-11-01&campaign=q4-abm

Newest first. limit up to 500. since filters by creation date; campaign by exact utm_campaign.

Get a link

GET /links/{id}

Update a link

PATCH /links/{id}

Change destination, parameter values, notes or archived. The short link and its QR code follow the new address. Changes are recorded in the link's history and sent to your webhook.

curl -X PATCH https://links.planconversion.com/api/v1/links/6f1c... \
  -H "Authorization: Bearer lc_your_key" -H "content-type: application/json" \
  -d '{"destination":"https://www.example.com/demo-2027"}'

Clicks

GET /links/{id}/clicks?days=30

Clicks on the short link by day, country, device and referrer host. Bots and link previews are not counted; no IP addresses are stored.

Errors

StatusMeaning
401Missing, unknown or revoked key.
402The workspace is not on Pro, or a plan limit was reached.
409That short link ending is taken.
422The link breaks the naming rules. issues lists each problem, for example {"param":"utm_source","code":"not_allowed","text":"Source \"g2\" is not an approved value"}.

Webhooks

Save a URL in Integrations, Webhooks. Within 5 minutes of each change we POST JSON with event (link.created, link.edited, link.archived, link.restored, link.broken, link.recovered), at, changes and link. Requests carry X-LinkConsole-Signature: the hex HMAC-SHA256 of the raw body with your signing secret. Failed deliveries are retried for 24 hours.

{ "event": "link.broken", "at": "2026-11-03T14:05:00Z",
  "changes": { "health": "broken", "note": "The page returns 404 (not found).", "code": 404 },
  "link": { "id": "6f1c...", "full_url": "...", "short_url": "https://go.planconversion.com/k7Pq2xD", ... } }