Skip to main content
NeoDefender

Developer documentation

Managed Support Calculator API

Programmatic access to Microsoft 365 Managed Support monthly and annual investment estimates. Public REST API with OpenAPI 3.1 specification for integrations and developer use.

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

MethodURLUse caseCache
GEThttps://neodefender.com/api/managed-support-calculator/calculateBrowser tests, simple HTTP clients and query-parameter integrations.public, max-age=60
POSThttps://neodefender.com/api/managed-support-calculator/calculateApplications sending JSON bodies.no-store
OPTIONShttps://neodefender.com/api/managed-support-calculator/calculateCORS preflight.no-store

Parameters

NameTypeRequiredDescription
usersintegerYes1-9999. Number of users in scope. Values above 500 return enterprise planning state.

Pricing logic

User countDiscountPrice per userTier
1-1500%$59.00/monthsmall
151-3005%$56.05/monthmid
301-50010%$53.10/monthlarge
501+CustomEnterprise planning requiredenterprise

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.

HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the current window.
X-RateLimit-RemainingRequests remaining in the current window.
Retry-AfterSeconds 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

Related resources