Skip to main content
Glama
quack2025
by quack2025

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)

  1. Open spss.insightgenius.io

  2. Drag & drop your .sav file

  3. Click Auto-Analyze for instant results, or configure manually:

    • Select banner variables (demographics for columns)

    • Choose stubs (questions for rows)

    • Enable Top 2 Box / Means

  4. 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.xlsx

AI 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.xlsx

Option 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

/v1/auto-analyze

Zero-config — upload .sav, get complete Excel (AI-detected banners, MRS, grids, nets)

POST

/v1/tabulate

Full tabulation → Excel with sig letters, nets, means, MRS, grids, custom groups. Accepts optional .docx Reporting Ticket.

POST

/v1/metadata

Variable metadata + suggested banners + detected groups + preset nets

POST

/v1/frequency

Frequency table (counts, %, mean, std, median)

POST

/v1/crosstab

Single crosstab with sig letters (A/B/C) + chi-square p-value

POST

/v1/correlation

Correlation matrix (Pearson/Spearman/Kendall) with p-values

POST

/v1/anova

One-way ANOVA with Tukey HSD post-hoc comparisons

POST

/v1/gap-analysis

Importance-Performance gap analysis with quadrants

POST

/v1/satisfaction-summary

Compact T2B/B2B/Mean for multiple scale variables

POST

/v1/process

Multi-operation pipeline (auto-detect or manual)

POST

/v1/convert

Convert .sav → xlsx, csv, parquet, dta

POST

/v1/parse-ticket

Parse Reporting Ticket .docx → tab plan (Haiku AI)

GET

/v1/health

Health check + engine status

GET

/v1/usage

Usage stats for your API key

MCP Tools (12)

Tool

Description

get_spss_metadata

Variable metadata + auto-detect

get_variable_info

Single variable detail

analyze_frequencies

Frequency table

analyze_crosstabs

Crosstab with sig letters

analyze_correlation

Correlation matrix

analyze_anova

ANOVA + Tukey HSD

analyze_gap

Gap analysis with quadrants

summarize_satisfaction

Satisfaction summary

create_tabulation

Full tabulation → Excel (base64)

auto_analyze

Zero-config → Excel (base64)

export_data

Format conversion

list_files

Available tools


Tabulate Spec

Field

Type

Default

Description

banners

string[]

required

Demographics for columns (e.g., ["gender", "region"])

stubs

string[]

["_all_"]

Questions for rows (_all_ = auto-select all)

significance_level

float

0.95

0.90, 0.95, or 0.99

weight

string

null

Weight variable name

include_means

bool

false

Add Mean row with T-test sig letters

include_total_column

bool

true

Total as first column

output_mode

string

"multi_sheet"

"multi_sheet" or "single_sheet"

nets

object

null

Per-variable net definitions

mrs_groups

object

null

MRS groups: {"name": ["var1", "var2"]}

grid_groups

object

null

Grid groups: {"name": {"variables": [...], "show": ["t2b","mean"]}}

custom_groups

array

null

Custom breaks with AND conditions

title

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 → means

  • MRS 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% E means 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

UNAUTHORIZED

401

Missing/invalid API key

FORBIDDEN

403

Valid key, wrong scope

RATE_LIMIT_EXCEEDED

429

Too many requests

INVALID_FILE_FORMAT

400

Not a .sav file

FILE_TOO_LARGE

413

Exceeds plan limit

VARIABLE_NOT_FOUND

400

Variable doesn't exist

PROCESSING_FAILED

500

Engine error

PROCESSING_TIMEOUT

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 tests

Stack

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.

F
license - not found
Not graded
quality - not tested
Not graded
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • The statistical analyst in your AI chat — validated, citable, re-runnable analysis of your data.

  • GA4 conversion analyst inside Claude — funnel drops, traffic anomalies, device gaps, with numbers.

  • Paste-your-data analytics: CSV profiling, A/B tests, correlation, growth. 4 of 7 free.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/quack2025/spss-insightgenius-api'

If you have feedback or need assistance with the MCP directory API, please join our Discord server