Skip to main content
Every link the dashboard UI can create, your backend can create too. The Machine Create API runs the same interview and governance rules as a human filling in the Add Mapping dialog — no caller gets its own shortcut taxonomy.
If you’re building an AI assistant integration rather than calling the HTTP API directly, see MCP Tools — it wraps this same API for tools like Claude Desktop.

Authentication

Every request needs a Bearer API key with the Links scope.
1

Open API Keys

Go to Settings → Workspace → Settings & Integrations, find the API Keys card, and click Create API Key.
2

Select the Links scope

Give the key a name and choose an environment. Events is included on every key by default; check Links as well to allow this key to create and look up links.
3

Copy the plaintext key

The key is shown once. If you need to add the Links scope to a key you already created, open its row menu and edit its scopes — you don’t need to issue a new key.
A key without the Links scope gets 403 Forbidden from both endpoints below.

Request fields

Response — created (201) or idempotent hit (200)

A 201 means a new link was minted. A 200 with idempotent: true means the same external_id was already used — you get the existing link back, not a duplicate. Look up a link you created earlier by the external_id you gave it.
An unknown external_id returns 404, not an error you need to treat specially — it just means nothing has been created with that key yet.

Idempotent retries

Always send the same external_id when retrying a create call after a timeout or network error. The API compares it against links already created under your account — a second call with the same key returns the original link (200, idempotent: true) instead of creating a duplicate. If you omit external_id, a new one is generated automatically for you, and a bare retry (no external_id on either call) will mint a second link.

Governance enforcement

If your workspace has published a governance version (Settings → Governance), the source/medium/platform/objective you send are checked against it, the same as a value typed into the dashboard’s Add Mapping dialog. Unrecognized values can be blocked depending on your workspace’s policy:
Workspaces without an active governance version skip this check entirely — every value passes through as sent.

Destination allowlist

An account can optionally restrict which destinations API-created links may point to (Settings → Workspace → Settings & Integrations). When set, a destination outside the allowed origins is rejected:
No allowlist configured means any https:// destination is accepted.

Audit trail

Every successful create is recorded with the API key that made it, the raw values sent, and the values governance resolved them to — visible to your workspace admins for compliance and debugging. Idempotent replays are not re-logged; only the original creation is.