REST API Documentation
Complete REST API reference for UseClick.io integration
Quick Start
1. Generate API Key
Sign in and visit API Keys Settings to create your first API key.
2. Authentication
All API requests require authentication using an API key in the Authorization header:
Authorization: Bearer uc_live_YOUR_API_KEY_HERE3. Base URL
https://useclick.io/api/v1Rate Limits
API rate limits vary by subscription plan:
Note: Free plan does not have API access. Upgrade to Starter or higher to use the API.
API Endpoints
/api/v1/linksCreate a new short link. Optional: slug (auto-generated if not provided), branded_domain (your custom domain like 'go.yourdomain.com'), group_id (campaign UUID)
Request Body
{
"target_url": "https://example.com",
"slug": "optional-custom-slug",
"branded_domain": "go.yourdomain.com",
"group_id": "optional-campaign-uuid"
}Example Request
curl -X POST https://useclick.io/api/v1/links \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"target_url": "https://example.com",
"slug": "my-link",
"branded_domain": "go.yourdomain.com"
}'/api/v1/linksList all your links
Example Request
curl -X GET https://useclick.io/api/v1/links \
-H "Authorization: Bearer YOUR_API_KEY"/api/v1/links/:slugGet details of a specific link by slug
Example Request
curl -X GET https://useclick.io/api/v1/links/my-slug \
-H "Authorization: Bearer YOUR_API_KEY"/api/v1/links/:slugUpdate an existing link. All fields optional. Use branded_domain (your custom domain) or group_id (campaign UUID)
Request Body
{
"target_url": "https://new-url.com",
"branded_domain": "go.yourdomain.com",
"group_id": "optional-campaign-uuid"
}Example Request
curl -X PUT https://useclick.io/api/v1/links/my-slug \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"target_url": "https://new-url.com",
"branded_domain": "go.yourdomain.com"
}'/api/v1/links/:slugDelete a link (this also deletes all associated clicks)
Example Request
curl -X DELETE https://useclick.io/api/v1/links/my-slug \
-H "Authorization: Bearer YOUR_API_KEY"/api/v1/clicksGet click analytics for your links. Optional: add ?link_slug=your-slug to filter by specific link
Query Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| link_slug | string | - | Filter by specific link slug (optional) |
Example Request
curl -X GET "https://useclick.io/api/v1/clicks?link_slug=my-slug" \
-H "Authorization: Bearer YOUR_API_KEY"/api/v1/auth/verifyVerify your API key is valid and get authentication status
Example Request
curl -X GET https://useclick.io/api/v1/auth/verify \
-H "Authorization: Bearer YOUR_API_KEY"/api/v1/links/:slug/geo-targetsGet all geo-targeting rules for a specific link
Example Request
curl -X GET https://useclick.io/api/v1/links/my-slug/geo-targets \
-H "Authorization: Bearer YOUR_API_KEY"/api/v1/links/:slug/geo-targetsCreate a new geo-targeting rule for a link (redirect visitors from specific countries to different URLs)
Request Body
{
"country_code": "US",
"target_url": "https://us-specific-url.com"
}Example Request
curl -X POST https://useclick.io/api/v1/links/my-slug/geo-targets \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"country_code": "US",
"target_url": "https://us-specific-url.com"
}'/api/v1/links/:slug/geo-targetsDelete a geo-targeting rule for a specific country
Query Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| country_code | string | - | 2-letter ISO country code (e.g., US, GB, DE) |
Example Request
curl -X DELETE "https://useclick.io/api/v1/links/my-slug/geo-targets?country_code=US" \
-H "Authorization: Bearer YOUR_API_KEY"Response Format
Success Response
{
"data": { ... }
}Error Response
{
"error": {
"code": "ERROR_CODE",
"message": "Human readable error message"
}
}Common Error Codes
UNAUTHORIZED- Invalid or missing API keyRATE_LIMIT_EXCEEDED- Too many requestsNOT_FOUND- Resource not foundVALIDATION_ERROR- Invalid request dataINTERNAL_ERROR- Server error
Need Help?
If you have questions or need assistance with the API, please contact our support team at [email protected]
Note: Response times vary by plan. See our pricing page for details.