---
canonical_url: "https://docs.composio.dev/toolkits/link_twin"
markdown_url: "https://docs.composio.dev/toolkits/link_twin.md"
product: "platform"
version: null
last_updated: null
---

# LinkTwin

LinkTwin is a link management platform for creating shortened deep links, tracking analytics, and managing domains, pixels, QR codes, and collections.

- **Category:** url shortener
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 10
- **Triggers:** 0
- **Slug:** `LINK_TWIN`
- **Version:** 00000000_00

## Tools

### Create Link

**Slug:** `LINK_TWIN_CREATE_LINK`

Create a shortened deep link with optional access limits, targeting, query parameters, and pixel or collection assignments. Free accounts can shorten only LinkTwin-approved destination domains and apps; arbitrary destination websites require a paid plan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `note` | string | No | Private note used to identify or organize the link. |
| `ab_tests` | array | No | Alternative destinations and optional traffic percentages for A/B routing. |
| `password` | string | No | Password visitors must enter before redirecting. |
| `expires_at` | string | No | Date and time after which the link expires. |
| `click_limit` | integer | No | Maximum successful redirects before the link expires. |
| `geo_targets` | array | No | Country-based redirect destinations; country must be a full, case-sensitive country name. |
| `short_domain` | string | No | Existing LinkTwin short domain returned by LINK_TWIN_LIST_DOMAINS. Branded domains require a plan that enables them. |
| `display_title` | string | No | Custom display title for the link. |
| `device_targets` | array | No | Device-based redirect destinations. |
| `destination_url` | string | Yes | Destination URL to shorten. On Free, it must belong to a LinkTwin-approved domain or app. |
| `language_targets` | array | No | Language-based redirect destinations. |
| `query_parameters` | array | No | Query parameters LinkTwin appends during redirect. |
| `pixel_ids_or_names` | string | No | Tracking pixels to assign. Use all numeric IDs or all names in one call; do not mix forms. |
| `collection_ids_or_names` | string | No | Collections to assign. Use all numeric IDs or all names in one call; do not mix forms. |
| `expiration_redirect_url` | string | No | Fallback destination used after expiry or the click limit is reached. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Link

**Slug:** `LINK_TWIN_DELETE_LINK`

Permanently delete one shortened link by numeric ID. This destructive action removes the link and its redirect and cannot be undone; use it only when the caller explicitly intends permanent deletion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `link_id` | integer | Yes | Numeric ID of the shortened link to permanently delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Account Info

**Slug:** `LINK_TWIN_GET_ACCOUNT_INFO`

Return the connected LinkTwin account's plan, usage, timezone, and feature limits. Use this before creating or updating links when plan availability is uncertain.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Link

**Slug:** `LINK_TWIN_GET_LINK`

Return one shortened link's destination, targeting rules, assignments, access controls, and summary click analytics.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `timezone` | string | No | IANA timezone for returned analytics; defaults to the account timezone. |
| `link_id_or_short_url` | string | Yes | Numeric link ID or full LinkTwin short URL. Full URLs are safely encoded as one path segment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Link Analytics

**Slug:** `LINK_TWIN_GET_LINK_ANALYTICS`

Return detailed clicks, unique clicks, time series, and geography, referrer, browser, device, language, and city breakdowns for one link. Free accounts retain only 14 days of analytics.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to_date` | string | No | Inclusive end date as YYYY-MM-DD. Use only when from_date is an explicit date; omit it for a preset window. |
| `timezone` | string | No | IANA timezone for date boundaries and chart timestamps; defaults to the account timezone. |
| `from_date` | string | Yes | Preset analytics window or explicit inclusive start date as YYYY-MM-DD. Results cannot exceed the account's retention period. |
| `link_id_or_short_url` | string | Yes | Numeric link ID or full LinkTwin short URL. Full URLs are safely encoded as one path segment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Collections

**Slug:** `LINK_TWIN_LIST_COLLECTIONS`

Return one page of link collections available for organizing or assigning shortened links.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum collections to request in this page. LinkTwin does not publish a maximum. |
| `cursor` | string | No | Opaque continuation cursor returned by a previous call. Omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Domains

**Slug:** `LINK_TWIN_LIST_DOMAINS`

Return standard LinkTwin short domains and branded domains available to the connected account. Branded domains are disabled on Free accounts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum branded domains to request in this page. Standard LinkTwin domains may be returned in addition to this limit. |
| `cursor` | string | No | Opaque continuation cursor returned by a previous call. Omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Links

**Slug:** `LINK_TWIN_LIST_LINKS`

Return one filtered page of shortened links owned by the connected account, including destination URLs, click totals, and assignments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum links to request in this page. LinkTwin does not publish a maximum. |
| `order` | string ("date" | "date_desc" | "date_asc" | "clicks_desc" | "clicks_asc" | "name_asc" | "name_desc") | No | Sort order for the returned links. |
| `cursor` | string | No | Opaque continuation cursor returned by a previous call. Omit for the first page. |
| `search` | string | No | Search text used to filter links. |
| `date_to` | string | No | Inclusive creation-date upper bound as YYYY-MM-DD or an ISO 8601 datetime. |
| `timezone` | string | No | IANA timezone used to interpret date filters; defaults to the account timezone. |
| `date_from` | string | No | Inclusive creation-date lower bound as YYYY-MM-DD or an ISO 8601 datetime. |
| `collection_ids` | array | No | Collection IDs to filter by. They are serialized as the JSON-encoded collections query value LinkTwin expects. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Pixels

**Slug:** `LINK_TWIN_LIST_PIXELS`

Return one page of tracking pixels available for assignment to shortened links.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum tracking pixels to request in this page. LinkTwin does not publish a maximum. |
| `cursor` | string | No | Opaque continuation cursor returned by a previous call. Omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Link

**Slug:** `LINK_TWIN_UPDATE_LINK`

Partially update a shortened link's destination, access limits, targeting, query parameters, or assignments. Only explicitly supplied fields are changed; replacement arrays overwrite the complete existing value. Changing the destination URL requires a paid LinkTwin plan.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `note` | string | No | Replacement private note. Pass null to clear it; omit to leave unchanged. |
| `link_id` | integer | Yes | Numeric ID of the shortened link to update. |
| `ab_tests` | array | No | Complete replacement A/B destination list. Pass [] to clear A/B routing. |
| `password` | string | No | Replacement visitor password. Pass null to clear it; omit to leave unchanged. |
| `expires_at` | string | No | Replacement expiry datetime. Pass null to clear it; omit to leave unchanged. |
| `click_limit` | integer | No | Replacement successful-redirect limit. Pass null to clear it; omit to leave unchanged. |
| `geo_targets` | array | No | Complete replacement country-target list. Pass [] to clear all country targets. |
| `short_domain` | string | No | Existing LinkTwin short domain returned by LINK_TWIN_LIST_DOMAINS. Omit to leave unchanged; null is not accepted. |
| `display_title` | string | No | Replacement display title. Pass null to clear it; omit to leave unchanged. |
| `device_targets` | array | No | Complete replacement device-target list. Pass [] to clear all device targets. |
| `destination_url` | string | No | New destination URL. Changing a link's destination requires a paid LinkTwin plan, even when the new URL uses an approved domain. Omit to leave unchanged; null is not accepted. |
| `language_targets` | array | No | Complete replacement language-target list. Pass [] to clear all language targets. |
| `query_parameters` | array | No | Complete replacement redirect-query list. Pass [] to clear all query parameters. |
| `pixel_ids_or_names` | array | No | Complete replacement pixel assignment list. Use either all numeric IDs or all names in one call; pass [] to clear all assignments. |
| `collection_ids_or_names` | array | No | Complete replacement collection assignment list. Use either all numeric IDs or all names in one call; pass [] to clear all assignments. |
| `expiration_redirect_url` | string | No | Replacement destination used after expiry or the click limit. Pass null to clear it; omit to leave unchanged. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
