sink
Sink short link API operations via OpenAPI. Use when managing short links: creating, querying, updating, deleting, listing, importing, or exporting links. Also covers AI-powered slug generation and link analytics. Triggers: "create short link", "shorten URL", "delete link", "edit link", "list links", "export links", "import links", "link analytics", "AI slug".
Install
mkdir -p .claude/skills/sink && curl -L -o skill.zip "https://mcp.directory/api/skills/download/5247" && unzip -o skill.zip -d .claude/skills/sink && rm skill.zipInstalls to .claude/skills/sink
About this skill
Sink API
Sink is a link shortener running on Cloudflare. Manage links via REST API.
Authentication
All endpoints require Bearer token authentication:
Authorization: Bearer YOUR_SITE_TOKEN
Token = NUXT_SITE_TOKEN environment variable.
Base URL
https://your-sink-domain
API Reference
Create Link
POST /api/link/create
Content-Type: application/json
{
"url": "https://example.com/long-url",
"slug": "custom-slug",
"comment": "optional note",
"expiration": 1735689599,
"apple": "https://apps.apple.com/app/id123",
"google": "https://play.google.com/store/apps/details?id=com.example"
}
Required: url
Optional: slug (auto-generated if omitted), comment, expiration (unix timestamp), apple (iOS redirect), google (Android redirect), password, unsafe, title, description, image, cloaking, redirectWithQuery
If
NUXT_SAFE_BROWSING_DOHis configured andunsafeis not explicitly set, the server auto-detects via DoH and marks unsafe links automatically.
Response (201):
{
"link": {
"id": "abc123",
"url": "https://example.com/long-url",
"slug": "custom-slug",
"createdAt": 1718119809,
"updatedAt": 1718119809
},
"shortLink": "https://your-domain/custom-slug"
}
Errors: 409 (slug exists)
Query Link
GET /api/link/query?slug=custom-slug
Response (200):
{
"id": "abc123",
"url": "https://example.com",
"slug": "custom-slug",
"createdAt": 1718119809,
"updatedAt": 1718119809
}
Errors: 404 (not found)
Edit Link
PUT /api/link/edit
Content-Type: application/json
{
"slug": "existing-slug",
"url": "https://new-url.com",
"comment": "updated note"
}
Required: slug (identifies which link to edit), url
Optional: other fields to update
Response (201): Same as create
Errors: 404 (not found)
Delete Link
POST /api/link/delete
Content-Type: application/json
{
"slug": "slug-to-delete"
}
Response: 200 (empty body)
List Links
GET /api/link/list?limit=20&cursor=abc123
Parameters:
limit: max 1024, default 20cursor: pagination cursor from previous response
Response:
{
"keys": [],
"list_complete": false,
"cursor": "next-cursor"
}
Export Links
GET /api/link/export
Response:
{
"version": "1.0",
"exportedAt": "2024-01-01T00:00:00Z",
"count": 100,
"links": [],
"list_complete": true
}
Import Links
POST /api/link/import
Content-Type: application/json
{
"links": [
{"url": "https://example1.com", "slug": "ex1"},
{"url": "https://example2.com", "slug": "ex2"}
]
}
Response: imported links array
AI Slug Generation
GET /api/link/ai?url=https://example.com/article
Response:
{
"slug": "ai-generated-slug"
}
Verify Token
GET /api/verify
Verify if the site token is valid.
Response (200):
{
"name": "Sink",
"url": "https://sink.cool"
}
Errors: 401 (invalid token)
Link Fields
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Target URL (max 2048) |
slug | string | No | Custom slug (auto-generated) |
comment | string | No | Internal note |
expiration | number | No | Unix timestamp |
apple | string | No | iOS/macOS redirect URL |
google | string | No | Android redirect URL |
title | string | No | Custom title (max 256) |
description | string | No | Custom description |
image | string | No | Custom image path |
cloaking | boolean | No | Enable link cloaking |
redirectWithQuery | boolean | No | Append query params to destination URL (overrides global NUXT_REDIRECT_WITH_QUERY) |
password | string | No | Password protection for the link |
unsafe | boolean | No | Mark as unsafe (shows warning page before redirect) |
Analytics Endpoints
Summary
GET /api/stats/summary
Metrics
GET /api/stats/metrics
Realtime
GET /api/stats/realtime
OpenAPI Docs
- JSON:
/_docs/openapi.json - Scalar UI:
/_docs/scalar - Swagger UI:
/_docs/swagger
cURL Examples
Create link:
curl -X POST https://your-domain/api/link/create \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"url": "https://github.com/example"}'
List links:
curl https://your-domain/api/link/list \
-H "Authorization: Bearer YOUR_TOKEN"
Delete link:
curl -X POST https://your-domain/api/link/delete \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"slug": "my-slug"}'
More by miantiao-me
View all skills by miantiao-me →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversTransform any OpenAPI specification into callable tools. Easily test an API, handle authentication, and generate schemas
Manage Kafka data streaming with Confluent Cloud APIs. Streamline Kafka stream operations using natural language and RES
Automate sprint planning and task management with Shortcut—supports story management, epics, teams, and more for agile d
Shorten your URLs easily with Dub.co – a tiny url website for creating, updating, and managing short links with robust e
Easily manage torrent downloads with rqbit: add, pause, start, or delete torrents using magnet links and our advanced ma
Linkly — URL shortener and link management platform with link tracking and click analytics. Create, track, and optimize
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.