- Partner-managed workspaces are on the unlimited plan: no link cap, and the analytics, clicks and link-performance endpoints are available.
- They have no dashboard organization of their own; everything happens over the API.
GET /api/v1/mereports them withworkspace.partner_managed: true.
The partner key
Partner endpoints authenticate with a partner key, not a workspace key:/api/v1/partner/*; a workspace key (lk_…) is refused there, and a partner key is refused
everywhere else (401).
Get or create a workspace — POST /api/v1/partner/workspaces
string
required
Your id for the customer (1–200 characters, matched exactly). One workspace per
external_id
per partner — calling again with the same id returns the same workspace.string
required
Workspace name (1–100 characters). Used when the workspace is created; an existing workspace
keeps its name.
boolean
For an existing workspace: mint a new key and revoke every key you previously minted for it
(keys the workspace’s own team created are untouched).
workspace is { id, name, slug, partner_external_id }. key is a secret workspace key,
labelled partner:<your partner name> — use it as Authorization: Bearer lk_live_… on every other
endpoint (links, clicks,
webhooks…). It is shown once: store it before doing anything else. If
you lose it, call again with rotate_key: true.
Look up a workspace — GET /api/v1/partner/workspaces/:external_id
URL-encode the external_id. Returns 200 { workspace }, or 404 not_found if none of your
workspaces has that id. Never returns a key.
Building on a partner workspace
- Create links with
external_idset to your post id and anIdempotency-Key, so a retried publish never creates a second link — see Links. - One campaign (destination) per piece of content; add a link per account or network with
destination_id. Two links on the same network in one campaign need distinctexternal_ids. - Destinations must share one own-site domain per workspace. Send
external: truefor destinations on platforms the customer doesn’t own. - Read stats for the links you know with
GET /api/v1/links?ids=…and poll new clicks withGET /api/v1/clicks?link_ids=…&since=…, or subscribe toclick.created/sale.createdwebhooks. - Check
featuresonGET /api/v1/meto detect what the deployment supports.

