| name | dub |
| description | Dub short link management API integration with managed OAuth. Create, update, and analyze short links, manage custom domains, organize links with tags, and track click analytics. Use this skill when users want to shorten URLs, manage link campaigns, track link clicks, or organize bookmarks with tags. |
Dub

Create, manage, and analyze short links from chat -- shorten URLs, track clicks, manage custom domains, and organize links with tags. Powered by ClawLink for hosted OAuth.
Setup in 3 Steps
| Step 1: Install | Step 2: Pair Account | Step 3: Connect Dub |
|---|
 |  | App-specific connection GIF coming soon |
| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect Dub |
How It Works
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────▶│ ClawLink │────▶│ Dub API │
│ (User Chat) │ │ (OAuth) │ │ │
└─────────────────┘ └──────────────┘ └──────────────────┘
Install
openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
Quick Start
clawlink_call_tool({ tool: "dub_upsert_link", parameters: { url: "https://example.com/long-page", domain: "dg.gg" } })
clawlink_call_tool({ tool: "dub_get_links", parameters: {} })
clawlink_call_tool({ tool: "dub_get_link_info", parameters: { linkId: "link_123" } })
Authentication
ClawLink manages OAuth tokens -- no API keys required. Connect Dub at claw-link.dev/dashboard?add=dub.
Connection Management
clawlink_list_integrations()
clawlink_call_tool({ tool: "dub_get_workspace", parameters: {} })
Security & Permissions
- Read tools are safe and require no confirmation
- Write tools require confirmation before execution
- Bulk delete and domain/tag deletion are high-impact and irreversible
Tool Reference
Link Operations
| Tool | Description | Mode |
|---|
dub_upsert_link | Create or update a short link (upsert by domain+key) | Write |
dub_get_link_info | Get details for a specific short link | Read |
dub_get_links | List links with filtering by domain, tags, folder, search | Read |
dub_get_links_count | Get count of links matching filters | Read |
dub_bulk_update_links | Update multiple links at once by IDs | Write |
dub_bulk_delete_links | Delete up to 100 links at once (non-existing IDs ignored) | Write |
Domain Operations
| Tool | Description | Mode |
|---|
dub_create_domain | Add a custom domain to workspace | Write |
dub_update_domain | Update domain configuration (redirects, deep linking) | Write |
dub_delete_domain | Permanently remove a domain from workspace | Write |
dub_list_domains | List all domains for workspace | Read |
Tag Operations
| Tool | Description | Mode |
|---|
dub_create_tag | Create a new tag for organizing links | Write |
dub_update_tag | Update tag name or color | Write |
dub_delete_tag | Delete a tag permanently | Write |
dub_get_tags | List tags with pagination and search | Read |
Workspace Operations
| Tool | Description | Mode |
|---|
dub_get_workspace | Get workspace details, plan, usage limits | Read |
dub_update_workspace | Update workspace name, slug, logo, settings | Write |
Tracking
| Tool | Description | Mode |
|---|
dub_track_open | Track a deep link open event | Write |
Code Examples
Example 1: Create and manage short links
const link = await clawlink_call_tool({
tool: "dub_upsert_link",
parameters: {
url: "https://example.com/landing-page",
domain: "dg.gg",
key: "my-campaign",
title: "Summer Campaign"
}
});
const links = await clawlink_call_tool({
tool: "dub_get_links",
parameters: { tagIds: ["tag_123"] }
});
Example 2: Domain and tag management
await clawlink_call_tool({
tool: "dub_create_tag",
parameters: { name: "newsletter", color: "#3B82F6" }
});
const domains = await clawlink_call_tool({
tool: "dub_list_domains",
parameters: {}
});
Example 3: Bulk operations
await clawlink_call_tool({
tool: "dub_bulk_delete_links",
parameters: { linkIds: ["link_1", "link_2", "link_3"] }
});
const count = await clawlink_call_tool({
tool: "dub_get_links_count",
parameters: { domain: "dg.gg" }
});
Discovery Workflow
- Call
clawlink_list_integrations to confirm dub is connected.
- Call
clawlink_list_tools --integration dub to see the live catalog.
- Use
clawlink_search_tools({ query: "link", integration: "dub" }) to find specific tools.
Execution Workflow
READ (safe): get_links → get_link_info → list_domains → get_tags
WRITE (confirm): upsert_link → create_domain → create_tag → update_workspace
DELETE (high): bulk_delete_links → delete_domain → delete_tag
Notes
- Domains must be verified before they can be used for link shortening
- Bulk delete silently ignores non-existing link IDs
- Upsert creates a new link or updates an existing one (matches by domain and key)
Error Handling
| Status / Error | Meaning |
|---|
| 401 Unauthorized | OAuth token expired -- reconnect at dashboard |
| 403 Forbidden | Insufficient workspace permissions |
| 404 Not Found | Link, domain, or tag ID does not exist |
| 409 Conflict | Domain already exists or link key is taken |
| 429 Rate Limited | Too many requests -- apply backoff |
Troubleshooting
Tools Not Visible
- Start a fresh OpenClaw chat to reload plugin catalog
- Call
clawlink_list_integrations to confirm pairing
Invalid Tool Call
- Verify domain is verified before creating links on it
- Use
dub_list_domains to confirm domain IDs
- Link keys must be URL-safe (alphanumeric, hyphens, underscores)
Resources
Powered by ClawLink -- an integration hub for OpenClaw
