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.