Skip to content

Links

Terminal window
curl -X POST https://qck.sh/public-api/v1/links \
-H "X-API-Key: qck_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/my-page",
"title": "My Page",
"description": "A landing page for the campaign",
"og_image": "https://example.com/og-banner.png",
"custom_alias": "my-page",
"tags": ["marketing", "q1"],
"expires_at": "2026-12-31T23:59:59Z"
}'
FieldTypeRequiredDescription
urlstringYesThe destination URL
titlestringNoOG title (auto-extracted if omitted)
descriptionstringNoOG description (auto-extracted if omitted)
og_imagestringNoOG image URL (auto-extracted if omitted)
custom_aliasstringNoCustom short code (3+ chars, Basic tier or higher)
tagsstring[]NoTags for organization
expires_atISO 8601NoAuto-expire at this time
is_password_protectedbooleanNoMust be true for password to take effect
passwordstringNoPassword-protect the link (requires is_password_protected: true, otherwise silently ignored)
utm_sourcestringNoUTM source appended to destination
utm_mediumstringNoUTM medium appended to destination
utm_campaignstringNoUTM campaign appended to destination
utm_termstringNoUTM term appended to destination
utm_contentstringNoUTM content appended to destination
domain_idstringNoCustom domain ID for the short URL
campaign_idstringNoCampaign to assign the link to (Growth tier or higher)

To password-protect a link, set both fields:

{ "url": "https://example.com", "is_password_protected": true, "password": "s3cret" }

If you omit title, description, or og_image, they are automatically extracted from the destination URL in the background.

For custom OG images (instead of a URL), upload the image file directly. Requires Growth ($49/mo) or higher.

Terminal window
curl -X PUT https://qck.sh/public-api/v1/links/{id}/og-image \
-H "X-API-Key: qck_your_api_key_here" \
-H "Content-Type: image/png" \
--data-binary @image.png
  • Supported formats: JPEG, PNG, WebP, GIF
  • Max file size: 5 MB
  • Images are resized to 1200x630 and converted to WebP

Delete an uploaded OG image:

Terminal window
curl -X DELETE https://qck.sh/public-api/v1/links/{id}/og-image \
-H "X-API-Key: qck_your_api_key_here"
Terminal window
curl -X PATCH https://qck.sh/public-api/v1/links/{id} \
-H "X-API-Key: qck_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"title": "Updated Title", "tags": ["new-tag"]}'

You can update title, description, og_image, tags, alias, expiration, password, and active status. The destination URL cannot be changed — create a new link instead.

Terminal window
curl -X DELETE https://qck.sh/public-api/v1/links/{id} \
-H "X-API-Key: qck_your_api_key_here"

Create multiple links in one request:

Terminal window
curl -X POST https://qck.sh/public-api/v1/links/bulk \
-H "X-API-Key: qck_your_api_key_here" \
-H "Content-Type: application/json" \
-d '[
{"url": "https://example.com/page-1", "title": "Page 1"},
{"url": "https://example.com/page-2", "title": "Page 2"}
]'

Maximum links per batch depends on your tier: Free (25), Basic (100), Growth (500), Pro (2,500), Business (10,000), Scale (25,000).

Bulk creation is not all-or-nothing — if some links fail, the response is 207 Multi-Status with a failed[] array describing each failure (index, URL, and error), while the rest are created normally. See the Links API reference for the full response shape.

Terminal window
curl "https://qck.sh/public-api/v1/links?page=1&per_page=20" \
-H "X-API-Key: qck_your_api_key_here"

Supports page and per_page query parameters (max 250 per page).

New links per month by tier: Free (25), Basic (500), Growth (2,500), Pro (10,000), Business (50,000), Scale (200,000).

All created links stay active forever — the limit only caps how many new links you can create each calendar month.

Custom aliases require Basic ($19/mo) or higher. Aliases must be 3+ characters and are unique across the platform.