Reference
Public catalog
GET /catalog: the keyless, official list of NEXTOREx apps, plans, prices and limits.
The public catalog is the official, machine-readable list of what NEXTOREx sells: applications, plans, prices and limits. It is the same source the NEXTOREx website uses to show pricing.
GET /catalog- No API key is needed, and no Developer API access is required. It is public information.
- It is safe to call from a browser. It accepts only
GET,HEADandOPTIONSand sets permissive cross-origin headers; theAuthorizationheader is deliberately not allowed on it. - Optional query parameter
app=erp|crm|educationreturns a single application. - Responses are cacheable for five minutes and carry an
ETag. SendIf-None-Matchto receive304 Not Modified. - Limited to 120 requests per minute per IP address.
How to read it
- ERP / POS, CRM and Education are separate sellable applications. Each has its own plans.
- A subscription can include several applications, with one plan per application.
- Owning one application never grants another.
- A subscription uses one billing period and one currency for all of its applications today (
subscription_rulessays so). - Premium platform features such as Developer API, White Label, custom domains and reseller capability are not applications and never appear in
apps. - Prices are explicit per period and per currency. They are not converted: the yearly price is not 12 times the monthly price, and a USD price is not derived from a PKR price.
- A limit of
nullmeans unlimited.
Example response (shortened)
Prices and limits come from the live catalog. Treat this example as a picture of the shape, not as a price list.
{
"data": {
"apps": [
{
"code": "crm",
"name": "CRM",
"plans": [
{
"slug": "crm_basic",
"name": "CRM Basic",
"tier": "basic",
"most_popular": false,
"available": true,
"description": "CRM without ERP or POS, for teams that only need to manage leads, deals and appointments.",
"features": ["Leads with pipeline & Kanban board", "Up to 3 staff users"],
"trial_days": 0,
"billing_periods": ["monthly", "yearly"],
"currencies": ["PKR", "USD"],
"prices": {
"monthly": { "PKR": 2990, "USD": 19 },
"yearly": { "PKR": 29900, "USD": 190 }
},
"limits": { "users": 3 }
}
]
}
],
"billing": { "periods": ["monthly", "yearly"], "currencies": ["PKR", "USD"] },
"subscription_rules": {
"multiple_apps": true,
"one_billing_period": true,
"one_currency": true,
"one_plan_per_app": true
}
}
}Always read prices from the response instead of copying them into your own code or documents, so you never show a stale price.