Insight Genius Analysis API

Frequency, crosstab, NPS, and other analyses

GitHub OpenAPI

Operations 7

POST /v1/frequency Frequency table #
POST /v1/crosstab Crosstab with significance #
POST /v1/correlation Correlation matrix #
POST /v1/anova One-way ANOVA #
POST /v1/gap-analysis Importance-Performance gap analysis #
POST /v1/satisfaction-summary Satisfaction summary #
POST /v1/wave-compare Compare two waves of the same study #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/insightgenius-io:insightgenius-io-analysis-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

insightgenius-io-analysis-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SPSS InsightGenius Analysis API
  description: '**SPSS InsightGenius API** — REST API for processing SPSS (.sav) files.


    Powered by QuantipyMRX for market research analysis: crosstabs with significance testing, auto-detection of question types, NPS, Top/Bottom Box, nets, and AI-powered Reporting Ticket parsing via Claude Haiku.


    ## Authentication

    All endpoints require `Authorization: Bearer sk_live_...` or `sk_test_...`


    ## Rate Limits

    | Plan | Requests/min | Max file size |

    |------|-------------|---------------|

    | Free (sk_test_) | 10 | 5 MB |

    | Pro | 60 | 50 MB |

    | Business | 200 | 200 MB |'
  version: 1.0.0
tags:
- name: Analysis
  description: Frequency, crosstab, NPS, and other analyses
paths:
  /v1/frequency:
    post:
      tags:
      - Analysis
      summary: Frequency table
      description: Calculate frequency distribution for a single variable, optionally weighted.
      operationId: frequency_v1_frequency_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_frequency_v1_frequency_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/crosstab:
    post:
      tags:
      - Analysis
      summary: Crosstab with significance
      description: Cross-tabulation with column proportion z-test significance letters (A/B/C notation).
      operationId: crosstab_v1_crosstab_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_crosstab_v1_crosstab_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/correlation:
    post:
      tags:
      - Analysis
      summary: Correlation matrix
      description: Calculate correlation matrix between 2+ numeric variables with p-values and significance flags.
      operationId: correlation_v1_correlation_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_correlation_v1_correlation_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/anova:
    post:
      tags:
      - Analysis
      summary: One-way ANOVA
      description: Test if means of a numeric variable differ across groups, with optional Tukey HSD post-hoc comparisons.
      operationId: anova_v1_anova_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_anova_v1_anova_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/gap-analysis:
    post:
      tags:
      - Analysis
      summary: Importance-Performance gap analysis
      description: Analyze gaps between paired importance and performance variables. Returns gaps, priorities, and quadrant assignments.
      operationId: gap_analysis_endpoint_v1_gap_analysis_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_gap_analysis_endpoint_v1_gap_analysis_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/satisfaction-summary:
    post:
      tags:
      - Analysis
      summary: Satisfaction summary
      description: Compact summary of T2B%, B2B%, Mean, and distribution for multiple scale variables in one call.
      operationId: satisfaction_summary_endpoint_v1_satisfaction_summary_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_satisfaction_summary_endpoint_v1_satisfaction_summary_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/wave-compare:
    post:
      tags:
      - Analysis
      summary: Compare two waves of the same study
      description: Upload two .sav files from the same study (different time periods) and get deltas with significance testing.
      operationId: wave_compare_v1_wave_compare_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_wave_compare_v1_wave_compare_post'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    Body_satisfaction_summary_endpoint_v1_satisfaction_summary_post:
      properties:
        file:
          type: string
          contentMediaType: application/octet-stream
          title: File
          description: SPSS .sav file (or use file_id)
        file_id:
          anyOf:
          - type: string
          - type: 'null'
          title: File Id
          description: File session ID from /v1/library/upload
        spec:
          type: string
          title: Spec
          description: 'JSON: {"variables": ["sat_speed","sat_price"], "scale": "1-5"}. Optional "top_box"/"bottom_box" codes; by default they are read from the value labels, so "1 = Muy bueno … 5 = Muy malo" gets T2B = [1, 2]. Housekeeping codes (99 "No sabe") stay out of T2B and the mean and are listed in excluded_from_base.'
      type: object
      required:
      - spec
      title: Body_satisfaction_summary_endpoint_v1_satisfaction_summary_post
    Body_crosstab_v1_crosstab_post:
      properties:
        file:
          type: string
          contentMediaType: application/octet-stream
          title: File
          description: SPSS .sav file (or use file_id)
        file_id:
          anyOf:
          - type: string
          - type: 'null'
          title: File Id
          description: File session ID from /v1/library/upload
        spec:
          type: string
          title: Spec
          description: 'JSON object: {"row": "Q1", "col": "S2", "weight": null, "significance_level": 0.95}'
      type: object
      required:
      - spec
      title: Body_crosstab_v1_crosstab_post
    Body_anova_v1_anova_post:
      properties:
        file:
          type: string
          contentMediaType: application/octet-stream
          title: File
          description: SPSS .sav file (or use file_id)
        file_id:
          anyOf:
          - type: string
          - type: 'null'
          title: File Id
          description: File session ID from /v1/library/upload
        spec:
          type: string
          title: Spec
          description: 'JSON: {"dependent": "Q1", "factor": "age_group", "post_hoc": true}'
      type: object
      required:
      - spec
      title: Body_anova_v1_anova_post
    Body_wave_compare_v1_wave_compare_post:
      properties:
        file1:
          type: string
          contentMediaType: application/octet-stream
          title: File1
          description: Wave 1 (baseline) .sav file
        file1_id:
          anyOf:
          - type: string
          - type: 'null'
          title: File1 Id
          description: Wave 1 file session ID
        file2:
          type: string
          contentMediaType: application/octet-stream
          title: File2
          description: Wave 2 (current) .sav file
        file2_id:
          anyOf:
          - type: string
          - type: 'null'
          title: File2 Id
          description: Wave 2 file session ID
        variables:
          type: string
          title: Variables
          description: JSON array of variable names to compare. Empty = auto-detect shared variables.
          default: ''
        weight:
          anyOf:
          - type: string
          - type: 'null'
          title: Weight
          description: Weight variable name (must exist in both files)
        significance_level:
          type: number
          title: Significance Level
          description: Confidence level for significance testing
          default: 0.95
      type: object
      title: Body_wave_compare_v1_wave_compare_post
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    Body_correlation_v1_correlation_post:
      properties:
        file:
          type: string
          contentMediaType: application/octet-stream
          title: File
          description: SPSS .sav file (or use file_id)
        file_id:
          anyOf:
          - type: string
          - type: 'null'
          title: File Id
          description: File session ID from /v1/library/upload
        spec:
          type: string
          title: Spec
          description: 'JSON: {"variables": ["Q1","Q2","Q3"], "method": "pearson"}'
      type: object
      required:
      - spec
      title: Body_correlation_v1_correlation_post
    Body_frequency_v1_frequency_post:
      properties:
        file:
          type: string
          contentMediaType: application/octet-stream
          title: File
          description: SPSS .sav file (or use file_id)
        file_id:
          anyOf:
          - type: string
          - type: 'null'
          title: File Id
          description: File session ID from /v1/library/upload
        variable:
          type: string
          title: Variable
          description: Variable name to analyze
        weight:
          anyOf:
          - type: string
          - type: 'null'
          title: Weight
          description: Weight variable name
      type: object
      required:
      - variable
      title: Body_frequency_v1_frequency_post
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Body_gap_analysis_endpoint_v1_gap_analysis_post:
      properties:
        file:
          type: string
          contentMediaType: application/octet-stream
          title: File
          description: SPSS .sav file (or use file_id)
        file_id:
          anyOf:
          - type: string
          - type: 'null'
          title: File Id
          description: File session ID from /v1/library/upload
        spec:
          type: string
          title: Spec
          description: 'JSON: {"importance_vars": ["Q1_imp","Q2_imp"], "performance_vars": ["Q1_perf","Q2_perf"]}'
      type: object
      required:
      - spec
      title: Body_gap_analysis_endpoint_v1_gap_analysis_post