Acquisition

Get Gain-Flow Funnel

GET
/v1/acquisition/funnel

Volume of each stage of the funnel the organization configured, from exposure to retention, with the proportion between stages.

  • Only the stages configured on the V4MOS.AI platform are returned, ordered by stageOrder, which can skip numbers. With no configured stage, or no measurable stage, the response is stages: [].
  • count is event volume summed across the connected tools, not distinct people: impressions (EXPOSURE); clicks and sessions (ATTENTION); leads and add-to-carts (INTEREST); MQLs and started checkouts (QUALIFICATION); meetings, proposals, customer data and completed checkouts (COMMITMENT); CRM wins and paid orders (DECISION); repurchases (RETENTION).
  • scale: "media" marks the media stages (EXPOSURE, ATTENTION); the others are customer. The step between the two groups is a change of unit, not a conversion rate.
  • The stage display name is not returned: use stageId. source tells which tools produced the value.
  • pctOfFirst and pctOfPrevious are 0 (not null) when the reference stage has a zero count.

Authorization

ClientIdAuthClientSecretAuth
headerx-client-id<token>

Client ID

headerx-client-secret<token>

Client secret

Query Parameters

organizationId*string

Organization identifier (required). A missing or non-string value is a 400.

period?stringDeprecated

Deprecated: use startDate and endDate, which take precedence when sent. Relative period of N days ending today, inclusive (7d = today and the 6 days before it). "Today" is the UTC calendar day, and that last day is still partial. Accepted values: 7d, 30d, 90d, 1y. Omitted or empty means 30d; any other value returns 400.

Default"30d"
Value in"7d""30d""90d""1y"
startDate?string

Start of the period (YYYY-MM-DD, inclusive). Send it together with endDate: sending only one of them returns 400. Takes precedence over period. Send the date only: a date with a time or a date that does not exist returns 400. Rules: startDate ≤ endDate, neither date in the future (UTC), and at most 365 days between the dates (up to 366 days in the period). The comparison uses the period of the same length right before it.

Formatdate
endDate?string

End of the period (YYYY-MM-DD, inclusive). See startDate for the rules. When the end date is today, that last day is still partial, because the day's data keeps arriving.

Formatdate

Response Body

Funnel returned successfully

application/json
  1. response
stages*array<>

Only the stages the organization configured, ordered by stageOrder. Empty when no funnel stage was configured or when no stage could be measured.

curl -X GET "https://example.com/v1/acquisition/funnel?organizationId=c0ad4763-173e-4a05-9cff-5208c8ea5f6a&period=30d&startDate=2026-03-11&endDate=2026-03-22"

{  "stages": [    {      "stageId": "EXPOSURE",      "stageOrder": 1,      "count": 1250000,      "pctOfFirst": 100,      "pctOfPrevious": 100,      "previousCount": 1250000,      "scale": "media",      "source": {        "tools": [          "META_ADS",          "GOOGLE_ADS"        ],        "fields": [          "impressions",          "impressions"        ],        "resolution": "sum",        "label": "Meta Ads · Impressões + Google Ads · Impressões"      },      "frequency": 3.33    },    {      "stageId": "ATTENTION",      "stageOrder": 2,      "count": 18750,      "pctOfFirst": 1.5,      "pctOfPrevious": 1.5,      "previousCount": 1250000,      "scale": "media",      "source": {        "tools": [          "GA4"        ],        "fields": [          "session_start"        ],        "resolution": "single",        "label": "GA4 · Sessões"      }    },    {      "stageId": "QUALIFICATION",      "stageOrder": 4,      "count": 2100,      "pctOfFirst": 0.17,      "pctOfPrevious": 11.2,      "previousCount": 18750,      "scale": "customer",      "source": {        "tools": [          "GA4"        ],        "fields": [          "begin_checkout"        ],        "resolution": "single",        "label": "GA4 · Initiate checkout"      }    },    {      "stageId": "DECISION",      "stageOrder": 6,      "count": 420,      "pctOfFirst": 0.03,      "pctOfPrevious": 20,      "previousCount": 2100,      "scale": "customer",      "source": {        "tools": [          "VTEX"        ],        "fields": [          "orders_paid"        ],        "resolution": "single",        "label": "VTEX · Pedido pago"      }    },    {      "stageId": "RETENTION",      "stageOrder": 7,      "count": 63,      "pctOfFirst": 0.01,      "pctOfPrevious": 15,      "previousCount": 420,      "scale": "customer",      "source": {        "tools": [          "VTEX"        ],        "fields": [          "repurchase"        ],        "resolution": "single",        "label": "VTEX · Recompra"      }    }  ]}