The Pricing Summary endpoint provides immediate, synchronous analysis of a pricing configuration file. It returns comprehensive statistics about plans, features, add-ons, and usage limits without requiring asynchronous job processing.
Endpoint
POST /api/v1/pricing/summary
This is a synchronous operation that returns results immediately.
Request
Content-Type : multipart/form-data
Parameters
The YAML file containing the pricing configuration. Must conform to the iPricing specification format. See Pricing Models for the complete schema.
Example Request
cURL
JavaScript (fetch)
Python (requests)
Response
Success Response (200 OK)
Total number of unique features defined in the pricing model
numberOfInformationFeatures
Number of INFORMATION type features
numberOfIntegrationFeatures
Number of INTEGRATION type features
numberOfIntegrationApiFeatures
Number of API integration features
numberOfIntegrationExtensionFeatures
Number of extension integration features
numberOfIntegrationIdentityProviderFeatures
Number of identity provider integration features
numberOfIntegrationWebSaaSFeatures
Number of web SaaS integration features
numberOfIntegrationMarketplaceFeatures
Number of marketplace integration features
numberOfIntegrationExternalDeviceFeatures
Number of external device integration features
Number of DOMAIN type features
numberOfAutomationFeatures
Number of AUTOMATION type features
numberOfBotAutomationFeatures
Number of bot automation features
numberOfFilteringAutomationFeatures
Number of filtering automation features
numberOfTrackingAutomationFeatures
Number of tracking automation features
numberOfTaskAutomationFeatures
Number of task automation features
numberOfManagementFeatures
Number of MANAGEMENT type features
numberOfGuaranteeFeatures
Number of GUARANTEE type features
Number of SUPPORT type features
Number of PAYMENT type features
Total number of usage limits defined
numberOfRenewableUsageLimits
Number of RENEWABLE type usage limits
numberOfNonRenewableUsageLimits
Number of NON_RENEWABLE type usage limits
Total number of pricing plans
Number of plans with price = 0
Number of plans with price > 0
Total number of add-ons available
numberOfReplacementAddons
Number of replacement add-ons (replace plan features/limits)
Number of extension add-ons (extend plan usage limits)
Minimum subscription price across all plans
Maximum subscription price across all plans
Example Response
{
"numberOfFeatures" : 19 ,
"numberOfInformationFeatures" : 1 ,
"numberOfIntegrationFeatures" : 5 ,
"numberOfIntegrationApiFeatures" : 1 ,
"numberOfIntegrationExtensionFeatures" : 0 ,
"numberOfIntegrationIdentityProviderFeatures" : 0 ,
"numberOfIntegrationWebSaaSFeatures" : 4 ,
"numberOfIntegrationMarketplaceFeatures" : 0 ,
"numberOfIntegrationExternalDeviceFeatures" : 0 ,
"numberOfDomainFeatures" : 12 ,
"numberOfAutomationFeatures" : 0 ,
"numberOfBotAutomationFeatures" : 0 ,
"numberOfFilteringAutomationFeatures" : 0 ,
"numberOfTrackingAutomationFeatures" : 0 ,
"numberOfTaskAutomationFeatures" : 0 ,
"numberOfManagementFeatures" : 0 ,
"numberOfGuaranteeFeatures" : 0 ,
"numberOfSupportFeatures" : 1 ,
"numberOfPaymentFeatures" : 0 ,
"numberOfUsageLimits" : 2 ,
"numberOfRenewableUsageLimits" : 0 ,
"numberOfNonRenewableUsageLimits" : 1 ,
"numberOfPlans" : 3 ,
"numberOfFreePlans" : 1 ,
"numberOfPaidPlans" : 2 ,
"numberOfAddOns" : 0 ,
"numberOfReplacementAddons" : 0 ,
"numberOfExtensionAddons" : 0 ,
"minSubscriptionPrice" : 0.0 ,
"maxSubscriptionPrice" : 42.0
}
Error Responses
400 Bad Request
Returned when:
No file is uploaded
The uploaded file contains invalid YAML syntax
The file is not in YAML format
{
"error" : "Pricing YAML file is required. Please upload a file."
}
{
"error" : "Invalid YAML syntax" ,
"details" : "bad indentation of a mapping entry at line 15, column 3"
}
422 Unprocessable Entity
Returned when the YAML is valid but doesn’t conform to the iPricing schema:
{
"error" : "Invalid pricing schema" ,
"details" : "Missing required field: plans"
}
500 Internal Server Error
Returned when an unexpected error occurs during processing:
{
"error" : "Internal server error during summary generation" ,
"details" : "Failed to parse feature types"
}
Use Cases
Quickly check if a pricing model has been parsed correctly before running more expensive analysis operations. curl -X POST "http://localhost:3000/api/v1/pricing/summary" \
-F "[email protected] " | jq '.numberOfPlans'
Compare statistics between different versions of a pricing model to understand changes. const v1Summary = await getSummary ( 'pricing-v1.yaml' );
const v2Summary = await getSummary ( 'pricing-v2.yaml' );
console . log ( 'Added features:' ,
v2Summary . numberOfFeatures - v1Summary . numberOfFeatures
);
Generate real-time dashboard metrics for pricing model complexity analysis. summary = get_pricing_summary( 'current.yaml' )
metrics = {
'model_complexity' : summary[ 'numberOfPlans' ] * summary[ 'numberOfAddOns' ],
'integration_ratio' : summary[ 'numberOfIntegrationFeatures' ] / summary[ 'numberOfFeatures' ],
'free_tier_available' : summary[ 'numberOfFreePlans' ] > 0
}
Implementation Details
The summary endpoint is implemented in /home/daytona/workspace/source/analysis_api/src/api/summary.ts:13.
Processing Steps
File Upload : Multer middleware extracts the uploaded file
YAML Parsing : Content is parsed using the pricing4ts library
Metrics Calculation : Statistics are computed from the parsed pricing data:
Feature counting by type and subtype
Plan classification (free vs. paid)
Add-on categorization (replacement vs. extension)
Price range calculation
Response : JSON response with all calculated metrics
The summary endpoint typically completes in under 100ms for models with:
Up to 100 features
Up to 20 plans
Up to 50 add-ons
For very large pricing models (500+ features), consider implementing caching or using the asynchronous analysis endpoint instead.
Validation Validate pricing model for logical coherence
Analysis Jobs Create asynchronous analysis jobs