Product Catalog

Kill the engineering
bottleneck. Ship SKUs today.

Your product catalog is not a database. It is your revenue engine. Every API, AI agent, MCP tool, and SaaS module enters one system, with the metrics, pricing rules, and cost attribution that Finance demands and Product needs to move fast.

No deploy queue. No JIRA ticket. No 6-week sprint to launch a new pricing tier. Product defines it. Finance validates the margin. It goes live the same afternoon.

Infrastructure
Gateway Sync
Kong · Apigee · AWS · Azure · MuleSoft
MCP Telemetry
Claude, Custom AI

Aforo Catalog

Raw Telemetry Billable Unit
POST /v1/chat AI_Token
Kong Route_ID API_Call
Revenue Execution
Metering Engine
High-Volume Tracking
Pricing Studio
Rate Plans & Tiers
Onboarding

Three ways to populate the catalog on day one.

Aforo does not assume your APIs already live in one place. Whichever shape your stack is in today, the catalog meets you there and absorbs what already exists.

From your gateway

Auto-import existing APIs

Connect Kong, Apigee, AWS API Gateway, Azure APIM, or MuleSoft. Aforo walks your existing routes, deduplicates by spec, and creates catalog entries as DRAFT. Bulk import processes hundreds of endpoints in minutes; bi-directional sync pushes publishStatus changes back at the gateway edge.

KongApigeeAWSAzure APIMMuleSoft

From your repo

AI agents and MCP servers

Paste a GitHub, GitLab, or Bitbucket URL. Aforo reads agent.yaml (or your custom manifest path) and pre-populates capabilities, default models, and starter rate plans. Useful for AI-first companies whose agents live in code, not behind a managed gateway.

GitHubGitLabBitbucket

From OpenAPI

No gateway required

Drop the spec URL or paste YAML. Every endpoint becomes a catalog asset; every parameter and example seeds the billable-unit configuration. Useful when your APIs aren’t behind a managed gateway yet, or when you want to add catalog ahead of the gateway rollout.

OpenAPI 3.0OpenAPI 3.1Swagger 2.0
The atomic monetization unit

Category plus billable units = one rate-card-ready asset.

Aforo does not separate “what kind of product is this” from “how do you measure it.” Every product enters the catalog as a Category attached to one or more Billable Units. The pair is the primitive every rate plan, invoice line item, and margin calculation references — extensible at both axes.

InsightBot

PRODUCT_TYPE: AI_AGENT · v2.1 · GA
AI AGENT
BILLABLE UNITS (4 active · multi-dimensional rate plan)
Tokens In
SUM
usage.input_tokens
$0.000003 / token
Tokens Out
SUM
usage.output_tokens
$0.000015 / token
Tool Invocations
COUNT
tool_use.id
$0.012 / call
Session Duration
MAX
session.duration_ms
Quota: 600,000 ms / mo

One product. Four metering dimensions. One compound rate plan. Bill, invoice, and recognize revenue per unit — independently.

4 GA categories. Add your own.

Each category is a descriptor JSON file. Define new categories with their own discovery protocol, default billable-unit templates, and type-specific config (e.g. tool_registry for MCP,agent_config for AI Agent).

API
Translation API
  • · API Calls
  • · Bytes Out
  • · Latency p95 tier
  • · Error Rate
AI Agent
InsightBot
  • · Tokens In
  • · Tokens Out
  • · Session Duration
  • · Tool Invocations
Agentic API
Compliance Bot
  • · Workflow Runs
  • · Steps Executed
  • · External Calls
  • · Wall Time
MCP Server
DataPipe MCP
  • · tools/call invocations
  • · Stream Bytes
  • · Active Sessions
  • · Tool-specific
Custom
Define via descriptor JSON
  • · Define your own
  • · Per-event aggregation
  • · Filter expressions
  • · JSONB metadata

Categories: the shape

Each category declares its discovery protocol (gateway / Git manifest / OpenAPI / JSON-RPC), default billable-unit templates, and type-specific configuration schema. Adding a new category means a new descriptor JSON — not a service deploy.

  • Default templates ship per category
  • Override the discovery adapter for in-house protocols
  • Type-specific config (tool_registry, agent_config, etc.)
  • Custom categories register via descriptor at deploy time

Billable Units: the measure

A Billable Unit maps a raw event field to a billable quantity. Pick an aggregation (SUM / MAX / AVG / COUNT), optionally scope with a filter expression, and the catalog auto-validates incoming usage. Templates seed the common cases; custom units cover the long tail.

  • 32 starter templates (8 per category, edit or replace)
  • Multi-dimensional: bill on multiple units in one rate plan
  • JSONB filter conditions scope a unit (region · status · tier)
  • Ingestion rejects events that do not match an active unit

Product defines the SKU. Finance validates the margin. Both operate from one system of record.

For Product Teams

Universal Packaging

Mix and match APIs, AI agents, MCP servers, and your own custom product categories into unified, sellable SKUs. Every product carries its own billable units — pick from the per-category templates or define new ones in the dashboard. Spec versioning means yesterday’s customers stay safe when you ship today’s plan; publishStatus workflow (Draft → In Review → Published → Archived) keeps every change reviewable.

4 GA categories + custom — add new ones via descriptor JSON
32 starter billable-unit templates + define custom units per product
Spec versioning with SHA-256 hashing pins subscriptions to a version
For Engineering

Auto-Discovery & Gateway Sync

Wire it up once, run it forever. Five gateway adapters (Kong, Apigee, AWS, Azure APIM, MuleSoft) auto-import products + push publishStatus back at the edge. Repository Auto-Discovery reads agent.yaml manifests from GitHub, GitLab, or Bitbucket on a paste-the-URL trigger. OpenAPI Import gives you a zero-gateway path. Breaking-change detection compares spec diffs at the line item so a customer’s subscription doesn’t silently break.

5 native gateway plugins with bi-directional sync
Repository Auto-Discovery from Git manifests + OpenAPI spec import
Breaking-change detection with line-item diff analysis
For Finance

COGS Attribution & Margin Protection

Cost-of-goods-sold is attributed at the event level, every API call, token, and agent session, at ingestion time. Not estimated. Not reconciled after the fact. Gross margins are computed per product, per customer, per billing cycle and available before month-end close. Monetized-Product Deletion Protection blocks a delete that would orphan billable subscriptions; webhook drift detection alerts when a monetized asset disappears from the gateway.

Event-level COGS attribution, eliminates month-end allocation guesswork
Per-product gross margin every billing cycle with health + governance scores
Monetized-Product Deletion Protection and webhook drift detection
For the Enterprise

Multi-Tenant Architecture

Run separate, isolated product catalogs for different business units, regions, or partner ecosystems, all from a single pane of glass. Each tenant gets its own catalog, pricing, and billing rules. The parent organization gets unified reporting across all of them, plus per-tenant Spectral lint rulesets and governance scoring.

Isolated catalogs per business unit or partner
Unified revenue reporting across all tenants
Platform of Platforms for complex org hierarchies
Inside the catalog

One screen. Every revenue asset.

The Aforo Product Catalog as a Product or Finance operator sees it. Click any asset to inspect rate plans, subscriptions, governance history, and lifecycle events.

app.aforo.ai/products

Products

62 assets · $4.42M MRR · 71% avg margin

+ Add Product
All (62)API · 38AI Agent · 14MCP Server · 7Agentic API · 3
ProductTypeHealthSubsMRR
Translation API
API96138$1.24M
Embeddings v3
API8984$840K
InsightBot
AI Agent9447$612K
DataPipe MCP
MCP Server9126$488K
Forecast Studio
AI Agent8218$184K

Live product UI · click any asset to drill into Product 360 with rate plans, subscriptions, audit trail, and the spec-diff review panel.

Three Steps

Register. Meter. Monetize. One afternoon.

No YAML files. No deploy queues. No new tickets. Engineering sets up the discovery sources once; Product defines the asset, Finance validates the metric, and revenue starts flowing.

01

Register the Revenue Asset

Name it. Type it. Assign an owner. Every monetizable asset — APIs, AI agents, MCP servers, SaaS modules — enters the system with structured metadata, lifecycle state, and an audit trail. Engineering wires the discovery sources once (gateway adapters, Git access, OpenAPI ingestion); Product runs the catalog daily.

EXAMPLES
Translation API, InsightBot AI Agent, DataPipe MCP Server
02

Attach the Billable Unit

Define the unit of value: API calls, tokens consumed, sessions completed, tool invocations. The metric flows downstream into every rate plan, invoice line item, and margin calculation. Change it once here, pricing, billing, and reporting update automatically.

EXAMPLES
API Calls, AI Tokens, Session Duration, Tool Invocations
03

Activate Both GTM Motions

One catalog feeds two revenue channels simultaneously. Self-serve: publish to your developer storefront, buyers compare plans, subscribe, and hit your APIs in minutes. No sales touch required. Sales-led: your reps pull from the same catalog to construct bespoke enterprise contracts, volume commitments, prepaid drawdowns, custom grandfathering, negotiated SLAs, and multi-year terms. The critical guarantee: what Sales promises in a contract is exactly what Billing invoices. No drift. No revenue leakage from misaligned pricing between channels.

EXAMPLES
Self-serve developer portal, negotiated enterprise contracts, hybrid GTM
Governance

The catalog is also your governance plane.

Every product carries its own spec version, lifecycle stage, and health score. Subscribers pin to versions; reviewers gate publishes; risky assets surface in dashboards. Nothing ships silently.

Spec Versioning

SHA-256 content hashing tracks every change to every OpenAPI or MCP spec. Subscriptions pin to a version, so a customer paying for v1.4 is not silently moved to v2.0 when you ship it. Roll forward (or back) at the catalog level without touching subscriptions.

Breaking-Change Detection

OpenAPI diff analysis flags removed endpoints, parameter-type changes, enum narrowing, and required-field additions before you publish. Reviewers see a structured report; PMs approve or block per change.

Health + Governance Scores

Each product gets a 0–100 Health score (spec quality + version currency) and a 0–100 Governance score (Spectral lint compliance). PM dashboards filter and sort by score so the riskiest assets surface first.

Publish Workflow

DRAFT → IN_REVIEW → PUBLISHED → ARCHIVED with an audit trail. audience (INTERNAL / EXTERNAL / PARTNER) controls who sees each asset; maturityStage (GA / BETA / DEPRECATED / RETIRED) signals lifecycle to subscribers.

Everything your revenue team needs. One dashboard.

The catalog replaces the product spreadsheet, the metrics wiki, and the billing configuration file. All of them.

Live Revenue Ledger

STREAMING
Active Assets62
Avg Margin71%
Federated MRR$4.42M
AssetTypeStatusHealthGovGrowthMRR
Translation API
REST APIGA9692+12.4%$1.24M
Embeddings v3
REST APIGA8987+18.7%$840K
InsightBot
AI AgentGA9488+34.1%$612K
DataPipe MCP
MCP ServerGA9185+8.2%$488K
Forecast Studio
AI AgentBETA8276+62.3%$184K
Vector Search v2
REST APIGA8890+9.6%$732K
Translation v1
REST APIDEPRECATED5872−8.1%$148K
Compliance Bot
Agentic APIDRAFT7164
CATALOG FEEDS YOUR ENTIRE REVENUE STACK
Catalog
What you sell
Pricing Studio
How you charge
Billing Engine
How you collect
Storefront
Where you sell
Operator stories

Three days in the catalog.

Concrete sequences from real operator workflows. Names anonymised; the steps are exactly what the catalog ships.

API Platform Lead

Acme imports 47 APIs from Kong on day one

Acme runs 47 production APIs across 3 Kong clusters. The PMM wants a paid tier shipped in two weeks. The platform team has never had a catalog.

  1. 01Connect Kong via OAuth — credentials encrypted at rest
  2. 02Aforo walks all 3 clusters, deduplicates routes, creates 47 DRAFT catalog entries
  3. 03Platform Lead spot-reviews 4 outliers, approves the rest in bulk
  4. 04PMM ships the first paid tier on day 11 — catalog was ready on day 1
47 assets · 1 afternoon · no JIRA tickets
AI Product Manager

AI team auto-discovers an MCP server from a GitHub URL

You shipped a new internal MCP server last sprint. Capabilities live in a Git-tracked agent.yaml. You want to monetize it externally without re-defining the schema in three places.

  1. 01Paste the GitHub URL into Add Product → Discover
  2. 02Aforo reads agent.yaml, hashes the spec, populates capabilities + default rate plan
  3. 03PM toggles audience: PARTNER and maturityStage: BETA before publish
  4. 04External partner subscribes via storefront; usage starts metering through tools/call
Manifest is the source of truth · zero schema drift
Product Owner

PM deprecates Beta v2 without breaking a single subscription

Translation API v3 ships next month. 138 customers still hit v2. Legacy field shape will be removed — a breaking change that would have meant 138 angry support tickets before Aforo.

  1. 01PM uploads the v3 spec; breaking-change detector flags the removed field + 2 enum narrowings
  2. 02PM marks v2 as maturityStage: DEPRECATED with a 60-day sunset window
  3. 03All 138 subscriptions stay pinned to v2 — they keep working until they upgrade
  4. 04New subscribers route to v3 automatically; storefront badge shows v3 GA / v2 DEPRECATED
0 support tickets · 60-day sunset · clean lifecycle
0+
product categories
API · AI Agent · Agentic API · MCP Server, plus customer-defined categories via descriptor JSON
0
billable-unit templates
8 starter units per category — extend or replace with custom dimensions, multi-dimensional rate plans
0
pricing models per product
Per-unit · flat rate · percentage · included quota · graduated · volume-tiered · staircase · outcome-based
0
catalog capabilities
Discovery, versioning, governance, drift detection, bulk import, health scoring, and more

Your product catalog should drive revenue, not just document it.

Define what you sell. Set how you charge. Go live. Product and Finance work from the same system, no spreadsheets, no manual reconciliation, no engineering queue.