FunnelsFunnel Breakdown

Funnel Breakdown

Return funnel performance grouped by the selected breakdown dimensions.

curl -X GET "https://api.beacon.hard.al/v1/funnels/123e4567-e89b-12d3-a456-426614174000/breakdown?tenantId=123e4567-e89b-12d3-a456-426614174000&timeframe=today&startDate=example_string&endDate=example_string&timezone=example_string&breakdownLimit=example_string&breakdownOffset=example_string&breakdownSearch=example_string&breakdownSortBy=share&breakdownSortStep=example_string&breakdownSortDirection=asc&breakdownKeys=example_string" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "success": true,
  "data": {
    "range": {
      "startDate": "2026-10-01",
      "endDate": "2026-10-07",
      "timezone": "Europe/Istanbul"
    },
    "breakdownTable": {
      "columns": {
        "breakdowns": [
          {
            "breakdownKey": "channel",
            "breakdownLabel": "Channel"
          }
        ],
        "steps": [
          {
            "stepOrder": 1,
            "stepName": "/pricing"
          },
          {
            "stepOrder": 2,
            "stepName": "add_to_cart"
          },
          {
            "stepOrder": 3,
            "stepName": "purchase"
          }
        ]
      },
      "totalRow": {
        "breakdownValues": {},
        "share": 100,
        "stepCounts": [
          940,
          235,
          113
        ],
        "stepRates": [
          100,
          100,
          100
        ]
      },
      "rows": [
        {
          "breakdownValues": {
            "channel": "Direct"
          },
          "share": 40,
          "stepCounts": [
            376,
            94,
            45
          ],
          "stepRates": [
            40,
            40,
            39.82
          ]
        },
        {
          "breakdownValues": {
            "channel": "OrganicSearch"
          },
          "share": 35,
          "stepCounts": [
            329,
            82,
            40
          ],
          "stepRates": [
            35,
            34.89,
            35.4
          ]
        },
        {
          "breakdownValues": {
            "channel": "PaidSearch"
          },
          "share": 25,
          "stepCounts": [
            235,
            59,
            28
          ],
          "stepRates": [
            25,
            25.11,
            24.78
          ]
        }
      ],
      "pagination": {
        "limit": 25,
        "offset": 0,
        "total": 3
      },
      "sort": {
        "sortBy": "share",
        "sortStep": null,
        "sortDirection": "desc"
      },
      "search": ""
    }
  },
  "timestamp": "2026-11-01T09:30:00.000Z",
  "path": "/v1/funnels/{funnelId}/breakdown",
  "requestId": "req_01JD2V8Q9Z6R4XK7T3M5N8P2WA"
}
GET
/v1/funnels/{funnelId}/breakdown
GET
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

OAuth access token (token exchange) or organization API key.

OAuth access token (token exchange) or organization API key.
path
funnelIdstring
Required

UUID of a saved funnel, as returned by GET /v1/funnels.

Format: uuid
query
tenantIdstring
Required

UUID of the tenant to report on. Send it exactly once. GET /v1/workspace/access lists the tenants this credential can read.

Format: uuid
query
timeframestring

Reporting period. The presets today, yesterday, last7days and last30days cover whole calendar days ending today in the request timezone; last7days is today and the six days before it. Use custom together with startDate and endDate. Defaults to the last 30 days.

query
startDatestring

First day of a custom period, YYYY-MM-DD, inclusive. Send it only with timeframe=custom, together with endDate.

query
endDatestring

Last day of a custom period, YYYY-MM-DD, inclusive. Send it only with timeframe=custom; it must not be before startDate.

query
timezonestring

IANA time zone name such as Europe/Istanbul or America/New_York. It sets the calendar-day boundaries of the period and of the time buckets. Defaults to Europe/Istanbul.

Min length: 1 • Max length: 100
query
breakdownLimitstring

Maximum number of breakdown rows to return, 1 to 100. Defaults to 25.

Min: 1 • Max: 100
query
breakdownOffsetstring

Number of breakdown rows to skip, 0 to 10000. Defaults to 0.

Min: 0 • Max: 10000
query
breakdownSearchstring

Only return rows whose breakdown value contains this text. Case-insensitive.

query
breakdownSortBystring

share sorts by the share of funnel entries, breakdown alphabetically and stepCount by the count of the step in breakdownSortStep. Defaults to share.

query
breakdownSortStepstring

Step number to sort by when breakdownSortBy=stepCount, from 1 to the number of steps. Defaults to 1.

Min: 1 • Max: 10
query
breakdownSortDirectionstring

asc or desc. Defaults to desc.

query
breakdownKeysstring

Comma-separated list of up to two dimensions: source, medium, channel, country, city, device, browser, os. With two keys the second is nested under the first in children. Defaults to the breakdowns saved with the funnel.

Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. OAuth access token (token exchange) or organization API key.

Path Parameters

funnelIdstring
Required

UUID of a saved funnel, as returned by GET /v1/funnels.

Query Parameters

tenantIdstring
Required

UUID of the tenant to report on. Send it exactly once. GET /v1/workspace/access lists the tenants this credential can read.

timeframestring

Reporting period. The presets today, yesterday, last7days and last30days cover whole calendar days ending today in the request timezone; last7days is today and the six days before it. Use custom together with startDate and endDate. Defaults to the last 30 days.

startDatestring

First day of a custom period, YYYY-MM-DD, inclusive. Send it only with timeframe=custom, together with endDate.

endDatestring

Last day of a custom period, YYYY-MM-DD, inclusive. Send it only with timeframe=custom; it must not be before startDate.

timezonestring

IANA time zone name such as Europe/Istanbul or America/New_York. It sets the calendar-day boundaries of the period and of the time buckets. Defaults to Europe/Istanbul.

breakdownLimitstring

Maximum number of breakdown rows to return, 1 to 100. Defaults to 25.

breakdownOffsetstring

Number of breakdown rows to skip, 0 to 10000. Defaults to 0.

breakdownSearchstring

Only return rows whose breakdown value contains this text. Case-insensitive.

breakdownSortBystring

share sorts by the share of funnel entries, breakdown alphabetically and stepCount by the count of the step in breakdownSortStep. Defaults to share.

breakdownSortStepstring

Step number to sort by when breakdownSortBy=stepCount, from 1 to the number of steps. Defaults to 1.

breakdownSortDirectionstring

asc or desc. Defaults to desc.

breakdownKeysstring

Comma-separated list of up to two dimensions: source, medium, channel, country, city, device, browser, os. With two keys the second is nested under the first in children. Defaults to the breakdowns saved with the funnel.

Responses

successboolean
Required
Allowed values:true
dataobject
Required
timestampstring
Required
pathstring
Required
requestIdstring
Required