curl --request GET \
--url https://api.h0p.co/short-link/{id} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.h0p.co/short-link/{id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.h0p.co/short-link/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.h0p.co/short-link/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.h0p.co/short-link/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.h0p.co/short-link/{id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.h0p.co/short-link/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"domain": {
"id": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"domain": "links.example.com",
"isPrimary": true,
"isVerified": true,
"createdAt": "2024-01-15T10:30:00Z"
},
"rules": [
{
"priority": 0,
"destination": {
"type": "link",
"value": "https://example.com",
"threatTypes": null
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"countries": [
"US",
"CA",
"GB"
],
"languages": [
"en",
"fr",
"es-MX"
],
"osTypes": [
"ios",
"android"
]
}
],
"qrCode": {
"options": {
"data": "https://example.com/abc123",
"type": "svg",
"width": 300,
"height": 300,
"margin": 4,
"image": "https://example.com/logo.png",
"imageOptions": {
"hideBackgroundDots": true,
"imageSize": 0.4,
"crossOrigin": "anonymous",
"margin": 10
},
"dotsOptions": {
"type": "rounded",
"color": "#000000",
"gradient": {
"type": "linear",
"colorStops": [
{
"offset": 0,
"color": "#3B82F6"
},
{
"offset": 1,
"color": "#8B5CF6"
}
],
"rotation": 45
},
"roundSize": true
},
"cornersSquareOptions": {
"type": "square",
"color": "#3B82F6",
"gradient": {
"type": "linear",
"colorStops": [
{
"offset": 0,
"color": "#3B82F6"
},
{
"offset": 1,
"color": "#8B5CF6"
}
],
"rotation": 45
}
},
"cornersDotOptions": {
"type": "dot",
"color": "#8B5CF6",
"gradient": {
"type": "linear",
"colorStops": [
{
"offset": 0,
"color": "#3B82F6"
},
{
"offset": 1,
"color": "#8B5CF6"
}
],
"rotation": 45
}
},
"backgroundOptions": {
"round": 0.1,
"color": "#FFFFFF"
}
},
"imageId": "01933eb8-541f-7000-a9f4-e4eee80ff04e"
},
"destination": {
"type": "link",
"value": "https://example.com",
"threatTypes": null
},
"metaTags": {
"title": "Amazing Product Launch 2024",
"description": "Be the first to discover our revolutionary new product.",
"imageId": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"image": {
"id": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"key": "meta-tag/01933eb8-541f-7000-a9f4-e4eee80ff04e.png"
}
},
"tags": [
{
"id": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"name": "social-media",
"color": "#10B981"
}
],
"id": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"organizationId": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"isActive": true,
"qrCodeId": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"domainId": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"folderId": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"slug": "summer-sale",
"originUrl": "https://links.example.com/summer-sale",
"expiresAt": "2024-12-31T23:59:59Z",
"maxClicks": 1000,
"currentClicks": 247,
"hasPassword": false,
"cloaking": false,
"destinationId": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-16T14:20:00Z"
}{
"code": "ACTION_NOT_ALLOWED",
"message": "You do not have permission to delete domains",
"resource": "domains",
"action": "delete"
}{
"code": "NOT_FOUND"
}Get short link details
Retrieve complete short link configuration including destination, rules, QR code, meta tags, statistics, and threat information.
curl --request GET \
--url https://api.h0p.co/short-link/{id} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.h0p.co/short-link/{id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.h0p.co/short-link/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.h0p.co/short-link/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.h0p.co/short-link/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.h0p.co/short-link/{id}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.h0p.co/short-link/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"domain": {
"id": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"domain": "links.example.com",
"isPrimary": true,
"isVerified": true,
"createdAt": "2024-01-15T10:30:00Z"
},
"rules": [
{
"priority": 0,
"destination": {
"type": "link",
"value": "https://example.com",
"threatTypes": null
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"countries": [
"US",
"CA",
"GB"
],
"languages": [
"en",
"fr",
"es-MX"
],
"osTypes": [
"ios",
"android"
]
}
],
"qrCode": {
"options": {
"data": "https://example.com/abc123",
"type": "svg",
"width": 300,
"height": 300,
"margin": 4,
"image": "https://example.com/logo.png",
"imageOptions": {
"hideBackgroundDots": true,
"imageSize": 0.4,
"crossOrigin": "anonymous",
"margin": 10
},
"dotsOptions": {
"type": "rounded",
"color": "#000000",
"gradient": {
"type": "linear",
"colorStops": [
{
"offset": 0,
"color": "#3B82F6"
},
{
"offset": 1,
"color": "#8B5CF6"
}
],
"rotation": 45
},
"roundSize": true
},
"cornersSquareOptions": {
"type": "square",
"color": "#3B82F6",
"gradient": {
"type": "linear",
"colorStops": [
{
"offset": 0,
"color": "#3B82F6"
},
{
"offset": 1,
"color": "#8B5CF6"
}
],
"rotation": 45
}
},
"cornersDotOptions": {
"type": "dot",
"color": "#8B5CF6",
"gradient": {
"type": "linear",
"colorStops": [
{
"offset": 0,
"color": "#3B82F6"
},
{
"offset": 1,
"color": "#8B5CF6"
}
],
"rotation": 45
}
},
"backgroundOptions": {
"round": 0.1,
"color": "#FFFFFF"
}
},
"imageId": "01933eb8-541f-7000-a9f4-e4eee80ff04e"
},
"destination": {
"type": "link",
"value": "https://example.com",
"threatTypes": null
},
"metaTags": {
"title": "Amazing Product Launch 2024",
"description": "Be the first to discover our revolutionary new product.",
"imageId": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"image": {
"id": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"key": "meta-tag/01933eb8-541f-7000-a9f4-e4eee80ff04e.png"
}
},
"tags": [
{
"id": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"name": "social-media",
"color": "#10B981"
}
],
"id": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"organizationId": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"isActive": true,
"qrCodeId": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"domainId": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"folderId": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"slug": "summer-sale",
"originUrl": "https://links.example.com/summer-sale",
"expiresAt": "2024-12-31T23:59:59Z",
"maxClicks": 1000,
"currentClicks": 247,
"hasPassword": false,
"cloaking": false,
"destinationId": "01933eb8-541f-7000-a9f4-e4eee80ff04e",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-16T14:20:00Z"
}{
"code": "ACTION_NOT_ALLOWED",
"message": "You do not have permission to delete domains",
"resource": "domains",
"action": "delete"
}{
"code": "NOT_FOUND"
}Authorizations
API Key authentication for programmatic access.
How to use:
- Create an API key from your dashboard settings
- Include the key in the
x-api-keyheader with each request - API keys have granular permissions (domains, shortLinks, files, stats, apiKeys)
Example:
curl -H "x-api-key: your-api-key-here" https://api.h0p.co/short-link/list
Types of API keys:
- User keys: Linked to your user account (one per organization)
- Bot keys: Autonomous machine users (one per organization)
Security notes:
- Keep your API keys secure and never commit them to version control
- API keys cannot access authentication endpoints (/auth/*)
- Keys can be revoked at any time from the dashboard
Path Parameters
Unique identifier in UUID v7 format
"01933eb8-541f-7000-a9f4-e4eee80ff04e"
Response
Short link details retrieved successfully
Complete short link with all nested objects
Domain details
Show child attributes
Show child attributes
Smart routing rules with IDs
Show child attributes
Show child attributes
QR code configuration
Show child attributes
Show child attributes
Main destination configuration
Show child attributes
Show child attributes
{ "type": "link", "value": "https://example.com", "threatTypes": null }
Meta tags configuration
Show child attributes
Show child attributes
{ "title": "Amazing Product Launch 2024", "description": "Be the first to discover our revolutionary new product.", "imageId": "01933eb8-541f-7000-a9f4-e4eee80ff04e", "image": { "id": "01933eb8-541f-7000-a9f4-e4eee80ff04e", "key": "meta-tag/01933eb8-541f-7000-a9f4-e4eee80ff04e.png" } }
Associated tags
Show child attributes
Show child attributes
Short link UUID
"01933eb8-541f-7000-a9f4-e4eee80ff04e"
Organization UUID
"01933eb8-541f-7000-a9f4-e4eee80ff04e"
Whether link is active
true
QR code configuration UUID
"01933eb8-541f-7000-a9f4-e4eee80ff04e"
Domain UUID
"01933eb8-541f-7000-a9f4-e4eee80ff04e"
Folder UUID
"01933eb8-541f-7000-a9f4-e4eee80ff04e"
Short link slug
"summer-sale"
Complete short URL
"https://links.example.com/summer-sale"
Expiration timestamp
"2024-12-31T23:59:59Z"
Maximum click limit
1000
Current click count
x >= 0247
Whether link is password protected
false
Whether destination is hidden
false
Destination configuration UUID
"01933eb8-541f-7000-a9f4-e4eee80ff04e"
Creation timestamp
"2024-01-15T10:30:00Z"
Last update timestamp
"2024-01-16T14:20:00Z"