jo4
URL shortener, QR code generator, and link analytics API.
Installation
npx clawhub@latest install jo4View the full skill documentation and source below.
Documentation
Jo4 - URL Shortener & Analytics API
Jo4 is a modern URL shortening service with QR code generation and detailed link analytics.
Authentication
All protected endpoints require an API key. Set your API key as an environment variable:
export JO4_API_KEY="your-api-key"
Get your API key from:
API Base URL
Endpoints
Create Short URL (Authenticated)
curl -X POST "" \
-H "X-API-Key: $JO4_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"longUrl": "",
"title": "My Link"
}'
Request Body:
longUrl(required) - The destination URL (max 2048 chars)title(optional) - Link title (max 200 chars)description(optional) - Link description (max 500 chars)shortUrl(optional) - Custom alias (max 16 chars, alphanumeric/hyphen/underscore)expirationTime(optional) - Unix timestamp for link expirationpasswordProtected(optional) - Boolean to enable password protectionpassword(optional) - Password if protected (4-128 chars)
UTM Parameters:
utmSource,utmMedium,utmCampaign,utmTerm,utmContent
Response:
{
"response": {
"id": 123,
"slug": "abc123",
"shortUrl": "abc123",
"fullShortUrl": "",
"longUrl": "",
"title": "My Link",
"qrCodeUrl": ""
}
}
Create Anonymous Short URL (No Auth Required)
curl -X POST "" \
-H "Content-Type: application/json" \
-d '{"longUrl": ""}'
Limited features, no analytics access.
Get URL Details
curl -X GET "" \
-H "X-API-Key: $JO4_API_KEY"
Get URL Analytics
curl -X GET "" \
-H "X-API-Key: $JO4_API_KEY"
Response includes:
- Total clicks
- Clicks by date
- Geographic distribution
- Device/browser breakdown
- Referrer sources
List My URLs
curl -X GET "" \
-H "X-API-Key: $JO4_API_KEY"
Update URL
curl -X PUT "" \
-H "X-API-Key: $JO4_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Updated Title",
"longUrl": ""
}'
Delete URL
curl -X DELETE "" \
-H "X-API-Key: $JO4_API_KEY"
QR Codes
Every short URL automatically gets a QR code at:
Rate Limits
Rate limits vary by plan:
- Free: 60 requests/minute
- Pro: Up to 10,000 requests/minute
- Anonymous (public endpoints): 10 requests/minute
API Documentation
Full OpenAPI/Swagger documentation:
Common Use Cases
1. Shorten a URL for sharing
curl -X POST "" \
-H "X-API-Key: $JO4_API_KEY" \
-H "Content-Type: application/json" \
-d '{"longUrl": "", "title": "Article"}'
2. Create campaign tracking link
curl -X POST "" \
-H "X-API-Key: $JO4_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"longUrl": "",
"title": "Q1 Campaign",
"utmSource": "twitter",
"utmMedium": "social",
"utmCampaign": "q1-2026"
}'
3. Create expiring link
curl -X POST "" \
-H "X-API-Key: $JO4_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"longUrl": "",
"title": "Limited Offer",
"expirationTime": 1738454400
}'
Error Codes
| Code | Meaning |
| 400 | Bad request - invalid parameters |
| 401 | Unauthorized - missing or invalid API key |
| 403 | Forbidden - insufficient permissions |
| 404 | Not found - URL doesn't exist |
| 429 | Rate limit exceeded |