Overview
The Managed Support Calculator API estimates recurring Managed Support investment from a single input: user count. It returns the per-user price, monthly total, annual total, volume discount, savings and tier.
The API is public, requires no authentication, supports GET and POST, uses public CORS, is rate limited to 10 requests per IP per minute, and is documented with an OpenAPI 3.1 specification.
Endpoints
| Method | URL | Use case | Cache |
|---|---|---|---|
| GET | https://neodefender.com/api/managed-support-calculator/calculate | Browser tests, simple HTTP clients and query-parameter integrations. | public, max-age=60 |
| POST | https://neodefender.com/api/managed-support-calculator/calculate | Applications sending JSON bodies. | no-store |
| OPTIONS | https://neodefender.com/api/managed-support-calculator/calculate | CORS preflight. | no-store |
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| users | integer | Yes | 1-9999. Number of users in scope. Values above 500 return enterprise planning state. |
Pricing logic
| User count | Discount | Price per user | Tier |
|---|---|---|---|
| 1-150 | 0% | $59.00/month | small |
| 151-300 | 5% | $56.05/month | mid |
| 301-500 | 10% | $53.10/month | large |
| 501+ | Custom | Enterprise planning required | enterprise |
Monthly total = users x discounted per-user price, rounded to the nearest whole dollar. Annual total is monthly total times 12.
Savings are calculated against the list price of $59.00/user/month.
A minimum 5-user rate applies. Requests for 1-4 users are priced as 5 users and the response sets is_below_minimum: true.
Response schema
Calculated responses include per-user price, monthly and annual totals, list price, discount, savings, tier and contact guidance.
{
"users_count": 200,
"price_per_user_usd": 56.05,
"monthly_total_usd": 11210,
"annual_total_usd": 134520,
"list_price_per_user_usd": 59,
"discount_percentage": 5,
"monthly_savings_usd": 590,
"annual_savings_usd": 7080,
"tier": "mid",
"is_enterprise": false,
"contact_required": true,
"contact_message": "This is an estimate. Microsoft licenses (Microsoft 365, Defender, Intune, etc.) are sold separately. Contact us at hello@neodefender.com for a formal quote and to discuss your specific environment.",
"is_below_minimum": false,
"effective_users": 200
}Enterprise responses do not return a monthly price.
{
"users_count": 750,
"monthly_total_usd": 0,
"tier": "enterprise",
"is_enterprise": true,
"enterprise_reason": "user-count",
"contact_required": true,
"contact_message": "For organizations above 500 users, we design custom Managed Support plans with tailored pricing, dedicated resources and specific SLAs. Contact us at hello@neodefender.com for a custom proposal."
}Examples
Example 1: Small team
curl.exe "https://neodefender.com/api/managed-support-calculator/calculate?users=5"{
"users_count": 5,
"price_per_user_usd": 59,
"monthly_total_usd": 295,
"annual_total_usd": 3540,
"discount_percentage": 0,
"tier": "small",
"is_enterprise": false,
"is_below_minimum": false,
"effective_users": 5
}Example 2: Mid tier
curl.exe -X POST "https://neodefender.com/api/managed-support-calculator/calculate" ^
-H "Content-Type: application/json" ^
-d "{\"users\":200}"{
"users_count": 200,
"price_per_user_usd": 56.05,
"monthly_total_usd": 11210,
"annual_total_usd": 134520,
"discount_percentage": 5,
"tier": "mid",
"is_enterprise": false
}Example 3: Enterprise state
curl.exe "https://neodefender.com/api/managed-support-calculator/calculate?users=750"{
"users_count": 750,
"monthly_total_usd": 0,
"tier": "enterprise",
"is_enterprise": true,
"enterprise_reason": "user-count",
"contact_required": true
}Rate limiting
The Managed Support Calculator API allows 10 requests per IP per minute. GET and POST share the same counter.
| Header | Description |
|---|---|
| X-RateLimit-Limit | Maximum requests allowed in the current window. |
| X-RateLimit-Remaining | Requests remaining in the current window. |
| Retry-After | Seconds to wait before retrying after a 429. |
Authentication
No authentication is required. CORS is public with Access-Control-Allow-Origin: *, so the endpoint is safe for browser, server and integration use.
Errors
400 - Validation failed
Returned when the users parameter is missing, invalid, out of range or duplicated.
429 - Rate limit exceeded
Returned when the per-IP request limit is exceeded. The Retry-After header indicates the wait time.
500 - Internal server error
Returned for unexpected errors. Retry the request; if it persists, contact hello@neodefender.com.
OpenAPI specification
The machine-readable OpenAPI 3.1 specification is available for code generation, tool discovery and integration work.
OpenAPI 3.1 specification

