Website Conversion Intelligence API Documentation

Read supplied analytics exports and funnel counts to measure drop-offs, tracking gaps, and segment differences without accessing analytics accounts. Payment is the exact USDC price on Base with x402.

POSThttps://brainiac.software/api/v1/conversion-intelligence/analytics-funnel-analyze$0.04 USDC

Analyze an analytics funnel

Calculate stage-to-stage conversion rates and drop-offs from supplied funnel counts. Missing counts are not filled in, and a drop-off is not treated as a proven cause.

Body

FieldRequiredNotes
textNostring
jsonNostring
csvNostring
fileNoobject; Object
funnelsNoarray; Array
stagesNoarray; Array
pagesNoarray; Array
eventsNoarray; Array
expectedEventsNoarray; Array
sourcesNoarray; Array
formsNoarray; Array
fieldsNoarray; Array
segmentsNoarray; Array
minSampleNointeger

Request exampleJSON

{
  "text": "Funnel: F-1 | Signup\nStage: F-1 | S1 | Landing | 1 | 1000\nStage: F-1 | S2 | Signup form | 2 | 400\nStage: F-1 | S3 | Confirmed | 3 | 120\nAds caused the drop.\n"
}

Response exampleJSON

{
  "checkedAt": "2026-11-04T16:00:00.000Z",
  "status": "analyzed",
  "funnels": [
    {
      "id": "F-1",
      "name": "Signup",
      "stageCount": 3,
      "overallRate": 0.12,
      "overallRateSupplied": true,
      "largestDropStageId": "S2",
      "largestDrop": 0.7,
      "largestDropSupplied": true,
      "stages": [
        {
          "id": "S1",
          "name": "Landing",
          "order": 1,
          "count": 1000,
          "countSupplied": true,
          "toNextRate": 0.4,
          "toNextRateSupplied": true,
          "dropOff": 0.6,
          "dropOffSupplied": true
        },
        {
          "id": "S2",
          "name": "Signup form",
          "order": 2,
          "count": 400,
          "countSupplied": true,
          "toNextRate": 0.3,
          "toNextRateSupplied": true,
          "dropOff": 0.7,
          "dropOffSupplied": true
        },
        {
          "id": "S3",
          "name": "Confirmed",
          "order": 3,
          "count": 120,
          "countSupplied": true,
          "toNextRate": 0,
          "toNextRateSupplied": false,
          "dropOff": 0,
          "dropOffSupplied": false
        }
      ],
      "causationClaimed": false
    }
  ],
  "analyticsAccessed": false,
  "trafficInvented": false,
  "conversionsInvented": false,
  "revenueInvented": false,
  "causationClaimed": false,
  "findings": [
    {
      "kind": "ignored",
      "code": "unlabeled_line",
      "subject": "",
      "detail": "Lines without a recognized label were not read and their text was not copied."
    }
  ],
  "limitations": [
    "Funnel stages, pages, events, sources, forms, and segments are copied only from labeled counts supplied by the caller.",
    "Conversion rates and drop-offs use only those counts. Missing counts are not filled in.",
    "A difference between segments or sources is an association in the supplied numbers, not a proven cause.",
    "Segment comparisons run only when both samples meet the disclosed minimum size.",
    "No analytics or advertising account is accessed, and no traffic, conversions, or revenue are invented."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/conversion-intelligence/analytics-funnel-analyze" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "text": "Funnel: F-1 | Signup\nStage: F-1 | S1 | Landing | 1 | 1000\nStage: F-1 | S2 | Signup form | 2 | 400\nStage: F-1 | S3 | Confirmed | 3 | 120\nAds caused the drop.\n"
}
JSON
POSThttps://brainiac.software/api/v1/conversion-intelligence/landing-page-dropoff-detect$0.04 USDC

Detect landing page drop-off

Rank supplied pages by measured exit rate from views and exits. Rates use only caller counts and do not claim why visitors left.

Body

FieldRequiredNotes
textNostring
jsonNostring
csvNostring
fileNoobject; Object
funnelsNoarray; Array
stagesNoarray; Array
pagesNoarray; Array
eventsNoarray; Array
expectedEventsNoarray; Array
sourcesNoarray; Array
formsNoarray; Array
fieldsNoarray; Array
segmentsNoarray; Array
minSampleNointeger

Request exampleJSON

{
  "pages": [
    {
      "id": "P1",
      "path": "/pricing",
      "name": "Pricing",
      "views": 1000,
      "exits": 700,
      "conversions": 40
    },
    {
      "id": "P2",
      "path": "/home",
      "name": "Home",
      "views": 2000,
      "exits": 600,
      "conversions": 100
    }
  ]
}

Response exampleJSON

{
  "checkedAt": "2026-11-04T16:00:00.000Z",
  "status": "detected",
  "pages": [
    {
      "id": "P1",
      "path": "/pricing",
      "name": "Pricing",
      "views": 1000,
      "viewsSupplied": true,
      "exits": 700,
      "exitsSupplied": true,
      "conversions": 40,
      "conversionsSupplied": true,
      "exitRate": 0.7,
      "exitRateSupplied": true,
      "conversionRate": 0.04,
      "conversionRateSupplied": true,
      "dropOffMeasured": true,
      "causationClaimed": false
    },
    {
      "id": "P2",
      "path": "/home",
      "name": "Home",
      "views": 2000,
      "viewsSupplied": true,
      "exits": 600,
      "exitsSupplied": true,
      "conversions": 100,
      "conversionsSupplied": true,
      "exitRate": 0.3,
      "exitRateSupplied": true,
      "conversionRate": 0.05,
      "conversionRateSupplied": true,
      "dropOffMeasured": true,
      "causationClaimed": false
    }
  ],
  "largestExitPath": "/pricing",
  "largestExitRate": 0.7,
  "largestExitRateSupplied": true,
  "analyticsAccessed": false,
  "trafficInvented": false,
  "conversionsInvented": false,
  "revenueInvented": false,
  "causationClaimed": false,
  "findings": [],
  "limitations": [
    "Funnel stages, pages, events, sources, forms, and segments are copied only from labeled counts supplied by the caller.",
    "Conversion rates and drop-offs use only those counts. Missing counts are not filled in.",
    "A difference between segments or sources is an association in the supplied numbers, not a proven cause.",
    "Segment comparisons run only when both samples meet the disclosed minimum size.",
    "No analytics or advertising account is accessed, and no traffic, conversions, or revenue are invented."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/conversion-intelligence/landing-page-dropoff-detect" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "pages": [
    {
      "id": "P1",
      "path": "/pricing",
      "name": "Pricing",
      "views": 1000,
      "exits": 700,
      "conversions": 40
    },
    {
      "id": "P2",
      "path": "/home",
      "name": "Home",
      "views": 2000,
      "exits": 600,
      "conversions": 100
    }
  ]
}
JSON
POSThttps://brainiac.software/api/v1/conversion-intelligence/checkout-funnel-audit$0.05 USDC

Audit a checkout funnel

Audit supplied cart, checkout, payment, and purchase stage counts. The largest measured drop-off is reported without inventing missing steps.

Body

FieldRequiredNotes
textNostring
jsonNostring
csvNostring
fileNoobject; Object
funnelsNoarray; Array
stagesNoarray; Array
pagesNoarray; Array
eventsNoarray; Array
expectedEventsNoarray; Array
sourcesNoarray; Array
formsNoarray; Array
fieldsNoarray; Array
segmentsNoarray; Array
minSampleNointeger

Request exampleJSON

{
  "funnels": [
    {
      "id": "F-1",
      "name": "Checkout"
    }
  ],
  "stages": [
    {
      "funnelId": "F-1",
      "id": "C1",
      "name": "Cart",
      "order": 1,
      "count": 800
    },
    {
      "funnelId": "F-1",
      "id": "C2",
      "name": "Checkout",
      "order": 2,
      "count": 300
    },
    {
      "funnelId": "F-1",
      "id": "C3",
      "name": "Payment",
      "order": 3,
      "count": 180
    },
    {
      "funnelId": "F-1",
      "id": "C4",
      "name": "Purchase",
      "order": 4,
      "count": 150
    }
  ]
}

Response exampleJSON

{
  "checkedAt": "2026-11-04T16:00:00.000Z",
  "status": "audited",
  "funnels": [
    {
      "id": "F-1",
      "name": "Checkout",
      "overallRate": 0.1875,
      "overallRateSupplied": true,
      "largestDropStageId": "C1",
      "largestDrop": 0.625,
      "largestDropSupplied": true,
      "stages": [
        {
          "id": "C1",
          "name": "Cart",
          "order": 1,
          "count": 800,
          "countSupplied": true,
          "toNextRate": 0.375,
          "toNextRateSupplied": true,
          "dropOff": 0.625,
          "dropOffSupplied": true
        },
        {
          "id": "C2",
          "name": "Checkout",
          "order": 2,
          "count": 300,
          "countSupplied": true,
          "toNextRate": 0.6,
          "toNextRateSupplied": true,
          "dropOff": 0.4,
          "dropOffSupplied": true
        },
        {
          "id": "C3",
          "name": "Payment",
          "order": 3,
          "count": 180,
          "countSupplied": true,
          "toNextRate": 0.8333,
          "toNextRateSupplied": true,
          "dropOff": 0.1667,
          "dropOffSupplied": true
        },
        {
          "id": "C4",
          "name": "Purchase",
          "order": 4,
          "count": 150,
          "countSupplied": true,
          "toNextRate": 0,
          "toNextRateSupplied": false,
          "dropOff": 0,
          "dropOffSupplied": false
        }
      ],
      "causationClaimed": false
    }
  ],
  "analyticsAccessed": false,
  "trafficInvented": false,
  "conversionsInvented": false,
  "revenueInvented": false,
  "causationClaimed": false,
  "findings": [],
  "limitations": [
    "Funnel stages, pages, events, sources, forms, and segments are copied only from labeled counts supplied by the caller.",
    "Conversion rates and drop-offs use only those counts. Missing counts are not filled in.",
    "A difference between segments or sources is an association in the supplied numbers, not a proven cause.",
    "Segment comparisons run only when both samples meet the disclosed minimum size.",
    "No analytics or advertising account is accessed, and no traffic, conversions, or revenue are invented."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/conversion-intelligence/checkout-funnel-audit" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "funnels": [
    {
      "id": "F-1",
      "name": "Checkout"
    }
  ],
  "stages": [
    {
      "funnelId": "F-1",
      "id": "C1",
      "name": "Cart",
      "order": 1,
      "count": 800
    },
    {
      "funnelId": "F-1",
      "id": "C2",
      "name": "Checkout",
      "order": 2,
      "count": 300
    },
    {
      "funnelId": "F-1",
      "id": "C3",
      "name": "Payment",
      "order": 3,
      "count": 180
    },
    {
      "funnelId": "F-1",
      "id": "C4",
      "name": "Purchase",
      "order": 4,
      "count": 150
    }
  ]
}
JSON
POSThttps://brainiac.software/api/v1/conversion-intelligence/event-coverage-check$0.04 USDC

Check conversion event coverage

Compare expected tracking events with supplied event counts. Missing or zero events are flagged. No analytics account is accessed.

Body

FieldRequiredNotes
textNostring
jsonNostring
csvNostring
fileNoobject; Object
funnelsNoarray; Array
stagesNoarray; Array
pagesNoarray; Array
eventsNoarray; Array
expectedEventsNoarray; Array
sourcesNoarray; Array
formsNoarray; Array
fieldsNoarray; Array
segmentsNoarray; Array
minSampleNointeger

Request exampleJSON

{
  "expectedEvents": [
    {
      "name": "page_view"
    },
    {
      "name": "add_to_cart"
    },
    {
      "name": "purchase"
    }
  ],
  "events": [
    {
      "name": "page_view",
      "count": 5000,
      "page": "/home"
    },
    {
      "name": "add_to_cart",
      "count": 0,
      "page": "/product"
    },
    {
      "name": "begin_checkout",
      "count": 200
    }
  ]
}

Response exampleJSON

{
  "checkedAt": "2026-11-04T16:00:00.000Z",
  "status": "checked",
  "expectedCount": 3,
  "missingCount": 1,
  "presentCount": 1,
  "items": [
    {
      "name": "page_view",
      "status": "present",
      "count": 5000,
      "countSupplied": true,
      "pages": [
        "/home"
      ]
    },
    {
      "name": "add_to_cart",
      "status": "zero",
      "count": 0,
      "countSupplied": true,
      "pages": [
        "/product"
      ]
    },
    {
      "name": "purchase",
      "status": "missing",
      "count": 0,
      "countSupplied": false,
      "pages": []
    },
    {
      "name": "begin_checkout",
      "status": "unexpected",
      "count": 200,
      "countSupplied": true,
      "pages": []
    }
  ],
  "analyticsAccessed": false,
  "trafficInvented": false,
  "conversionsInvented": false,
  "revenueInvented": false,
  "causationClaimed": false,
  "findings": [
    {
      "kind": "observation",
      "code": "event_zero",
      "subject": "add_to_cart",
      "detail": "The expected event is present with a supplied count of zero."
    },
    {
      "kind": "missing",
      "code": "event_missing",
      "subject": "purchase",
      "detail": "An expected event was not present in the supplied event list."
    }
  ],
  "limitations": [
    "Funnel stages, pages, events, sources, forms, and segments are copied only from labeled counts supplied by the caller.",
    "Conversion rates and drop-offs use only those counts. Missing counts are not filled in.",
    "A difference between segments or sources is an association in the supplied numbers, not a proven cause.",
    "Segment comparisons run only when both samples meet the disclosed minimum size.",
    "No analytics or advertising account is accessed, and no traffic, conversions, or revenue are invented."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/conversion-intelligence/event-coverage-check" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "expectedEvents": [
    {
      "name": "page_view"
    },
    {
      "name": "add_to_cart"
    },
    {
      "name": "purchase"
    }
  ],
  "events": [
    {
      "name": "page_view",
      "count": 5000,
      "page": "/home"
    },
    {
      "name": "add_to_cart",
      "count": 0,
      "page": "/product"
    },
    {
      "name": "begin_checkout",
      "count": 200
    }
  ]
}
JSON
POSThttps://brainiac.software/api/v1/conversion-intelligence/traffic-source-quality-analyze$0.05 USDC

Analyze traffic source quality

Calculate conversion rates by supplied traffic source. Ranking uses only sources that meet the disclosed sample minimum and does not claim causation.

Body

FieldRequiredNotes
textNostring
jsonNostring
csvNostring
fileNoobject; Object
funnelsNoarray; Array
stagesNoarray; Array
pagesNoarray; Array
eventsNoarray; Array
expectedEventsNoarray; Array
sourcesNoarray; Array
formsNoarray; Array
fieldsNoarray; Array
segmentsNoarray; Array
minSampleNointeger

Request exampleJSON

{
  "minSample": 100,
  "sources": [
    {
      "id": "organic",
      "name": "Organic",
      "sessions": 2000,
      "conversions": 80,
      "revenue": 4000
    },
    {
      "id": "paid",
      "name": "Paid",
      "sessions": 500,
      "conversions": 40,
      "revenue": 2500
    },
    {
      "id": "tiny",
      "name": "Tiny",
      "sessions": 20,
      "conversions": 5
    }
  ]
}

Response exampleJSON

{
  "checkedAt": "2026-11-04T16:00:00.000Z",
  "status": "analyzed",
  "minSample": 100,
  "sources": [
    {
      "id": "organic",
      "name": "Organic",
      "sessions": 2000,
      "sessionsSupplied": true,
      "conversions": 80,
      "conversionsSupplied": true,
      "revenue": 4000,
      "revenueSupplied": true,
      "conversionRate": 0.04,
      "conversionRateSupplied": true,
      "sampleSufficient": true,
      "causationClaimed": false
    },
    {
      "id": "paid",
      "name": "Paid",
      "sessions": 500,
      "sessionsSupplied": true,
      "conversions": 40,
      "conversionsSupplied": true,
      "revenue": 2500,
      "revenueSupplied": true,
      "conversionRate": 0.08,
      "conversionRateSupplied": true,
      "sampleSufficient": true,
      "causationClaimed": false
    },
    {
      "id": "tiny",
      "name": "Tiny",
      "sessions": 20,
      "sessionsSupplied": true,
      "conversions": 5,
      "conversionsSupplied": true,
      "revenue": 0,
      "revenueSupplied": false,
      "conversionRate": 0.25,
      "conversionRateSupplied": true,
      "sampleSufficient": false,
      "causationClaimed": false
    }
  ],
  "highestRateSourceId": "paid",
  "highestRate": 0.08,
  "highestRateSupplied": true,
  "analyticsAccessed": false,
  "trafficInvented": false,
  "conversionsInvented": false,
  "revenueInvented": false,
  "causationClaimed": false,
  "findings": [
    {
      "kind": "observation",
      "code": "source_sample_small",
      "subject": "tiny",
      "detail": "A source conversion rate is shown, but the sample is below the disclosed minimum of 100 sessions. It is not used for ranking."
    }
  ],
  "limitations": [
    "Funnel stages, pages, events, sources, forms, and segments are copied only from labeled counts supplied by the caller.",
    "Conversion rates and drop-offs use only those counts. Missing counts are not filled in.",
    "A difference between segments or sources is an association in the supplied numbers, not a proven cause.",
    "Segment comparisons run only when both samples meet the disclosed minimum size.",
    "No analytics or advertising account is accessed, and no traffic, conversions, or revenue are invented."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/conversion-intelligence/traffic-source-quality-analyze" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "minSample": 100,
  "sources": [
    {
      "id": "organic",
      "name": "Organic",
      "sessions": 2000,
      "conversions": 80,
      "revenue": 4000
    },
    {
      "id": "paid",
      "name": "Paid",
      "sessions": 500,
      "conversions": 40,
      "revenue": 2500
    },
    {
      "id": "tiny",
      "name": "Tiny",
      "sessions": 20,
      "conversions": 5
    }
  ]
}
JSON
POSThttps://brainiac.software/api/v1/conversion-intelligence/form-abandonment-analyze$0.04 USDC

Analyze form abandonment

Measure form completion and field abandonment from supplied starts, completes, and field counts. Differences are associations in the numbers, not proven causes.

Body

FieldRequiredNotes
textNostring
jsonNostring
csvNostring
fileNoobject; Object
funnelsNoarray; Array
stagesNoarray; Array
pagesNoarray; Array
eventsNoarray; Array
expectedEventsNoarray; Array
sourcesNoarray; Array
formsNoarray; Array
fieldsNoarray; Array
segmentsNoarray; Array
minSampleNointeger

Request exampleJSON

{
  "forms": [
    {
      "id": "lead",
      "name": "Lead form",
      "starts": 400,
      "completes": 100
    }
  ],
  "fields": [
    {
      "formId": "lead",
      "name": "email",
      "starts": 400,
      "abandons": 50
    },
    {
      "formId": "lead",
      "name": "phone",
      "starts": 350,
      "abandons": 180
    }
  ]
}

Response exampleJSON

{
  "checkedAt": "2026-11-04T16:00:00.000Z",
  "status": "analyzed",
  "forms": [
    {
      "id": "lead",
      "name": "Lead form",
      "starts": 400,
      "startsSupplied": true,
      "completes": 100,
      "completesSupplied": true,
      "completionRate": 0.25,
      "completionRateSupplied": true,
      "abandonmentRate": 0.75,
      "abandonmentRateSupplied": true,
      "largestField": "phone",
      "largestFieldRate": 0.5143,
      "largestFieldRateSupplied": true,
      "fields": [
        {
          "name": "email",
          "starts": 400,
          "startsSupplied": true,
          "abandons": 50,
          "abandonsSupplied": true,
          "abandonmentRate": 0.125,
          "abandonmentRateSupplied": true
        },
        {
          "name": "phone",
          "starts": 350,
          "startsSupplied": true,
          "abandons": 180,
          "abandonsSupplied": true,
          "abandonmentRate": 0.5143,
          "abandonmentRateSupplied": true
        }
      ],
      "causationClaimed": false
    }
  ],
  "analyticsAccessed": false,
  "trafficInvented": false,
  "conversionsInvented": false,
  "revenueInvented": false,
  "causationClaimed": false,
  "findings": [],
  "limitations": [
    "Funnel stages, pages, events, sources, forms, and segments are copied only from labeled counts supplied by the caller.",
    "Conversion rates and drop-offs use only those counts. Missing counts are not filled in.",
    "A difference between segments or sources is an association in the supplied numbers, not a proven cause.",
    "Segment comparisons run only when both samples meet the disclosed minimum size.",
    "No analytics or advertising account is accessed, and no traffic, conversions, or revenue are invented."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/conversion-intelligence/form-abandonment-analyze" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "forms": [
    {
      "id": "lead",
      "name": "Lead form",
      "starts": 400,
      "completes": 100
    }
  ],
  "fields": [
    {
      "formId": "lead",
      "name": "email",
      "starts": 400,
      "abandons": 50
    },
    {
      "formId": "lead",
      "name": "phone",
      "starts": 350,
      "abandons": 180
    }
  ]
}
JSON
POSThttps://brainiac.software/api/v1/conversion-intelligence/segment-compare$0.05 USDC

Compare conversion segments

Compare segment conversion rates only when both samples meet the disclosed minimum size. Rate differences are not treated as causation.

Body

FieldRequiredNotes
textNostring
jsonNostring
csvNostring
fileNoobject; Object
funnelsNoarray; Array
stagesNoarray; Array
pagesNoarray; Array
eventsNoarray; Array
expectedEventsNoarray; Array
sourcesNoarray; Array
formsNoarray; Array
fieldsNoarray; Array
segmentsNoarray; Array
minSampleNointeger

Request exampleJSON

{
  "minSample": 100,
  "segments": [
    {
      "id": "mobile",
      "name": "Mobile",
      "sessions": 800,
      "conversions": 40
    },
    {
      "id": "desktop",
      "name": "Desktop",
      "sessions": 900,
      "conversions": 90
    },
    {
      "id": "tablet",
      "name": "Tablet",
      "sessions": 40,
      "conversions": 8
    }
  ]
}

Response exampleJSON

{
  "checkedAt": "2026-11-04T16:00:00.000Z",
  "status": "compared",
  "minSample": 100,
  "segments": [
    {
      "id": "mobile",
      "name": "Mobile",
      "sessions": 800,
      "sessionsSupplied": true,
      "conversions": 40,
      "conversionsSupplied": true,
      "conversionRate": 0.05,
      "conversionRateSupplied": true,
      "sampleSufficient": true
    },
    {
      "id": "desktop",
      "name": "Desktop",
      "sessions": 900,
      "sessionsSupplied": true,
      "conversions": 90,
      "conversionsSupplied": true,
      "conversionRate": 0.1,
      "conversionRateSupplied": true,
      "sampleSufficient": true
    },
    {
      "id": "tablet",
      "name": "Tablet",
      "sessions": 40,
      "sessionsSupplied": true,
      "conversions": 8,
      "conversionsSupplied": true,
      "conversionRate": 0.2,
      "conversionRateSupplied": true,
      "sampleSufficient": false
    }
  ],
  "comparisons": [
    {
      "leftId": "mobile",
      "rightId": "desktop",
      "leftSessions": 800,
      "rightSessions": 900,
      "leftRate": 0.05,
      "rightRate": 0.1,
      "rateDifference": -0.05,
      "minSample": 100,
      "compared": true,
      "causationClaimed": false
    }
  ],
  "analyticsAccessed": false,
  "trafficInvented": false,
  "conversionsInvented": false,
  "revenueInvented": false,
  "causationClaimed": false,
  "findings": [
    {
      "kind": "observation",
      "code": "segment_sample_small",
      "subject": "tablet",
      "detail": "Segment sample 40 is below the disclosed minimum of 100. It was not compared."
    }
  ],
  "limitations": [
    "Funnel stages, pages, events, sources, forms, and segments are copied only from labeled counts supplied by the caller.",
    "Conversion rates and drop-offs use only those counts. Missing counts are not filled in.",
    "A difference between segments or sources is an association in the supplied numbers, not a proven cause.",
    "Segment comparisons run only when both samples meet the disclosed minimum size.",
    "No analytics or advertising account is accessed, and no traffic, conversions, or revenue are invented."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/conversion-intelligence/segment-compare" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "minSample": 100,
  "segments": [
    {
      "id": "mobile",
      "name": "Mobile",
      "sessions": 800,
      "conversions": 40
    },
    {
      "id": "desktop",
      "name": "Desktop",
      "sessions": 900,
      "conversions": 90
    },
    {
      "id": "tablet",
      "name": "Tablet",
      "sessions": 40,
      "conversions": 8
    }
  ]
}
JSON
POSThttps://brainiac.software/api/v1/conversion-intelligence/diagnostics-report$0.12 USDC

Report conversion diagnostics

Combine funnel drop-offs, page exits, event coverage, source rates, form abandonment, and segment comparisons from supplied counts. No traffic or revenue is invented.

Body

FieldRequiredNotes
textNostring
jsonNostring
csvNostring
fileNoobject; Object
funnelsNoarray; Array
stagesNoarray; Array
pagesNoarray; Array
eventsNoarray; Array
expectedEventsNoarray; Array
sourcesNoarray; Array
formsNoarray; Array
fieldsNoarray; Array
segmentsNoarray; Array
minSampleNointeger

Request exampleJSON

{
  "minSample": 100,
  "funnels": [
    {
      "id": "F-1",
      "name": "Signup"
    }
  ],
  "stages": [
    {
      "funnelId": "F-1",
      "id": "S1",
      "name": "Landing",
      "order": 1,
      "count": 1000
    },
    {
      "funnelId": "F-1",
      "id": "S2",
      "name": "Signup form",
      "order": 2,
      "count": 400
    },
    {
      "funnelId": "F-1",
      "id": "S3",
      "name": "Confirmed",
      "order": 3,
      "count": 120
    }
  ],
  "pages": [
    {
      "id": "P1",
      "path": "/pricing",
      "views": 1000,
      "exits": 700,
      "conversions": 40
    }
  ],
  "expectedEvents": [
    {
      "name": "page_view"
    },
    {
      "name": "purchase"
    }
  ],
  "events": [
    {
      "name": "page_view",
      "count": 5000
    },
    {
      "name": "add_to_cart",
      "count": 200
    }
  ],
  "sources": [
    {
      "id": "organic",
      "name": "Organic",
      "sessions": 2000,
      "conversions": 80
    },
    {
      "id": "paid",
      "name": "Paid",
      "sessions": 500,
      "conversions": 40
    }
  ],
  "forms": [
    {
      "id": "lead",
      "name": "Lead form",
      "starts": 400,
      "completes": 100
    }
  ],
  "fields": [
    {
      "formId": "lead",
      "name": "phone",
      "starts": 350,
      "abandons": 180
    }
  ],
  "segments": [
    {
      "id": "mobile",
      "name": "Mobile",
      "sessions": 800,
      "conversions": 40
    },
    {
      "id": "desktop",
      "name": "Desktop",
      "sessions": 900,
      "conversions": 90
    }
  ]
}

Response exampleJSON

{
  "checkedAt": "2026-11-04T16:00:00.000Z",
  "status": "reported",
  "minSample": 100,
  "funnelCount": 1,
  "pageCount": 1,
  "missingEventCount": 1,
  "formCount": 1,
  "comparedSegmentPairs": 1,
  "largestFunnelDrop": 0.7,
  "largestExitRate": 0.7,
  "funnels": [
    {
      "id": "F-1",
      "name": "Signup",
      "stageCount": 3,
      "overallRate": 0.12,
      "overallRateSupplied": true,
      "largestDropStageId": "S2",
      "largestDrop": 0.7,
      "largestDropSupplied": true,
      "stages": [
        {
          "id": "S1",
          "name": "Landing",
          "order": 1,
          "count": 1000,
          "countSupplied": true,
          "toNextRate": 0.4,
          "toNextRateSupplied": true,
          "dropOff": 0.6,
          "dropOffSupplied": true
        },
        {
          "id": "S2",
          "name": "Signup form",
          "order": 2,
          "count": 400,
          "countSupplied": true,
          "toNextRate": 0.3,
          "toNextRateSupplied": true,
          "dropOff": 0.7,
          "dropOffSupplied": true
        },
        {
          "id": "S3",
          "name": "Confirmed",
          "order": 3,
          "count": 120,
          "countSupplied": true,
          "toNextRate": 0,
          "toNextRateSupplied": false,
          "dropOff": 0,
          "dropOffSupplied": false
        }
      ],
      "causationClaimed": false
    }
  ],
  "pages": [
    {
      "id": "P1",
      "path": "/pricing",
      "name": "P1",
      "views": 1000,
      "viewsSupplied": true,
      "exits": 700,
      "exitsSupplied": true,
      "conversions": 40,
      "conversionsSupplied": true,
      "exitRate": 0.7,
      "exitRateSupplied": true,
      "conversionRate": 0.04,
      "conversionRateSupplied": true,
      "dropOffMeasured": true,
      "causationClaimed": false
    }
  ],
  "checkout": [
    {
      "id": "F-1",
      "name": "Signup",
      "overallRate": 0.12,
      "overallRateSupplied": true,
      "largestDropStageId": "S2",
      "largestDrop": 0.7,
      "largestDropSupplied": true,
      "stages": [
        {
          "id": "S1",
          "name": "Landing",
          "order": 1,
          "count": 1000,
          "countSupplied": true,
          "toNextRate": 0.4,
          "toNextRateSupplied": true,
          "dropOff": 0.6,
          "dropOffSupplied": true
        },
        {
          "id": "S2",
          "name": "Signup form",
          "order": 2,
          "count": 400,
          "countSupplied": true,
          "toNextRate": 0.3,
          "toNextRateSupplied": true,
          "dropOff": 0.7,
          "dropOffSupplied": true
        },
        {
          "id": "S3",
          "name": "Confirmed",
          "order": 3,
          "count": 120,
          "countSupplied": true,
          "toNextRate": 0,
          "toNextRateSupplied": false,
          "dropOff": 0,
          "dropOffSupplied": false
        }
      ],
      "causationClaimed": false
    }
  ],
  "coverage": [
    {
      "name": "page_view",
      "status": "present",
      "count": 5000,
      "countSupplied": true,
      "pages": []
    },
    {
      "name": "purchase",
      "status": "missing",
      "count": 0,
      "countSupplied": false,
      "pages": []
    },
    {
      "name": "add_to_cart",
      "status": "unexpected",
      "count": 200,
      "countSupplied": true,
      "pages": []
    }
  ],
  "sources": [
    {
      "id": "organic",
      "name": "Organic",
      "sessions": 2000,
      "sessionsSupplied": true,
      "conversions": 80,
      "conversionsSupplied": true,
      "revenue": 0,
      "revenueSupplied": false,
      "conversionRate": 0.04,
      "conversionRateSupplied": true,
      "sampleSufficient": true,
      "causationClaimed": false
    },
    {
      "id": "paid",
      "name": "Paid",
      "sessions": 500,
      "sessionsSupplied": true,
      "conversions": 40,
      "conversionsSupplied": true,
      "revenue": 0,
      "revenueSupplied": false,
      "conversionRate": 0.08,
      "conversionRateSupplied": true,
      "sampleSufficient": true,
      "causationClaimed": false
    }
  ],
  "forms": [
    {
      "id": "lead",
      "name": "Lead form",
      "starts": 400,
      "startsSupplied": true,
      "completes": 100,
      "completesSupplied": true,
      "completionRate": 0.25,
      "completionRateSupplied": true,
      "abandonmentRate": 0.75,
      "abandonmentRateSupplied": true,
      "largestField": "phone",
      "largestFieldRate": 0.5143,
      "largestFieldRateSupplied": true,
      "fields": [
        {
          "name": "phone",
          "starts": 350,
          "startsSupplied": true,
          "abandons": 180,
          "abandonsSupplied": true,
          "abandonmentRate": 0.5143,
          "abandonmentRateSupplied": true
        }
      ],
      "causationClaimed": false
    }
  ],
  "segments": [
    {
      "id": "mobile",
      "name": "Mobile",
      "sessions": 800,
      "sessionsSupplied": true,
      "conversions": 40,
      "conversionsSupplied": true,
      "conversionRate": 0.05,
      "conversionRateSupplied": true,
      "sampleSufficient": true
    },
    {
      "id": "desktop",
      "name": "Desktop",
      "sessions": 900,
      "sessionsSupplied": true,
      "conversions": 90,
      "conversionsSupplied": true,
      "conversionRate": 0.1,
      "conversionRateSupplied": true,
      "sampleSufficient": true
    }
  ],
  "comparisons": [
    {
      "leftId": "mobile",
      "rightId": "desktop",
      "leftSessions": 800,
      "rightSessions": 900,
      "leftRate": 0.05,
      "rightRate": 0.1,
      "rateDifference": -0.05,
      "minSample": 100,
      "compared": true,
      "causationClaimed": false
    }
  ],
  "analyticsAccessed": false,
  "trafficInvented": false,
  "conversionsInvented": false,
  "revenueInvented": false,
  "causationClaimed": false,
  "findings": [
    {
      "kind": "missing",
      "code": "event_missing",
      "subject": "purchase",
      "detail": "An expected event was not present in the supplied event list."
    }
  ],
  "limitations": [
    "Funnel stages, pages, events, sources, forms, and segments are copied only from labeled counts supplied by the caller.",
    "Conversion rates and drop-offs use only those counts. Missing counts are not filled in.",
    "A difference between segments or sources is an association in the supplied numbers, not a proven cause.",
    "Segment comparisons run only when both samples meet the disclosed minimum size.",
    "No analytics or advertising account is accessed, and no traffic, conversions, or revenue are invented."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/conversion-intelligence/diagnostics-report" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "minSample": 100,
  "funnels": [
    {
      "id": "F-1",
      "name": "Signup"
    }
  ],
  "stages": [
    {
      "funnelId": "F-1",
      "id": "S1",
      "name": "Landing",
      "order": 1,
      "count": 1000
    },
    {
      "funnelId": "F-1",
      "id": "S2",
      "name": "Signup form",
      "order": 2,
      "count": 400
    },
    {
      "funnelId": "F-1",
      "id": "S3",
      "name": "Confirmed",
      "order": 3,
      "count": 120
    }
  ],
  "pages": [
    {
      "id": "P1",
      "path": "/pricing",
      "views": 1000,
      "exits": 700,
      "conversions": 40
    }
  ],
  "expectedEvents": [
    {
      "name": "page_view"
    },
    {
      "name": "purchase"
    }
  ],
  "events": [
    {
      "name": "page_view",
      "count": 5000
    },
    {
      "name": "add_to_cart",
      "count": 200
    }
  ],
  "sources": [
    {
      "id": "organic",
      "name": "Organic",
      "sessions": 2000,
      "conversions": 80
    },
    {
      "id": "paid",
      "name": "Paid",
      "sessions": 500,
      "conversions": 40
    }
  ],
  "forms": [
    {
      "id": "lead",
      "name": "Lead form",
      "starts": 400,
      "completes": 100
    }
  ],
  "fields": [
    {
      "formId": "lead",
      "name": "phone",
      "starts": 350,
      "abandons": 180
    }
  ],
  "segments": [
    {
      "id": "mobile",
      "name": "Mobile",
      "sessions": 800,
      "conversions": 40
    },
    {
      "id": "desktop",
      "name": "Desktop",
      "sessions": 900,
      "conversions": 90
    }
  ]
}
JSON