---
title: "Get Corpus Funnel"
method: GET
path: "/corpus/funnel"
tags: ["corpus"]
---

# Get Corpus Funnel

`GET /corpus/funnel`

## Request

- Base URL: `https://app.teetra.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.teetra.com/corpus/funnel`
- Auth: none declared

Aggregate funnel telemetry and dynamic moat milestone tracking report (Lane 8.7).

HOLE FIX (R3 verify pass, issue 3 sweep): with no ``adapter_id`` this is a genuine
platform-wide rollup (no single tenant's data) and stays public, matching every other
route in this file's own claim to be "producer-scoped" plus the existing public-endpoint
test (``test_get_corpus_funnel_endpoint``). But filtered BY ``adapter_id`` it returns
that ONE adapter's own trial/conversion counts and conversion rate — cross-org business
telemetry — and had NO ownership check, unlike every other route in this module. Reuses
the exact same ``verify_corpus_owner`` dependency the sibling routes use (DRY): a filtered
call now requires the caller to own the target adapter, same as ``/aggregates``/``/clusters``/``/reach``.

## Query parameters

- `adapter_id` string, nullable: Optional adapter filter

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/teetra/apis/warrant.md) · [All operations](https://skmtc.dev/teetra/apis/warrant/llms.txt) · [OpenAPI document](https://skmtc.dev/teetra/apis/warrant/revisions/a33505db716f?raw)
