Skip to content

Quick Start

All API requests go to:

https://qck.sh/public-api/v1

Every response uses a standard envelope:

{
"success": true,
"data": { ... },
"meta": {
"request_id": "0190a8b2-...",
"timestamp": "2026-04-08T12:00:00Z"
}
}

On errors:

{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "What went wrong"
},
"meta": {
"request_id": "0190a8b2-...",
"timestamp": "2026-04-08T12:00:00Z",
"status": 400
}
}

Authentication and rate-limit middleware errors use a flat shape ("error": "CODE" at the top level). See Errors.

  1. Sign up at qck.sh/app/signup (free, no card required)
  2. Go to API in the dashboard
  3. Click Create API Key and copy it. It’s shown only once

Keys start with qck_ and go in the X-API-Key header on every request.

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"}'

Returns 201 Created:

{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"short_code": "abc123",
"short_url": "https://qck.sh/abc123",
"original_url": "https://example.com",
"created_at": "2026-04-08T12:00:00Z"
},
"meta": {
"request_id": "0190a8b2-...",
"timestamp": "2026-04-08T12:00:00Z",
"status": 201
}
}
Terminal window
curl https://qck.sh/public-api/v1/links/{id}/stats \
-H "X-API-Key: qck_your_api_key_here"