Skip to main content
The Analysis API is a specialized service that implements advanced pricing configuration analysis capabilities using constraint programming (Constraint Satisfaction Problem - CSP) with MiniZinc. It provides both synchronous and asynchronous operations for validating, analyzing, and optimizing SaaS pricing models.

Architecture

The Analysis API is built with Node.js and TypeScript, using Express.js for the REST API layer. It integrates multiple CSP solvers (MiniZinc and Choco) to perform exhaustive configuration space analysis.
┌─────────────────────────────────────────────────────────────┐
│                    Analysis API                            │
├─────────────────────────────────────────────────────────────┤
│  Express.js + TypeScript                                   │
│  ├─ REST Endpoints                                          │
│  ├─ Validation middleware                                   │
│  ├─ Multer for file upload                                  │
│  └─ CORS and error handling                                 │
├─────────────────────────────────────────────────────────────┤
│  Business Services                                         │
│  ├─ MinizincService                                         │
│  ├─ JobManager                                              │
│  ├─ PricingValidator                                        │
│  └─ AnalyticsProcessor                                      │
├─────────────────────────────────────────────────────────────┤
│  MiniZinc Engine                                           │
│  ├─ CSP models in .mzn                                      │
│  ├─ YAML → DZN conversion                                   │
│  ├─ Solver execution                                        │
│  └─ Result post-processing                                  │
└─────────────────────────────────────────────────────────────┘

Core Features

Constraint Satisfaction Programming

Multiple Solvers

Compatible with MiniZinc and Choco solvers for flexible constraint resolution

Exhaustive Analysis

Complete enumeration of configuration spaces to explore all valid combinations

Optimization

Search for optimal configurations according to custom criteria (minimize/maximize cost)

Smart Filtering

Apply constraints to find configurations meeting specific requirements

Analysis Capabilities

  • Specification Validation: Verify iPricing YAML file coherence and detect impossible configurations
  • Pricing Summaries: Generate comprehensive statistics and metrics from pricing models
  • Configuration Spaces: Calculate all possible valid subscription combinations
  • Cost Analysis: Price calculation for specific configurations with add-ons

API Endpoints

The Analysis API exposes the following main endpoints:
EndpointMethodTypeDescription
/api/v1/pricing/summaryPOSTSyncGet statistical summary of pricing configuration
/api/v1/pricing/analysisPOSTAsyncCreate analysis job (validate, optimize, enumerate)
/api/v1/pricing/analysis/{jobId}GETAsyncGet job status and results
/healthGETSyncHealth check endpoint

Operation Types

The Analysis API supports four types of analysis operations:
Verifies the mathematical and logical coherence of a pricing specification.Checks performed:
  • Price consistency between plans
  • Feature coherence between plans
  • Add-on dependency validation
  • Detection of impossible configurations
Finds the best configurations according to specific criteria.Optimization criteria:
  • Minimize/maximize total cost
  • Maximize obtained features
  • Optimize price-quality ratio
  • Apply custom filters (price range, features, usage limits)
Enumerates all possible and valid configurations in the pricing model.Information provided:
  • Complete list of valid configurations
  • Cost of each configuration
  • Included features per subscription
  • Applicable add-ons
Searches for configurations that meet specific criteria.Available filters:
  • maxPrice: Maximum price constraint
  • minPrice: Minimum price constraint
  • maxSubscriptionSize: Limit number of items (plan + add-ons)
  • features: Required features list
  • usageLimits: Usage limit requirements

OpenAPI Specification

The complete OpenAPI 3.0 specification is available at:
  • Swagger UI: http://localhost:3000/docs
  • ReDoc: http://localhost:3000/redoc
  • JSON Spec: http://localhost:3000/api-docs/json
All endpoints accept pricing configurations as YAML files uploaded via multipart/form-data.

Authentication

Currently, the Analysis API does not require authentication. Future versions will include API key authentication.

Rate Limiting

No rate limiting is currently enforced. Production deployments should implement appropriate rate limiting based on solver resource constraints.

Base URL

http://localhost:3000

Error Responses

All endpoints follow a consistent error response format:
{
  "error": "Error message describing what went wrong",
  "details": "Additional technical details (optional)"
}
Common HTTP status codes:
  • 400 - Bad Request (invalid input, missing file, malformed YAML)
  • 404 - Not Found (job ID doesn’t exist)
  • 422 - Unprocessable Entity (valid YAML but invalid pricing schema)
  • 500 - Internal Server Error (solver failure, system error)

Next Steps

Pricing Summary

Learn how to get statistical summaries of pricing models

Validation

Validate pricing configurations for coherence

Optimization

Find optimal configurations with custom criteria

Subscriptions

Enumerate all valid subscription configurations

Build docs developers (and LLMs) love