Skip to main content

Static Tunnels API

Manage reserved static tunnel slugs for persistent HTTP tunnel subdomains.

Paid Feature

Static tunnels require a paid plan. See Plans & Billing.

List static tunnels

GET /api/v1/organizations/:id/static-tunnels
curl https://app.hooklistener.com/api/v1/organizations/org_abc123/static-tunnels \
-H "Authorization: Bearer hklst_your_api_key"

Response:

{
"data": [
{
"id": "st_abc123",
"slug": "my-cool-app",
"name": "Local App",
"created_at": "2025-01-15T10:00:00Z"
}
]
}

Create a static tunnel slug

POST /api/v1/organizations/:id/static-tunnels
curl -X POST https://app.hooklistener.com/api/v1/organizations/org_abc123/static-tunnels \
-H "Authorization: Bearer hklst_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"slug": "my-cool-app",
"name": "Local App"
}'

Request body:

FieldTypeRequiredDescription
slugstringYesSubdomain to reserve
namestringNoDisplay name

Response: 201 Created

{
"id": "st_abc123",
"slug": "my-cool-app",
"name": "Local App",
"created_at": "2025-01-15T10:00:00Z"
}

Delete a static tunnel slug

DELETE /api/v1/organizations/:id/static-tunnels/:slug_id
curl -X DELETE https://app.hooklistener.com/api/v1/organizations/org_abc123/static-tunnels/st_abc123 \
-H "Authorization: Bearer hklst_your_api_key"

Response: 204 No Content

Using static tunnel slugs

After creating a slug, use it with the CLI:

hooklistener tunnel --slug my-cool-app --port 3000
# Tunnel URL: https://my-cool-app.hooklistener.dev

See CLI: Static Tunnels for CLI usage.