{"name":"The Leo King Business Intelligence API Versioning And Limits","version":"v1","status":"public-contract","contractVersion":"2026-07-07.enterprise-trust-console-audit-webhook-versioning-limits-examples-support-procurement-conformance-data-processing-launch-readiness-access-control-compliance-map-ai-governance-v1","lastReviewedAt":"2026-07-07","lifecycle":{"currentVersion":"v1","status":"live","stability":"Public v1 routes are live alpha/beta. Route names, auth headers, envelopes, and billing semantics are treated as compatibility-sensitive.","compatibilityGuarantees":["Public metadata routes remain unauthenticated unless a route is explicitly marked internal.","Successful paid responses keep the standard request_id, data, usage, and meta envelope.","Error responses keep request_id plus error.code, error.message, and optional error.details.","Core Compute routes stay no-AI unless a new versioned endpoint or explicit route policy says otherwise.","Credits are charged only after successful generation or deterministic completion."],"compatibleChanges":["Adding optional response fields.","Adding enum values when clients are expected to ignore unknown values.","Adding new public metadata routes.","Adding new endpoints under /v1 when existing endpoints keep their contract.","Improving examples, SDK helpers, and docs without changing response semantics."],"breakingChanges":["Removing or renaming existing response fields that are documented in OpenAPI.","Changing credit cost, billing lane, auth requirement, or idempotency behavior for an existing route.","Changing route paths, HTTP methods, or required request fields.","Publishing fallback-quality AI output as a successful billable response."],"deprecationPolicy":{"minimumNotice":"90 days for beta/public metadata routes; 180 days target for paid production routes once enterprise terms are signed.","announcementSurfaces":["/api/v1/changelog","/api/v1/versioning","/api-docs#changelog","SDK release notes once packages are published","enterprise support packet for signed customers"],"migrationSupport":["OpenAPI examples for old and new fields during the overlap window.","SDK helper aliases where practical.","Buyer-path smoke updates before old behavior is removed."]},"sunsetPolicy":{"minimumNotice":"No paid production route should be sunset without a replacement path, migration window, and support escalation path.","requirementsBeforeSunset":["Replacement endpoint or documented non-replacement rationale.","Changelog entry with exact dates.","OpenAPI update and docs update.","Enterprise account notice when signed terms apply."]},"legacySupport":{"routes":["/api/v1/customer/profile","/api/v1/mundane/forecast"],"policy":"Legacy aliases stay available during alpha migration and must keep response envelopes compatible until the changelog publishes a migration window."},"betaBoundary":"Alpha/beta labels mean capacity, package publication, and enterprise terms are still hardening; they do not permit silent breaking changes in documented contracts."},"rateLimits":{"status":"beta","mode":"API_RATE_LIMIT_MODE is off locally by default, log/enforce by environment, and enforce in production unless explicitly configured.","algorithm":"Sliding window backed by Upstash Redis or Vercel marketplace Redis aliases.","window":"60 seconds per organization, key, endpoint, and plan limit.","identifiers":["organization id","API key id","endpoint path"],"responseHeaders":["RateLimit-Limit","RateLimit-Remaining","RateLimit-Reset","Retry-After","X-RateLimit-Reset-At"],"errorDetails":["limit","remaining","resetAt"],"partnerGuidance":["Back off on 429 responses and retry after Retry-After when present.","Use async jobs for deep AI work rather than high-concurrency synchronous retries.","Coordinate enterprise load tests before raising concurrency against production routes.","Treat repeated 429 responses as a plan or traffic-shaping issue, not as a model failure."],"enterpriseScaling":"Enterprise limits can be raised by signed contract after traffic shape, endpoint mix, output quality risk, and provider budget are reviewed.","planLimits":[{"plan":"core","name":"Core Compute","requestsPerMinute":80,"monthlyCredits":5000},{"plan":"developer","name":"Basic","requestsPerMinute":120,"monthlyCredits":10000},{"plan":"growth","name":"Pro","requestsPerMinute":240,"monthlyCredits":50000},{"plan":"scale","name":"Business","requestsPerMinute":600,"monthlyCredits":200000},{"plan":"enterprise","name":"Enterprise","requestsPerMinute":1200,"monthlyCredits":1000000}]},"links":{"docs":"/api-docs","openapi":"/api/v1/openapi","changelog":"/api/v1/changelog","errors":"/api/v1/errors","postman":"/api/v1/postman","status":"/api/v1/status","sla":"/api/v1/sla","accessControl":"/api/v1/access-control","onboarding":"/api/v1/onboarding","support":"/api/v1/support","sdks":"/api/v1/sdks","migrations":"/api/v1/migrations","procurement":"/api/v1/procurement","conformance":"/api/v1/conformance","dataProcessing":"/api/v1/data-processing","compliance":"/api/v1/compliance"}}