[{"data":1,"prerenderedAt":815},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-pricing-and-billing":220,"-getting-started-pricing-and-billing-surround":810},[4,46,68,205],{"title":5,"icon":6,"modifiedAt":7,"path":8,"stem":9,"children":10,"page":6},"Getting Started",false,"2026-04-30T19:15:33.000Z","\u002Fgetting-started","1.getting-started",[11,16,21,26,31,36,41],{"title":12,"path":13,"stem":14,"icon":15},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F1.quickstart","i-lucide-fast-forward",{"title":17,"path":18,"stem":19,"icon":20},"Core Concepts","\u002Fgetting-started\u002Fcore-concepts","1.getting-started\u002F2.core-concepts","i-lucide-workflow",{"title":22,"path":23,"stem":24,"icon":25},"Configs Anatomy","\u002Fgetting-started\u002Fconfigs","1.getting-started\u002F3.configs","i-lucide-file-cog",{"title":27,"path":28,"stem":29,"icon":30},"Architecture","\u002Fgetting-started\u002Farchitecture","1.getting-started\u002F4.architecture","i-lucide-layers",{"title":32,"path":33,"stem":34,"icon":35},"JSON Schema Validation","\u002Fgetting-started\u002Fjson-schema-validation","1.getting-started\u002F5.json-schema-validation","i-lucide-braces",{"title":37,"path":38,"stem":39,"icon":40},"Testing Rules","\u002Fgetting-started\u002Ftesting-targeting-rules","1.getting-started\u002F6.testing-targeting-rules","i-lucide-flask-conical",{"title":42,"path":43,"stem":44,"icon":45},"Pricing & Billing","\u002Fgetting-started\u002Fpricing-and-billing","1.getting-started\u002F7.pricing-and-billing","i-lucide-credit-card",{"title":47,"modifiedAt":48,"defaultOpen":49,"path":50,"stem":51,"children":52,"page":6},"Monitoring","2026-09-24T23:33:20.000Z",true,"\u002Fmonitoring","2.monitoring",[53,58,63],{"title":54,"path":55,"stem":56,"icon":57},"Activity","\u002Fmonitoring\u002Factivity","2.monitoring\u002F1.activity","i-lucide-activity",{"title":59,"path":60,"stem":61,"icon":62},"Lifecycle","\u002Fmonitoring\u002Flifecycle","2.monitoring\u002F2.lifecycle","i-lucide-recycle",{"title":64,"path":65,"stem":66,"icon":67},"Alerts","\u002Fmonitoring\u002Falerts","2.monitoring\u002F3.alerts","i-lucide-bell",{"title":69,"modifiedAt":48,"defaultOpen":49,"path":70,"stem":71,"children":72,"page":6},"SDKs","\u002Fsdks","3.sdks",[73,78,99,124,140,166],{"title":74,"path":75,"stem":76,"icon":77},"Available SDKs","\u002Fsdks\u002Favailable-sdks","3.sdks\u002F1.available-sdks","i-lucide-list",{"title":79,"modifiedAt":48,"icon":80,"defaultOpen":6,"path":81,"stem":82,"children":83,"page":6},"Browser SDKs","i-lucide-monitor","\u002Fsdks\u002Fbrowser","3.sdks\u002F2.browser",[84,89,94],{"title":85,"path":86,"stem":87,"icon":88},"Javascript","\u002Fsdks\u002Fbrowser\u002Fjavascript","3.sdks\u002F2.browser\u002F1.javascript","cd-logos-javascript",{"title":90,"path":91,"stem":92,"icon":93},"React","\u002Fsdks\u002Fbrowser\u002Freact","3.sdks\u002F2.browser\u002F2.react","cd-logos-react-light",{"title":95,"path":96,"stem":97,"icon":98},"Vue","\u002Fsdks\u002Fbrowser\u002Fvue","3.sdks\u002F2.browser\u002F3.vue","cd-logos-vue",{"title":100,"modifiedAt":48,"icon":101,"defaultOpen":6,"path":102,"stem":103,"children":104,"page":6},"Mobile SDKs","i-lucide-smartphone","\u002Fsdks\u002Fmobile","3.sdks\u002F3.mobile",[105,109,114,119],{"title":106,"path":107,"stem":108,"icon":93},"React Native","\u002Fsdks\u002Fmobile\u002Freact-native","3.sdks\u002F3.mobile\u002F1.react-native",{"title":110,"path":111,"stem":112,"icon":113},"Flutter","\u002Fsdks\u002Fmobile\u002Fflutter","3.sdks\u002F3.mobile\u002F2.flutter","cd-logos-flutter",{"title":115,"path":116,"stem":117,"icon":118},"Swift","\u002Fsdks\u002Fmobile\u002Fswift","3.sdks\u002F3.mobile\u002F3.swift","cd-logos-swift",{"title":120,"path":121,"stem":122,"icon":123},"Android","\u002Fsdks\u002Fmobile\u002Fandroid","3.sdks\u002F3.mobile\u002F4.android","cd-logos-android",{"title":125,"modifiedAt":48,"icon":126,"defaultOpen":6,"path":127,"stem":128,"children":129,"page":6},"Meta-framework SDKs","i-lucide-monitor-smartphone","\u002Fsdks\u002Fmeta","3.sdks\u002F4.meta",[130,135],{"title":131,"path":132,"stem":133,"icon":134},"Next.js","\u002Fsdks\u002Fmeta\u002Fnextjs","3.sdks\u002F4.meta\u002F1.nextjs","cd-logos-nextjs",{"title":136,"path":137,"stem":138,"icon":139},"Nuxt","\u002Fsdks\u002Fmeta\u002Fnuxt","3.sdks\u002F4.meta\u002F2.nuxt","cd-logos-nuxt",{"title":141,"modifiedAt":48,"icon":142,"defaultOpen":6,"path":143,"stem":144,"children":145,"page":6},"Server SDKs","i-lucide-server","\u002Fsdks\u002Fserver","3.sdks\u002F5.server",[146,151,156,161],{"title":147,"path":148,"stem":149,"icon":150},"Node.js","\u002Fsdks\u002Fserver\u002Fnode-js","3.sdks\u002F5.server\u002F1.node-js","cd-logos-nodejs",{"title":152,"path":153,"stem":154,"icon":155},"Python","\u002Fsdks\u002Fserver\u002Fpython","3.sdks\u002F5.server\u002F2.python","cd-logos-python",{"title":157,"path":158,"stem":159,"icon":160},"Java","\u002Fsdks\u002Fserver\u002Fjava","3.sdks\u002F5.server\u002F3.java","cd-logos-java",{"title":162,"path":163,"stem":164,"icon":165},".NET","\u002Fsdks\u002Fserver\u002Fdotnet","3.sdks\u002F5.server\u002F4.dotnet","cd-logos-dotnet",{"title":167,"modifiedAt":48,"icon":168,"defaultOpen":6,"path":169,"stem":170,"children":171,"page":6},"OpenFeature Providers","cd-logos-openfeature","\u002Fsdks\u002Fopenfeature","3.sdks\u002F6.openfeature",[172,177,181,185,189,193,197,201],{"title":173,"path":174,"stem":175,"icon":168,"icons":176},"Web","\u002Fsdks\u002Fopenfeature\u002Fweb","3.sdks\u002F6.openfeature\u002F1.web",[168,88],{"title":115,"path":178,"stem":179,"icon":168,"icons":180},"\u002Fsdks\u002Fopenfeature\u002Fswift","3.sdks\u002F6.openfeature\u002F2.swift",[168,118],{"title":120,"path":182,"stem":183,"icon":168,"icons":184},"\u002Fsdks\u002Fopenfeature\u002Fandroid","3.sdks\u002F6.openfeature\u002F3.android",[168,123],{"title":110,"path":186,"stem":187,"icon":168,"icons":188},"\u002Fsdks\u002Fopenfeature\u002Fflutter","3.sdks\u002F6.openfeature\u002F4.flutter",[168,113],{"title":147,"path":190,"stem":191,"icon":168,"icons":192},"\u002Fsdks\u002Fopenfeature\u002Fnode-js","3.sdks\u002F6.openfeature\u002F5.node-js",[168,150],{"title":152,"path":194,"stem":195,"icon":168,"icons":196},"\u002Fsdks\u002Fopenfeature\u002Fpython","3.sdks\u002F6.openfeature\u002F6.python",[168,155],{"title":157,"path":198,"stem":199,"icon":168,"icons":200},"\u002Fsdks\u002Fopenfeature\u002Fjava","3.sdks\u002F6.openfeature\u002F7.java",[168,160],{"title":162,"path":202,"stem":203,"icon":168,"icons":204},"\u002Fsdks\u002Fopenfeature\u002Fdotnet","3.sdks\u002F6.openfeature\u002F8.dotnet",[168,165],{"title":206,"modifiedAt":48,"defaultOpen":49,"path":207,"stem":208,"children":209,"page":6},"Integrations","\u002Fintegrations","4.integrations",[210,215],{"title":211,"path":212,"stem":213,"icon":214},"Terraform","\u002Fintegrations\u002Fterraform","4.integrations\u002F1.terraform","cd-logos-terraform",{"title":216,"path":217,"stem":218,"icon":219},"MCP","\u002Fintegrations\u002Fmcp","4.integrations\u002F2.mcp","cd-logos-mcp",{"id":221,"title":222,"body":223,"description":801,"extension":802,"links":803,"meta":804,"navigation":806,"path":43,"seo":807,"stem":44,"__hash__":809},"docs\u002F1.getting-started\u002F7.pricing-and-billing.md","Pricing and Billing",{"type":224,"value":225,"toc":788},"minimark",[226,230,247,259,264,267,340,344,347,381,411,414,418,421,490,559,626,629,638,642,645,660,667,671,684,687,691,704,707,710,719,732,740,743,747,759,762,768,772],[227,228,229],"p",{},"ConfigDirector has two pricing options, and an organization is on exactly one of them:",[231,232,233,241],"ul",{},[234,235,236,240],"li",{},[237,238,239],"strong",{},"Free",": no payment method on file. Usage is capped at the free allowance, and the organization can have up to 5 projects and 100 configs.",[234,242,243,246],{},[237,244,245],{},"Pay as you go",": a payment method is on file. The same free allowance applies every month, and usage beyond it is billed at the published rates. There is no monthly fee, and projects, configs, seats, and environments are unlimited.",[227,248,249,250,258],{},"Prices are in USD, plus applicable tax. The ",[251,252,257],"a",{"href":253,"rel":254,"target":256},"https:\u002F\u002Fwww.configdirector.com\u002Fpricing",[255],"noopener","_blank","pricing page"," has a cost estimator; this page explains how the billing works.",[260,261,263],"h2",{"id":262},"billing-metrics","Billing metrics",[227,265,266],{},"Three usage quantities are metered. Everything else, including seats, environments, evaluations, and alerts, is free.",[268,269,270,283],"table",{},[271,272,273],"thead",{},[274,275,276,280],"tr",{},[277,278,279],"th",{},"Metric",[277,281,282],{},"What is counted",[284,285,286,308,324],"tbody",{},[274,287,288,292],{},[289,290,291],"td",{},"Client sessions",[289,293,294,295,299,300,303,304,307],{},"Each client SDK instance is one session for as long as that instance is used, whatever the number of calls to ",[296,297,298],"code",{},"initialize"," or ",[296,301,302],{},"updateContext",". Browser SDKs keep the session identifier in ",[296,305,306],{},"localStorage",", so a session spans page loads and lasts up to 6 hours.",[274,309,310,313],{},[289,311,312],{},"Service connection hours",[289,314,315,316,319,320,323],{},"The hours server SDKs spend connected or persistently polling. A server SDK in ",[296,317,318],{},"polling"," mode counts 5 minutes per request, which at the default 5-minute interval matches a ",[296,321,322],{},"streaming"," connection. 800 hours covers one server connected all month, with a buffer for deploys and traffic spikes.",[274,325,326,329],{},[289,327,328],{},"Admin API requests",[289,330,331,332,335,336,339],{},"Calls to the Admin API, including every tool call made through the ",[251,333,334],{"href":217},"MCP server"," and every change applied by the ",[251,337,338],{"href":212},"Terraform provider",". Dashboard use and SDK evaluations are not Admin API requests.",[260,341,343],{"id":342},"the-free-allowance","The free allowance",[227,345,346],{},"Every month, each organization gets this allowance at no cost, on Free and on Pay as you go alike:",[268,348,349,358],{},[271,350,351],{},[274,352,353,355],{},[277,354,279],{},[277,356,357],{},"Free allowance per month",[284,359,360,367,374],{},[274,361,362,364],{},[289,363,291],{},[289,365,366],{},"40,000",[274,368,369,371],{},[289,370,312],{},[289,372,373],{},"3,200, about 4 servers connected continuously all month",[274,375,376,378],{},[289,377,328],{},[289,379,380],{},"10,000",[227,382,383,384,388,389,392,393,396,397,400,401,405,406,410],{},"On Free, the allowance is a cap. When a Free organization goes past the allowance of a metric, a ",[251,385,387],{"href":386},"\u002Fmonitoring\u002Falerts#free-allowance-exceeded","free allowance exceeded"," alert is raised and a ",[237,390,391],{},"billing grace period"," of 7 days starts, in which the organization can start pay as you go. The alert names the date and time the grace period ends. If the grace period ends with usage still over the allowance, service is suspended: the service stops accepting SDK connections and closes the open ones, so your applications fall back to the in-code default value they pass to the SDK, and the Admin API and the MCP server refuse requests, all with ",[296,394,395],{},"429 Too Many Requests"," and a ",[296,398,399],{},"Retry-After"," header, as described under ",[251,402,404],{"href":403},"#spending-limit","Spending limit",". The dashboard keeps working and shows a banner. A ",[251,407,409],{"href":408},"\u002Fmonitoring\u002Falerts#service-suspended-free-allowance-exceeded","service suspended: free allowance exceeded"," alert is raised and emailed. Service is reinstated as soon as pay as you go starts, or shortly after the next billing cycle begins.",[227,412,413],{},"On Pay as you go, the allowance is the first price tier, priced at zero. Nothing is charged until usage goes past it.",[260,415,417],{"id":416},"pay-as-you-go-rates","Pay as you go rates",[227,419,420],{},"Usage beyond the free allowance is priced in tiers. A tier's rate applies only to the usage that falls inside it, so the free allowance stays free and the rate drops as usage grows.",[268,422,423,435],{},[271,424,425],{},[274,426,427,429,432],{},[277,428,291],{},[277,430,431],{},"Rate per session",[277,433,434],{},"Per 10K sessions",[284,436,437,446,457,468,479],{},[274,438,439,442,444],{},[289,440,441],{},"First 40,000",[289,443,239],{},[289,445],{},[274,447,448,451,454],{},[289,449,450],{},"40,000 to 500,000",[289,452,453],{},"$0.00008",[289,455,456],{},"$0.80",[274,458,459,462,465],{},[289,460,461],{},"500,000 to 2,500,000",[289,463,464],{},"$0.00006",[289,466,467],{},"$0.60",[274,469,470,473,476],{},[289,471,472],{},"2,500,000 to 10,000,000",[289,474,475],{},"$0.00004",[289,477,478],{},"$0.40",[274,480,481,484,487],{},[289,482,483],{},"Over 10,000,000",[289,485,486],{},"$0.000035",[289,488,489],{},"$0.35",[268,491,492,504],{},[271,493,494],{},[274,495,496,498,501],{},[277,497,312],{},[277,499,500],{},"Rate per hour",[277,502,503],{},"Per 1,000 hours",[284,505,506,515,526,537,548],{},[274,507,508,511,513],{},[289,509,510],{},"First 3,200",[289,512,239],{},[289,514],{},[274,516,517,520,523],{},[289,518,519],{},"3,200 to 8,000",[289,521,522],{},"$0.005",[289,524,525],{},"$5.00",[274,527,528,531,534],{},[289,529,530],{},"8,000 to 24,000",[289,532,533],{},"$0.004",[289,535,536],{},"$4.00",[274,538,539,542,545],{},[289,540,541],{},"24,000 to 80,000",[289,543,544],{},"$0.003",[289,546,547],{},"$3.00",[274,549,550,553,556],{},[289,551,552],{},"Over 80,000",[289,554,555],{},"$0.0025",[289,557,558],{},"$2.50",[268,560,561,573],{},[271,562,563],{},[274,564,565,567,570],{},[277,566,328],{},[277,568,569],{},"Rate per request",[277,571,572],{},"Per 10K requests",[284,574,575,584,595,604,615],{},[274,576,577,580,582],{},[289,578,579],{},"First 10,000",[289,581,239],{},[289,583],{},[274,585,586,589,592],{},[289,587,588],{},"10,000 to 50,000",[289,590,591],{},"$0.00005",[289,593,594],{},"$0.50",[274,596,597,600,602],{},[289,598,599],{},"50,000 to 300,000",[289,601,475],{},[289,603,478],{},[274,605,606,609,612],{},[289,607,608],{},"300,000 to 1,000,000",[289,610,611],{},"$0.00003",[289,613,614],{},"$0.30",[274,616,617,620,623],{},[289,618,619],{},"Over 1,000,000",[289,621,622],{},"$0.000025",[289,624,625],{},"$0.25",[227,627,628],{},"For example, 140,000 client sessions in a month cost nothing for the first 40,000 and $8.00 for the remaining 100,000.",[227,630,631,632,637],{},"Organizations with usage, capacity, or support needs beyond these rates can ask for ",[251,633,636],{"href":634,"rel":635,"target":256},"https:\u002F\u002Fwww.configdirector.com\u002Fcustom-pricing",[255],"custom pricing",".",[260,639,641],{"id":640},"the-billing-cycle","The billing cycle",[227,643,644],{},"The billing cycle is the calendar month in UTC. Usage counts reset at the start of each month, and the free allowance applies again.",[227,646,647,648,651,652,655,656,659],{},"On Pay as you go, the month's usage above the free allowance is invoiced on the first day of the following month and charged to the payment method on file. The ",[237,649,650],{},"Billing & Usage"," page in the dashboard shows the month so far: each metric against the free allowance on the ",[237,653,654],{},"Usage"," tab, with the month-to-date spend in total and per metric, and the invoices and receipts on the ",[237,657,658],{},"Invoices & Receipts"," tab.",[227,661,662,663,666],{},"If a payment fails, service keeps running. The ",[237,664,665],{},"Billing"," tab shows the failed payment, and updating the payment method retries it.",[260,668,670],{"id":669},"starting-pay-as-you-go","Starting pay as you go",[227,672,673,674,676,677,679,680,683],{},"On the ",[237,675,665],{}," tab of the ",[237,678,650],{}," page, ",[237,681,682],{},"Start pay as you go"," shows the rates and asks for a payment method. Pay as you go is active as soon as the payment method is saved, with no interruption in service. Owners and billing managers can do this, and every other billing change described on this page.",[227,685,686],{},"An organization that chose Pay as you go at sign-up stays on Free until a payment method is added; the dashboard reminds you until then.",[260,688,690],{"id":689},"switching-to-free","Switching to Free",[227,692,693,696,697,699,700,703],{},[237,694,695],{},"Switch to Free"," on the ",[237,698,665],{}," tab schedules the switch for the end of the current billing cycle. Usage until then is invoiced at the published rates, and the organization returns to Free when the cycle ends. Until then, the switch can be undone with ",[237,701,702],{},"Resume",". An organization must be within the Free limits of 5 projects and 100 configs to switch; the dashboard says what to remove if it is not.",[227,705,706],{},"The spending limit and the billing alert thresholds are removed when the organization returns to Free, and the free allowance applies as a cap again.",[260,708,404],{"id":709},"spending-limit",[227,711,712,713,716,717,659],{},"A Pay as you go organization can set a ",[237,714,715],{},"spending limit",": a dollar amount per billing cycle, of at least $1.00, that the invoice never exceeds. It is set and removed on the ",[237,718,665],{},[227,720,721,722,726,727,731],{},"The spend alerts track the limit. When the month's spend is on track to reach it, a ",[251,723,725],{"href":724},"\u002Fmonitoring\u002Falerts#spend-projected-to-reach-the-spending-limit","spend projected to reach the spending limit"," alert is raised at 70% and again at 90% of the limit. When spend reaches the limit, a ",[251,728,730],{"href":729},"\u002Fmonitoring\u002Falerts#spending-limit-reached","spending limit reached"," alert is raised and service is suspended for the rest of the billing cycle: the service stops accepting SDK connections and closes the open ones, so your applications fall back to the in-code default value they pass to the SDK, and the Admin API and the MCP server refuse requests. The dashboard keeps working. Nothing above the limit is charged.",[227,733,734,735,396,737,739],{},"While service is suspended, the SDK endpoints, the Admin API, and the MCP server answer every request with ",[296,736,395],{},[296,738,399],{}," header. The SDKs keep retrying in the background with their usual backoff, so they pick up where they left off once service resumes, without a restart. The dashboard shows a banner with a link to the spending limit.",[227,741,742],{},"Service resumes as soon as the limit is raised or removed, or shortly after the next billing cycle starts. Raising or removing the limit takes effect right away and resolves the open spending limit alerts. Setting the limit below the month's spend so far is allowed; the next hourly check raises the reached alert and suspends service. Without a spending limit, the service keeps running whatever the usage, and all of it is billed at the published rates.",[260,744,746],{"id":745},"billing-alert-thresholds","Billing alert thresholds",[227,748,749,750,753,754,758],{},"A Pay as you go organization can add up to 5 ",[237,751,752],{},"billing alert thresholds",", each a distinct dollar amount of monthly spend with a priority of Medium, High, or Critical. When the month's spend reaches a threshold, a ",[251,755,757],{"href":756},"\u002Fmonitoring\u002Falerts#billing-alert-threshold-reached","billing alert threshold reached"," alert is raised at that priority. Thresholds never affect the service; they are a heads-up about the invoice to come.",[227,760,761],{},"Threshold alerts are emailed to owners, admins, and billing managers at the priority chosen for the threshold: Critical right away and Medium or High in the daily digest. A threshold above the spending limit never fires, since the invoice never exceeds the limit.",[227,763,764,765,767],{},"Thresholds are managed on the ",[237,766,665],{}," tab. Editing or deleting a threshold resolves its open alert right away, and raising a threshold during the month arms it again.",[260,769,771],{"id":770},"other-limits","Other limits",[231,773,774,782,785],{},[234,775,776,777,781],{},"JSON Schema validation is available on both options. Free has an hourly fair-use budget on schema changes and value validations, described on the ",[251,778,780],{"href":779},"\u002Fgetting-started\u002Fjson-schema-validation#hourly-budgets-on-free","JSON Schema validation"," page; Pay as you go has none.",[234,783,784],{},"The MCP server accepts up to 60 tool calls per minute per organization on both options.",[234,786,787],{},"Configs are limited to 16 KB per value and 1 MB per project.",{"title":789,"searchDepth":790,"depth":790,"links":791},"",2,[792,793,794,795,796,797,798,799,800],{"id":262,"depth":790,"text":263},{"id":342,"depth":790,"text":343},{"id":416,"depth":790,"text":417},{"id":640,"depth":790,"text":641},{"id":669,"depth":790,"text":670},{"id":689,"depth":790,"text":690},{"id":709,"depth":790,"text":404},{"id":745,"depth":790,"text":746},{"id":770,"depth":790,"text":771},"The Free and Pay as you go options, the free allowance, the usage rates, the billing cycle, the spending limit, and billing alert thresholds","md",null,{"modifiedAt":805},"2026-10-02T01:03:55.000Z",{"title":42,"icon":45},{"title":222,"description":808},"How ConfigDirector bills usage. The Free and Pay as you go options, the monthly free allowance, tiered usage rates, the UTC billing cycle, the spending limit, and billing alert thresholds.","mPfA5WusfQIOwK2NJaoCFBo2XFX7hJVb4npPMhhH47s",[811,813],{"title":37,"path":38,"stem":39,"description":812,"icon":40,"children":-1},"See which value a context would receive from the targeting rules you are editing, and why, before you save",{"title":54,"path":55,"stem":56,"description":814,"icon":57,"children":-1},"See how often each config is evaluated, which values are served, and which SDKs are asking",1790991326910]