On Pro, the workspace owner creates an API key in Integrations to create and update links from other systems with the same naming rules, and owners and editors can send every link change to a webhook URL.
Connect another system
- Create an API keyOpen Integrations, API. Type a Key name, for example "HubSpot workflow", and press Create API key. Press Copy key now: it is shown only once.
- Call the APISend the key as
Authorization: Bearer lc_...tohttps://links.planconversion.com/api/v1. Every endpoint and field is in the API reference. - Handle naming errorsA link that breaks your rules gets a 422 response with an
issueslist, one entry per problem. Fix the values, or add them to your approved values. - Add a webhookUnder Webhooks (Zapier, Make, n8n), paste an https URL, for example from Zapier's "Webhooks by Zapier, Catch Hook" or Make's "Custom webhook", and press Save. Press Send test to try it.
- Verify the signatureThe owner presses Copy signing secret. Each request carries
X-LinkConsole-Signature: the hex HMAC-SHA256 of the raw body with that secret. - Revoke keys you no longer needPress Revoke next to a key in the list. It stops working at once.
Example
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}'
Good to know
- A workspace can have up to 10 active keys. Keys are stored only as a hash, and the list shows when each was last used.
- Other errors: 401 for a missing, unknown or revoked key; 402 when the workspace is not on Pro or a plan limit was reached; 409 when a short link ending is taken.
- Webhook events:
link.created,link.edited,link.archived,link.restored,link.brokenandlink.recovered, sent within 5 minutes of the change. - Failed deliveries (no answer or a server error) are retried for 24 hours. A 4xx answer is not retried.
- Only the owner manages API keys. Owners and editors can save the webhook URL.