POST
/api/remote/start BearerStart Tunnel
Start a Cloudflare tunnel to expose PocketPaw's local server with a public HTTPS URL. Required for WhatsApp Business webhooks and remote dashboard access without port forwarding.
Overview
Starts a Cloudflare quick tunnel that exposes the local dashboard to the internet. No Cloudflare account is required — uses the free trycloudflare.com domain.
Warning
When a tunnel is active, localhost auth bypass is disabled. All requests must include a valid token.
Response (Success)
url stringThe public tunnel URL
active booleantrueResponse (Failure)
error stringError message
active booleanfalsecurl -X POST "http://localhost:8000/api/remote/start" \ -H "Authorization: Bearer <token>"const response = await fetch("http://localhost:8000/api/remote/start", { method: "POST", headers: { "Authorization": "Bearer <token>" }});const data = await response.json();console.log(data);import requests
response = requests.post( "http://localhost:8000/api/remote/start", headers={"Authorization": "Bearer <token>"})print(response.json()){ "url": "https://steep-mountain-abc123.trycloudflare.com", "active": true}Info
Requires cloudflared to be installed on the system. Install via brew install cloudflared or apt install cloudflared.
Was this page helpful?
Request
curl -X POST "http://localhost:8000/api/remote/start" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>"const response = await fetch("http://localhost:8000/api/remote/start", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer <token>"
},
});
const data = await response.json();
console.log(data);import requests
response = requests.post(
"http://localhost:8000/api/remote/start",
headers={'Content-Type':'application/json','Authorization':'Bearer <token>'},
)
print(response.json())package main
import (
"fmt"
"net/http"
"io"
)
func main() {
req, _ := http.NewRequest("POST", "http://localhost:8000/api/remote/start", nil)
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer <token>")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}Response
Send a request to see the response
Authorization
Headers
Body
Response