Dub.co Links API
/install dub-links-api
Dub Links API
Skill for integrating Dub Links API with strict scope limited to /links* endpoints.
API Overview
- Base URL:
https://api.dub.co - Auth: Bearer token required
- Header:
Authorization: Bearer \x3CDUB_API_KEY> - Response format: JSON
- Scope: Links endpoints only
- Docs:
https://dub.co/docs/api-reference/endpoint/create-a-link - Token docs (onboarding):
https://dub.co/docs/api-reference/tokens - Local snapshot:
references/openapi-spec.json
API Key Onboarding
Use this flow when the user does not have an API key yet:
- Create a Dub account/workspace (if needed).
- Go to the dashboard token section (per docs):
https://dub.co/docs/api-reference/tokens
- Generate an API key and export it in shell:
export DUB_API_KEY="..."
- Validate credentials with a Links endpoint:
curl -s -H "Authorization: Bearer $DUB_API_KEY" "https://api.dub.co/links/count" | jq '.'
Useful onboarding note: if initial signup is needed, this referral can be used:
https://refer.dub.co/agents
Links Endpoints
1) Create
POST /links- Creates a link in the authenticated workspace.
- Minimum recommended body:
url.
curl -s -X POST "https://api.dub.co/links" \
-H "Authorization: Bearer $DUB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}' | jq '.'
2) Update
PATCH /links/{linkId}- Updates an existing link by
linkId.
curl -s -X PATCH "https://api.dub.co/links/{linkId}" \
-H "Authorization: Bearer $DUB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/new"}' | jq '.'
3) Upsert
PUT /links/upsert- If a link with the same URL exists, returns/updates it; otherwise creates it.
curl -s -X PUT "https://api.dub.co/links/upsert" \
-H "Authorization: Bearer $DUB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}' | jq '.'
4) Delete
DELETE /links/{linkId}- Deletes a link by
linkId.
curl -s -X DELETE "https://api.dub.co/links/{linkId}" \
-H "Authorization: Bearer $DUB_API_KEY" | jq '.'
5) Retrieve one
GET /links/info- Retrieves a link by one of these selectors:
domain + keylinkIdexternalId
curl -s "https://api.dub.co/links/info?domain=acme.link&key=promo" \
-H "Authorization: Bearer $DUB_API_KEY" | jq '.'
6) List
GET /links- Returns paginated list with filters.
- Common query params:
domain,search,tagId,tagIds,tagNames,folderId,tenantId,page,pageSize,sortBy,sortOrder.
curl -s "https://api.dub.co/links?page=1&pageSize=20&sortBy=createdAt&sortOrder=desc" \
-H "Authorization: Bearer $DUB_API_KEY" | jq '.'
7) Count
GET /links/count- Returns number of links for the provided filters.
curl -s "https://api.dub.co/links/count?domain=acme.link" \
-H "Authorization: Bearer $DUB_API_KEY" | jq '.'
8) Bulk create
POST /links/bulk- Creates up to 100 links.
- Body: array of objects (each item should include
url).
curl -s -X POST "https://api.dub.co/links/bulk" \
-H "Authorization: Bearer $DUB_API_KEY" \
-H "Content-Type: application/json" \
-d '[{"url":"https://example.com/a"},{"url":"https://example.com/b"}]' | jq '.'
9) Bulk update
PATCH /links/bulk- Updates up to 100 links.
- Body requires
data; target selection vialinkIdsorexternalIds.
curl -s -X PATCH "https://api.dub.co/links/bulk" \
-H "Authorization: Bearer $DUB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"linkIds":["lnk_123","lnk_456"],"data":{"archived":true}}' | jq '.'
10) Bulk delete
DELETE /links/bulk- Deletes up to 100 links.
- Required query param:
linkIds.
curl -s -X DELETE "https://api.dub.co/links/bulk?linkIds=lnk_123,lnk_456" \
-H "Authorization: Bearer $DUB_API_KEY" | jq '.'
Key Fields
Common response fields (from LinkSchema):
iddomainkeyshortLinkurlcreatedAtupdatedAtarchivedexternalIdtagsfolderId
Result shapes by endpoint:
GET /links: array of linksGET /links/count: number- Bulk endpoints: array/object depending on operation
Recommended Workflow
- Detect intent: create/update/upsert/delete/get/list/count/bulk.
- Validate minimum inputs (
url,linkId, filters, bulk ids). - Execute request with
curl -sand Bearer header. - Parse with
jqand verify logical operation result. - Respond first with a useful snapshot:
id,shortLink,url, andarchivedstatus when relevant.
- For lists, provide a short table with relevant columns.
- Keep strict scope on
/links*.
Error Handling
- 401/403: missing, invalid, or unauthorized token.
- 404: link not found for
linkIdorGET /links/infocriteria. - 422: invalid payload (missing/invalid fields).
- 429: rate limited; respect
Retry-Afterif present. - Network/timeout: retry up to 2 times with short delay.
- Unexpected JSON: return minimal raw output and warn about inconsistency.
Presenting Results
Recommended output format:
- Executive summary (action + result).
- Short table for multiple links:
id | domain | key | shortLink | url | createdAt
- For bulk operations:
- requested total, processed total, errors if any.
- Clarify data is scoped to the authenticated workspace.
Out of Scope
This skill must not use:
- Analytics, events, conversions, partners, customers, commissions, payouts endpoints.
- Domains, folders, tags endpoints.
/tokens/*endpoints (including/tokens/embed/referrals).
The tokens page is used only for API key onboarding, not as operational scope.
OpenAPI Spec
Use references/openapi-spec.json as the stable local source for methods, paths, parameters, and schemas.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install dub-links-api - 安装完成后,直接呼叫该 Skill 的名称或使用
/dub-links-api触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Dub.co Links API 是什么?
Integrates Dub Links API endpoints to create, update, delete, retrieve, list, count, and run bulk operations on short links. Use when the user asks for "dub... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 724 次。
如何安装 Dub.co Links API?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install dub-links-api」即可一键安装,无需额外配置。
Dub.co Links API 是免费的吗?
是的,Dub.co Links API 完全免费(开源免费),可自由下载、安装和使用。
Dub.co Links API 支持哪些平台?
Dub.co Links API 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Dub.co Links API?
由 Fermin Rodriguez Penelas(@ferminrp)开发并维护,当前版本 v1.0.1。