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.
https://brainiac.software/api/v1/conversion-intelligence/analytics-funnel-analyze$0.04 USDCAnalyze 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
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
funnels | No | array; Array |
stages | No | array; Array |
pages | No | array; Array |
events | No | array; Array |
expectedEvents | No | array; Array |
sources | No | array; Array |
forms | No | array; Array |
fields | No | array; Array |
segments | No | array; Array |
minSample | No | integer |
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"
}
JSONhttps://brainiac.software/api/v1/conversion-intelligence/landing-page-dropoff-detect$0.04 USDCDetect 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
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
funnels | No | array; Array |
stages | No | array; Array |
pages | No | array; Array |
events | No | array; Array |
expectedEvents | No | array; Array |
sources | No | array; Array |
forms | No | array; Array |
fields | No | array; Array |
segments | No | array; Array |
minSample | No | integer |
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
}
]
}
JSONhttps://brainiac.software/api/v1/conversion-intelligence/checkout-funnel-audit$0.05 USDCAudit a checkout funnel
Audit supplied cart, checkout, payment, and purchase stage counts. The largest measured drop-off is reported without inventing missing steps.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
funnels | No | array; Array |
stages | No | array; Array |
pages | No | array; Array |
events | No | array; Array |
expectedEvents | No | array; Array |
sources | No | array; Array |
forms | No | array; Array |
fields | No | array; Array |
segments | No | array; Array |
minSample | No | integer |
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
}
]
}
JSONhttps://brainiac.software/api/v1/conversion-intelligence/event-coverage-check$0.04 USDCCheck conversion event coverage
Compare expected tracking events with supplied event counts. Missing or zero events are flagged. No analytics account is accessed.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
funnels | No | array; Array |
stages | No | array; Array |
pages | No | array; Array |
events | No | array; Array |
expectedEvents | No | array; Array |
sources | No | array; Array |
forms | No | array; Array |
fields | No | array; Array |
segments | No | array; Array |
minSample | No | integer |
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
}
]
}
JSONhttps://brainiac.software/api/v1/conversion-intelligence/traffic-source-quality-analyze$0.05 USDCAnalyze 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
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
funnels | No | array; Array |
stages | No | array; Array |
pages | No | array; Array |
events | No | array; Array |
expectedEvents | No | array; Array |
sources | No | array; Array |
forms | No | array; Array |
fields | No | array; Array |
segments | No | array; Array |
minSample | No | integer |
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
}
]
}
JSONhttps://brainiac.software/api/v1/conversion-intelligence/form-abandonment-analyze$0.04 USDCAnalyze 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
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
funnels | No | array; Array |
stages | No | array; Array |
pages | No | array; Array |
events | No | array; Array |
expectedEvents | No | array; Array |
sources | No | array; Array |
forms | No | array; Array |
fields | No | array; Array |
segments | No | array; Array |
minSample | No | integer |
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
}
]
}
JSONhttps://brainiac.software/api/v1/conversion-intelligence/segment-compare$0.05 USDCCompare conversion segments
Compare segment conversion rates only when both samples meet the disclosed minimum size. Rate differences are not treated as causation.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
funnels | No | array; Array |
stages | No | array; Array |
pages | No | array; Array |
events | No | array; Array |
expectedEvents | No | array; Array |
sources | No | array; Array |
forms | No | array; Array |
fields | No | array; Array |
segments | No | array; Array |
minSample | No | integer |
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
}
]
}
JSONhttps://brainiac.software/api/v1/conversion-intelligence/diagnostics-report$0.12 USDCReport 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
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
funnels | No | array; Array |
stages | No | array; Array |
pages | No | array; Array |
events | No | array; Array |
expectedEvents | No | array; Array |
sources | No | array; Array |
forms | No | array; Array |
fields | No | array; Array |
segments | No | array; Array |
minSample | No | integer |
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