Talk2Data InsightGenius
SPSS InsightGenius API
Professional SPSS processing API + MCP server for market research. Upload .sav files, get crosstabs with significance testing, auto-detected question types, and publication-ready Excel exports. Includes AI-powered zero-config analysis.
Live: spss.insightgenius.io | API Docs: spss.insightgenius.io/docs | MCP: spss.insightgenius.io/mcp/sse
Quick Start
Option 1: Web UI (no code needed)
Drag & drop your
.savfileClick Auto-Analyze for instant results, or configure manually:
Select banner variables (demographics for columns)
Choose stubs (questions for rows)
Enable Top 2 Box / Means
Click Generate Excel → download your tabulation
Option 2: Auto-Analyze (zero config)
curl -X POST https://spss.insightgenius.io/v1/auto-analyze \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@survey.sav" \
-o auto_analysis.xlsxAI auto-detects banners, groups variables into MRS/Grid, applies nets, and generates a complete Excel.
Option 3: Full Control
curl -X POST https://spss.insightgenius.io/v1/tabulate \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@survey.sav" \
-F 'spec={
"banners": ["gender", "region", "age_group"],
"stubs": ["_all_"],
"significance_level": 0.95,
"include_means": true,
"nets": {"sat_overall": {"Top 2 Box": [4,5], "Bottom 2 Box": [1,2]}},
"mrs_groups": {"Brand_Awareness": ["AWARE_A","AWARE_B","AWARE_C"]}
}' -o tabulation.xlsxOption 4: Python
import requests, json
resp = requests.post(
"https://spss.insightgenius.io/v1/tabulate",
headers={"Authorization": "Bearer YOUR_API_KEY"},
files={"file": open("survey.sav", "rb")},
data={"spec": json.dumps({
"banners": ["gender", "region"],
"stubs": ["_all_"],
"include_means": True,
"significance_level": 0.95,
})}
)
with open("tabulation.xlsx", "wb") as f:
f.write(resp.content)
print(f"Done: {resp.headers['X-Stubs-Success']} tables generated")Option 5: MCP (for AI agents)
Connect to https://spss.insightgenius.io/mcp/sse and use any of the 12 tools. Files are passed as base64.
Endpoints (14)
Method | Endpoint | Description |
POST |
| Zero-config — upload .sav, get complete Excel (AI-detected banners, MRS, grids, nets) |
POST |
| Full tabulation → Excel with sig letters, nets, means, MRS, grids, custom groups. Accepts optional .docx Reporting Ticket. |
POST |
| Variable metadata + suggested banners + detected groups + preset nets |
POST |
| Frequency table (counts, %, mean, std, median) |
POST |
| Single crosstab with sig letters (A/B/C) + chi-square p-value |
POST |
| Correlation matrix (Pearson/Spearman/Kendall) with p-values |
POST |
| One-way ANOVA with Tukey HSD post-hoc comparisons |
POST |
| Importance-Performance gap analysis with quadrants |
POST |
| Compact T2B/B2B/Mean for multiple scale variables |
POST |
| Multi-operation pipeline (auto-detect or manual) |
POST |
| Convert .sav → xlsx, csv, parquet, dta |
POST |
| Parse Reporting Ticket .docx → tab plan (Haiku AI) |
GET |
| Health check + engine status |
GET |
| Usage stats for your API key |
MCP Tools (12)
Tool | Description |
| Variable metadata + auto-detect |
| Single variable detail |
| Frequency table |
| Crosstab with sig letters |
| Correlation matrix |
| ANOVA + Tukey HSD |
| Gap analysis with quadrants |
| Satisfaction summary |
| Full tabulation → Excel (base64) |
| Zero-config → Excel (base64) |
| Format conversion |
| Available tools |
Tabulate Spec
Field | Type | Default | Description |
| string[] | required | Demographics for columns (e.g., |
| string[] |
| Questions for rows ( |
| float |
| 0.90, 0.95, or 0.99 |
| string |
| Weight variable name |
| bool |
| Add Mean row with T-test sig letters |
| bool |
| Total as first column |
| string |
|
|
| object |
| Per-variable net definitions |
| object |
| MRS groups: |
| object |
| Grid groups: |
| array |
| Custom breaks with AND conditions |
| string |
| Report title |
Excel Output
Summary sheet: file info, column legend (A=London, B=South East...), stub index
One sheet per stub: headers → letters → base (N) → data with
pct% SIG_LETTERS→ nets → meansMRS sheets: one per group, percentages can exceed 100%
Grid sheets: compact T2B/B2B/Mean summary
Significance letters in red, nets in green rows
Freeze panes for scrolling
Significance Testing
Column proportion z-test with letter notation (A/B/C):
Each banner category gets a letter (e.g., Male=A, Female=B, London=C, North=D)
Each cell tested vs every other column
Significantly higher → other column's letter appears (e.g.,
68.6% Emeans sig higher than column E)Supports weighted (Kish effective-n) and unweighted
Means tested with independent T-test
Confidence levels: 90%, 95%, 99%
Authentication
All endpoints require: Authorization: Bearer sk_live_... or sk_test_...
Rate Limits
Plan | Requests/min | Max file | Price |
Free | 10 | 5 MB | $0 |
Growth | 60 | 50 MB | $29/mo |
Business | 200 | 200 MB | $99/mo |
Enterprise | Unlimited | 500 MB | Custom |
Error Codes
Code | HTTP | Meaning |
| 401 | Missing/invalid API key |
| 403 | Valid key, wrong scope |
| 429 | Too many requests |
| 400 | Not a .sav file |
| 413 | Exceeds plan limit |
| 400 | Variable doesn't exist |
| 500 | Engine error |
| 504 | Exceeded time limit |
Local Development
git clone https://github.com/quack2025/spss-insightgenius-api.git
cd spss-insightgenius-api
pip install -r requirements.txt
cp .env.example .env # Edit with your API key hash
python main.py # → http://localhost:8000
python -m pytest tests/ -v # 68 testsStack
Layer | Technology |
API | FastAPI + Pydantic v2 |
Engine | QuantipyMRX (crosstab, sig testing, auto-detect, MRS, NPS) |
AI | Claude Haiku (ticket parsing, smart labels, executive summary) |
Auth | API keys (SHA256, no DB) |
Rate Limiting | Redis (fallback: in-memory) |
MCP | FastMCP with SSE transport |
Deploy | Railway (Docker, Gunicorn, 4 replicas, auto-deploy) |
Built by Genius Labs.
Related MCP Connectors
The statistical analyst in your AI chat — validated, citable, re-runnable analysis of your data.
Ask Claude about your ads: Meta, Google, TikTok, LinkedIn, GA4 & Shopify. No AI credits.
Free survey crosstabs with local analysis and temporary hosted MCP project workflows.
GA4, Google Ads and Search Console in Claude. Read-only OAuth, multi-account for agencies.