Funnel Definition
Return the saved definition of a funnel.
curl -X GET "https://api.beacon.hard.al/v1/funnels/123e4567-e89b-12d3-a456-426614174000?tenantId=123e4567-e89b-12d3-a456-426614174000" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"
import requests
import json
url = "https://api.beacon.hard.al/v1/funnels/123e4567-e89b-12d3-a456-426614174000?tenantId=123e4567-e89b-12d3-a456-426614174000"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch("https://api.beacon.hard.al/v1/funnels/123e4567-e89b-12d3-a456-426614174000?tenantId=123e4567-e89b-12d3-a456-426614174000", {
method: "GET",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api.beacon.hard.al/v1/funnels/123e4567-e89b-12d3-a456-426614174000?tenantId=123e4567-e89b-12d3-a456-426614174000", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.beacon.hard.al/v1/funnels/123e4567-e89b-12d3-a456-426614174000?tenantId=123e4567-e89b-12d3-a456-426614174000')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"funnelId": "c41d9f0a-3b76-4e21-a5c8-9e2f7d1b6a34",
"funnelName": "Checkout funnel",
"tenantId": "2f1c7c3e-6c1a-4f1e-9b7a-2d8e4c1a9f10",
"sourceId": "7b0e5a54-1d43-4c8e-8d2f-5a9c3e6b1f27",
"createdAt": "2026-09-15T08:30:00.000Z",
"updatedAt": "2026-09-15T08:30:00.000Z",
"steps": [
{
"stepOrder": 1,
"stepType": "page",
"stepValue": "/pricing"
},
{
"stepOrder": 2,
"stepType": "event",
"stepValue": "add_to_cart"
},
{
"stepOrder": 3,
"stepType": "event",
"stepValue": "purchase"
}
],
"breakdowns": [
{
"breakdownKey": "channel",
"breakdownLabel": "Channel"
}
]
},
"timestamp": "2026-11-01T09:30:00.000Z",
"path": "/v1/funnels/{funnelId}",
"requestId": "req_01JD2V8Q9Z6R4XK7T3M5N8P2WA"
}
{
"success": false,
"error": {
"code": "tenant-required",
"message": "tenant-required"
},
"timestamp": "2026-11-01T09:30:00.000Z",
"path": "/v1/funnels/{funnelId}",
"requestId": "req_01JD2V8Q9Z6R4XK7T3M5N8P2WA"
}
{
"success": false,
"error": {
"code": "validation-error",
"message": "Validation failed: Expected number to be greater or equal to 1",
"details": {
"field": "",
"message": "Expected number to be greater or equal to 1"
}
},
"timestamp": "2026-11-01T09:30:00.000Z",
"path": "/v1/funnels/{funnelId}",
"requestId": "req_01JD2V8Q9Z6R4XK7T3M5N8P2WA"
}
{
"success": false,
"error": {
"code": "bearer-required",
"message": "bearer-required"
},
"timestamp": "2026-11-01T09:30:00.000Z",
"path": "/v1/funnels/{funnelId}",
"requestId": "req_01JD2V8Q9Z6R4XK7T3M5N8P2WA"
}
{
"success": false,
"error": {
"code": "invalid-credential",
"message": "invalid-credential"
},
"timestamp": "2026-11-01T09:30:00.000Z",
"path": "/v1/funnels/{funnelId}",
"requestId": "req_01JD2V8Q9Z6R4XK7T3M5N8P2WA"
}
{
"success": false,
"error": {
"code": "credential-revoked",
"message": "credential-revoked"
},
"timestamp": "2026-11-01T09:30:00.000Z",
"path": "/v1/funnels/{funnelId}",
"requestId": "req_01JD2V8Q9Z6R4XK7T3M5N8P2WA"
}
{
"success": false,
"error": {
"code": "credential-expired",
"message": "credential-expired"
},
"timestamp": "2026-11-01T09:30:00.000Z",
"path": "/v1/funnels/{funnelId}",
"requestId": "req_01JD2V8Q9Z6R4XK7T3M5N8P2WA"
}
{
"success": false,
"error": {
"code": "tenant-not-granted",
"message": "tenant-not-granted",
"details": {
"tenantId": "2f1c7c3e-6c1a-4f1e-9b7a-2d8e4c1a9f10"
}
},
"timestamp": "2026-11-01T09:30:00.000Z",
"path": "/v1/funnels/{funnelId}",
"requestId": "req_01JD2V8Q9Z6R4XK7T3M5N8P2WA"
}
{
"success": false,
"error": {
"code": "insufficient-scope",
"message": "insufficient-scope",
"details": {
"required": "reports:read"
}
},
"timestamp": "2026-11-01T09:30:00.000Z",
"path": "/v1/funnels/{funnelId}",
"requestId": "req_01JD2V8Q9Z6R4XK7T3M5N8P2WA"
}
{
"success": false,
"error": {
"code": "tenant-not-found",
"message": "tenant-not-found",
"details": {
"tenantId": "2f1c7c3e-6c1a-4f1e-9b7a-2d8e4c1a9f10"
}
},
"timestamp": "2026-11-01T09:30:00.000Z",
"path": "/v1/funnels/{funnelId}",
"requestId": "req_01JD2V8Q9Z6R4XK7T3M5N8P2WA"
}
{
"success": false,
"error": {
"code": "funnel-not-found",
"message": "funnel-not-found",
"details": {
"funnelId": "c41d9f0a-3b76-4e21-a5c8-9e2f7d1b6a34"
}
},
"timestamp": "2026-11-01T09:30:00.000Z",
"path": "/v1/funnels/{funnelId}",
"requestId": "req_01JD2V8Q9Z6R4XK7T3M5N8P2WA"
}
{
"success": false,
"error": {
"code": "rate-limited",
"message": "rate-limited",
"details": {
"retryAfterSeconds": 30
}
},
"timestamp": "2026-11-01T09:30:00.000Z",
"path": "/v1/funnels/{funnelId}",
"requestId": "req_01JD2V8Q9Z6R4XK7T3M5N8P2WA"
}
/v1/funnels/{funnelId}Target server for requests. Edit to use your own host.
OAuth access token (token exchange) or organization API key.
UUID of a saved funnel, as returned by GET /v1/funnels.
UUID of the tenant to report on. Send it exactly once. GET /v1/workspace/access lists the tenants this credential can read.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. OAuth access token (token exchange) or organization API key.
Path Parameters
UUID of a saved funnel, as returned by GET /v1/funnels.
Query Parameters
UUID of the tenant to report on. Send it exactly once. GET /v1/workspace/access lists the tenants this credential can read.
Responses
true