[{"data":1,"prerenderedAt":1060},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fconcepts\u002Fbudgets":54,"\u002Fdocs\u002Fconcepts\u002Fbudgets-surround":1055},[4,16,32,47],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Introduction","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started\u002F1.index",[9,11],{"title":5,"path":6,"stem":7,"icon":10},"i-lucide-house",{"title":12,"path":13,"stem":14,"icon":15},"Quickstart","\u002Fdocs\u002Fgetting-started\u002Fquickstart","1.docs\u002F1.getting-started\u002F2.quickstart","i-lucide-rocket",{"title":17,"path":18,"stem":19,"children":20,"page":31},"Sdk","\u002Fdocs\u002Fsdk","1.docs\u002F2.sdk",[21,26],{"title":22,"path":23,"stem":24,"icon":25},"TypeScript SDK","\u002Fdocs\u002Fsdk\u002Ftypescript","1.docs\u002F2.sdk\u002F1.typescript","i-simple-icons-typescript",{"title":27,"path":28,"stem":29,"icon":30},"Python SDK","\u002Fdocs\u002Fsdk\u002Fpython","1.docs\u002F2.sdk\u002F2.python","i-simple-icons-python",false,{"title":33,"path":34,"stem":35,"children":36,"page":31},"Concepts","\u002Fdocs\u002Fconcepts","1.docs\u002F3.concepts",[37,42],{"title":38,"path":39,"stem":40,"icon":41},"Pricing database","\u002Fdocs\u002Fconcepts\u002Fpricing-database","1.docs\u002F3.concepts\u002F1.pricing-database","i-lucide-database",{"title":43,"path":44,"stem":45,"icon":46},"Budget guard","\u002Fdocs\u002Fconcepts\u002Fbudgets","1.docs\u002F3.concepts\u002F2.budgets","i-lucide-shield",{"title":48,"path":49,"stem":50,"children":51,"icon":53},"API & MCP","\u002Fdocs\u002Fapi-and-mcp","1.docs\u002F4.api-and-mcp\u002F1.index",[52],{"title":48,"path":49,"stem":50,"icon":53},"i-lucide-plug-zap",{"id":55,"title":43,"body":56,"description":1049,"extension":1050,"meta":1051,"navigation":1052,"path":44,"seo":1053,"stem":45,"__hash__":1054},"docs\u002F1.docs\u002F3.concepts\u002F2.budgets.md",{"type":57,"value":58,"toc":1040},"minimark",[59,63,68,97,100,104,112,134,140,144,147,173,177,578,582,868,875,1036],[60,61,62],"p",{},"The budget guard is the enforcement half of Margint. Analytics without a kill switch just tells you how much money you already lost.",[64,65,67],"h2",{"id":66},"how-it-works","How it works",[69,70,71,75,87,90],"ol",{},[72,73,74],"li",{},"In the dashboard, configure a budget — workspace-wide, per-customer, or per-feature.",[72,76,77,78,82,83,86],{},"Wrap hot LLM calls in ",[79,80,81],"code",{},"guardedCall()"," (TS) \u002F ",[79,84,85],{},"guarded_call()"," (Python).",[72,88,89],{},"Before the call, the SDK hits a budget-check endpoint (cached 60 s).",[72,91,92,93,96],{},"If the customer is over budget, the SDK throws ",[79,94,95],{},"BudgetExceededError"," — you handle it however you like.",[60,98,99],{},"The check is fast. The endpoint is backed by Redis and typically responds in single-digit milliseconds.",[64,101,103],{"id":102},"budget-actions","Budget actions",[60,105,106,107,111],{},"Every budget has an ",[108,109,110],"strong",{},"action",":",[113,114,115,123],"ul",{},[72,116,117,122],{},[108,118,119],{},[79,120,121],{},"warn"," — budget is over, but the call still runs. The dashboard surfaces the breach and notifications fire. Use for monitoring-only rollouts.",[72,124,125,130,131,133],{},[108,126,127],{},[79,128,129],{},"block"," — SDK throws ",[79,132,95],{},". The call does not run. Use this to actually stop spend.",[60,135,136,137,139],{},"For graceful degradation (fall back to a cheaper model on breach), set the budget to ",[79,138,129],{}," and handle the thrown error in your own code — see the example below.",[64,141,143],{"id":142},"scopes","Scopes",[60,145,146],{},"Budgets stack. A request is allowed only if every applicable budget is satisfied.",[113,148,149,155,161,167],{},[72,150,151,154],{},[108,152,153],{},"Workspace-wide"," — total spend across all customers \u002F features.",[72,156,157,160],{},[108,158,159],{},"Per-customer"," — one customer, all features.",[72,162,163,166],{},[108,164,165],{},"Per-feature"," — one feature across all customers.",[72,168,169,172],{},[108,170,171],{},"Per-customer-per-feature"," — most specific.",[64,174,176],{"id":175},"example-cap-a-customers-agent-usage","Example: cap a customer's agent usage",[178,179,184],"pre",{"className":180,"code":181,"language":182,"meta":183,"style":183},"language-ts shiki shiki-themes material-theme-lighter vitesse-light github-dark","import { Margint, BudgetExceededError } from '@margint-ai\u002Fsdk'\n\nconst m = new Margint({ apiKey: process.env.MARGINT_API_KEY! })\n\ntry {\n  const res = await m.guardedCall(\n    { customerId: user.id, feature: 'agent' },\n    () => openai.chat.completions.create({\n      model: 'gpt-4o',\n      messages: [{ role: 'user', content: prompt }]\n    })\n  )\n  return res\n} catch (err) {\n  if (err instanceof BudgetExceededError) {\n    \u002F\u002F Decide how to respond — serve a cached result, show a modal, etc.\n    return { error: 'You\\'ve hit your monthly agent quota.' }\n  }\n  throw err\n}\n","ts","",[79,185,186,226,233,290,295,304,329,366,399,417,457,465,471,480,500,520,527,557,563,572],{"__ignoreMap":183},[187,188,191,195,199,203,206,209,212,215,219,223],"span",{"class":189,"line":190},"line",1,[187,192,194],{"class":193},"sBwTr","import",[187,196,198],{"class":197},"sCPop"," {",[187,200,202],{"class":201},"sJ3TI"," Margint",[187,204,205],{"class":197},",",[187,207,208],{"class":201}," BudgetExceededError",[187,210,211],{"class":197}," }",[187,213,214],{"class":193}," from",[187,216,218],{"class":217},"sFbhr"," '",[187,220,222],{"class":221},"sgGcy","@margint-ai\u002Fsdk",[187,224,225],{"class":217},"'\n",[187,227,229],{"class":189,"line":228},2,[187,230,232],{"emptyLinePlaceholder":231},true,"\n",[187,234,236,240,244,248,252,255,259,262,266,268,271,274,277,279,282,285,287],{"class":189,"line":235},3,[187,237,239],{"class":238},"sVLbc","const",[187,241,243],{"class":242},"szVFR"," m",[187,245,247],{"class":246},"sX7bk"," =",[187,249,251],{"class":250},"szqSR"," new",[187,253,202],{"class":254},"sThQN",[187,256,258],{"class":257},"srl0I","(",[187,260,261],{"class":197},"{",[187,263,265],{"class":264},"ssyos"," apiKey",[187,267,111],{"class":197},[187,269,270],{"class":201}," process",[187,272,273],{"class":197},".",[187,275,276],{"class":201},"env",[187,278,273],{"class":197},[187,280,281],{"class":242},"MARGINT_API_KEY",[187,283,284],{"class":250},"!",[187,286,211],{"class":197},[187,288,289],{"class":257},")\n",[187,291,293],{"class":189,"line":292},4,[187,294,232],{"emptyLinePlaceholder":231},[187,296,298,301],{"class":189,"line":297},5,[187,299,300],{"class":193},"try",[187,302,303],{"class":197}," {\n",[187,305,307,310,313,315,318,320,322,325],{"class":189,"line":306},6,[187,308,309],{"class":238},"  const",[187,311,312],{"class":242}," res",[187,314,247],{"class":246},[187,316,317],{"class":193}," await",[187,319,243],{"class":201},[187,321,273],{"class":197},[187,323,324],{"class":254},"guardedCall",[187,326,328],{"class":327},"sK89Q","(\n",[187,330,332,335,338,340,343,345,348,350,353,355,357,360,363],{"class":189,"line":331},7,[187,333,334],{"class":197},"    {",[187,336,337],{"class":264}," customerId",[187,339,111],{"class":197},[187,341,342],{"class":201}," user",[187,344,273],{"class":197},[187,346,347],{"class":201},"id",[187,349,205],{"class":197},[187,351,352],{"class":264}," feature",[187,354,111],{"class":197},[187,356,218],{"class":217},[187,358,359],{"class":221},"agent",[187,361,362],{"class":217},"'",[187,364,365],{"class":197}," },\n",[187,367,369,372,376,379,381,384,386,389,391,394,396],{"class":189,"line":368},8,[187,370,371],{"class":197},"    ()",[187,373,375],{"class":374},"s7IML"," =>",[187,377,378],{"class":201}," openai",[187,380,273],{"class":197},[187,382,383],{"class":201},"chat",[187,385,273],{"class":197},[187,387,388],{"class":201},"completions",[187,390,273],{"class":197},[187,392,393],{"class":254},"create",[187,395,258],{"class":327},[187,397,398],{"class":197},"{\n",[187,400,402,405,407,409,412,414],{"class":189,"line":401},9,[187,403,404],{"class":264},"      model",[187,406,111],{"class":197},[187,408,218],{"class":217},[187,410,411],{"class":221},"gpt-4o",[187,413,362],{"class":217},[187,415,416],{"class":197},",\n",[187,418,420,423,425,428,430,433,435,437,440,442,444,447,449,452,454],{"class":189,"line":419},10,[187,421,422],{"class":264},"      messages",[187,424,111],{"class":197},[187,426,427],{"class":327}," [",[187,429,261],{"class":197},[187,431,432],{"class":264}," role",[187,434,111],{"class":197},[187,436,218],{"class":217},[187,438,439],{"class":221},"user",[187,441,362],{"class":217},[187,443,205],{"class":197},[187,445,446],{"class":264}," content",[187,448,111],{"class":197},[187,450,451],{"class":201}," prompt",[187,453,211],{"class":197},[187,455,456],{"class":327},"]\n",[187,458,460,463],{"class":189,"line":459},11,[187,461,462],{"class":197},"    }",[187,464,289],{"class":327},[187,466,468],{"class":189,"line":467},12,[187,469,470],{"class":327},"  )\n",[187,472,474,477],{"class":189,"line":473},13,[187,475,476],{"class":193},"  return",[187,478,479],{"class":201}," res\n",[187,481,483,486,489,492,495,498],{"class":189,"line":482},14,[187,484,485],{"class":197},"}",[187,487,488],{"class":193}," catch",[187,490,491],{"class":257}," (",[187,493,494],{"class":201},"err",[187,496,497],{"class":257},")",[187,499,303],{"class":197},[187,501,503,506,508,510,513,516,518],{"class":189,"line":502},15,[187,504,505],{"class":193},"  if",[187,507,491],{"class":327},[187,509,494],{"class":201},[187,511,512],{"class":250}," instanceof",[187,514,208],{"class":515},"stoRT",[187,517,497],{"class":327},[187,519,303],{"class":197},[187,521,523],{"class":189,"line":522},16,[187,524,526],{"class":525},"skvGe","    \u002F\u002F Decide how to respond — serve a cached result, show a modal, etc.\n",[187,528,530,533,535,538,540,542,545,549,552,554],{"class":189,"line":529},17,[187,531,532],{"class":193},"    return",[187,534,198],{"class":197},[187,536,537],{"class":264}," error",[187,539,111],{"class":197},[187,541,218],{"class":217},[187,543,544],{"class":221},"You",[187,546,548],{"class":547},"sz88b","\\'",[187,550,551],{"class":221},"ve hit your monthly agent quota.",[187,553,362],{"class":217},[187,555,556],{"class":197}," }\n",[187,558,560],{"class":189,"line":559},18,[187,561,562],{"class":197},"  }\n",[187,564,566,569],{"class":189,"line":565},19,[187,567,568],{"class":193},"  throw",[187,570,571],{"class":201}," err\n",[187,573,575],{"class":189,"line":574},20,[187,576,577],{"class":197},"}\n",[64,579,581],{"id":580},"example-graceful-downgrade","Example: graceful downgrade",[178,583,587],{"className":584,"code":585,"language":586,"meta":183,"style":183},"language-python shiki shiki-themes material-theme-lighter vitesse-light github-dark","from margint import BudgetExceededError\n\ndef ask(user_id, prompt):\n    try:\n        return m.guarded_call(\n            customer_id=user_id,\n            feature=\"chat\",\n            fn=lambda: client.chat.completions.create(\n                model=\"gpt-4o\",\n                messages=[{\"role\": \"user\", \"content\": prompt}],\n            ),\n        )\n    except BudgetExceededError:\n        # Caller doesn't know — fall back to a cheaper model\n        return client.chat.completions.create(\n            model=\"gpt-4o-mini\",\n            messages=[{\"role\": \"user\", \"content\": prompt}],\n        )\n","python",[79,588,589,603,607,628,636,651,664,680,710,725,767,772,777,786,791,811,827,864],{"__ignoreMap":183},[187,590,591,594,598,600],{"class":189,"line":190},[187,592,593],{"class":193},"from",[187,595,597],{"class":596},"sQMu7"," margint ",[187,599,194],{"class":193},[187,601,602],{"class":596}," BudgetExceededError\n",[187,604,605],{"class":189,"line":228},[187,606,232],{"emptyLinePlaceholder":231},[187,608,609,612,615,617,621,623,625],{"class":189,"line":235},[187,610,611],{"class":238},"def",[187,613,614],{"class":254}," ask",[187,616,258],{"class":197},[187,618,620],{"class":619},"sQONO","user_id",[187,622,205],{"class":197},[187,624,451],{"class":619},[187,626,627],{"class":197},"):\n",[187,629,630,633],{"class":189,"line":292},[187,631,632],{"class":193},"    try",[187,634,635],{"class":197},":\n",[187,637,638,641,643,645,649],{"class":189,"line":297},[187,639,640],{"class":193},"        return",[187,642,243],{"class":596},[187,644,273],{"class":197},[187,646,648],{"class":647},"swwt3","guarded_call",[187,650,328],{"class":197},[187,652,653,657,660,662],{"class":189,"line":306},[187,654,656],{"class":655},"smADk","            customer_id",[187,658,659],{"class":246},"=",[187,661,620],{"class":647},[187,663,416],{"class":197},[187,665,666,669,671,674,676,678],{"class":189,"line":331},[187,667,668],{"class":655},"            feature",[187,670,659],{"class":246},[187,672,673],{"class":217},"\"",[187,675,383],{"class":221},[187,677,673],{"class":217},[187,679,416],{"class":197},[187,681,682,685,687,690,692,695,697,700,702,704,706,708],{"class":189,"line":368},[187,683,684],{"class":655},"            fn",[187,686,659],{"class":246},[187,688,689],{"class":238},"lambda",[187,691,111],{"class":197},[187,693,694],{"class":647}," client",[187,696,273],{"class":197},[187,698,383],{"class":699},"sSROA",[187,701,273],{"class":197},[187,703,388],{"class":699},[187,705,273],{"class":197},[187,707,393],{"class":647},[187,709,328],{"class":197},[187,711,712,715,717,719,721,723],{"class":189,"line":401},[187,713,714],{"class":655},"                model",[187,716,659],{"class":246},[187,718,673],{"class":217},[187,720,411],{"class":221},[187,722,673],{"class":217},[187,724,416],{"class":197},[187,726,727,730,732,735,737,740,742,744,747,749,751,753,755,758,760,762,764],{"class":189,"line":419},[187,728,729],{"class":655},"                messages",[187,731,659],{"class":246},[187,733,734],{"class":197},"[{",[187,736,673],{"class":217},[187,738,739],{"class":221},"role",[187,741,673],{"class":217},[187,743,111],{"class":197},[187,745,746],{"class":217}," \"",[187,748,439],{"class":221},[187,750,673],{"class":217},[187,752,205],{"class":197},[187,754,746],{"class":217},[187,756,757],{"class":221},"content",[187,759,673],{"class":217},[187,761,111],{"class":197},[187,763,451],{"class":647},[187,765,766],{"class":197},"}],\n",[187,768,769],{"class":189,"line":459},[187,770,771],{"class":197},"            ),\n",[187,773,774],{"class":189,"line":467},[187,775,776],{"class":197},"        )\n",[187,778,779,782,784],{"class":189,"line":473},[187,780,781],{"class":193},"    except",[187,783,208],{"class":596},[187,785,635],{"class":197},[187,787,788],{"class":189,"line":482},[187,789,790],{"class":525},"        # Caller doesn't know — fall back to a cheaper model\n",[187,792,793,795,797,799,801,803,805,807,809],{"class":189,"line":502},[187,794,640],{"class":193},[187,796,694],{"class":596},[187,798,273],{"class":197},[187,800,383],{"class":699},[187,802,273],{"class":197},[187,804,388],{"class":699},[187,806,273],{"class":197},[187,808,393],{"class":647},[187,810,328],{"class":197},[187,812,813,816,818,820,823,825],{"class":189,"line":522},[187,814,815],{"class":655},"            model",[187,817,659],{"class":246},[187,819,673],{"class":217},[187,821,822],{"class":221},"gpt-4o-mini",[187,824,673],{"class":217},[187,826,416],{"class":197},[187,828,829,832,834,836,838,840,842,844,846,848,850,852,854,856,858,860,862],{"class":189,"line":529},[187,830,831],{"class":655},"            messages",[187,833,659],{"class":246},[187,835,734],{"class":197},[187,837,673],{"class":217},[187,839,739],{"class":221},[187,841,673],{"class":217},[187,843,111],{"class":197},[187,845,746],{"class":217},[187,847,439],{"class":221},[187,849,673],{"class":217},[187,851,205],{"class":197},[187,853,746],{"class":217},[187,855,757],{"class":221},[187,857,673],{"class":217},[187,859,111],{"class":197},[187,861,451],{"class":647},[187,863,766],{"class":197},[187,865,866],{"class":189,"line":559},[187,867,776],{"class":197},[64,869,871,872,874],{"id":870},"what-guardedcall-does-not-do","What ",[79,873,324],{}," does not do",[113,876,877,1031],{},[72,878,879,880,883,884,888,889,891,892],{},"It does ",[108,881,882],{},"not"," auto-track the call. Wrap the client ",[885,886,887],"em",{},"inside"," the ",[79,890,324],{}," closure if you want both checking and tracking:",[178,893,895],{"className":180,"code":894,"language":182,"meta":183,"style":183},"const guarded = m.wrap(openai, { customerId: user.id, feature: 'agent' })\nconst res = await m.guardedCall(\n  { customerId: user.id, feature: 'agent' },\n  () => guarded.chat.completions.create({ ... })\n)\n",[79,896,897,948,966,995,1027],{"__ignoreMap":183},[187,898,899,901,904,906,908,910,913,915,918,920,922,924,926,928,930,932,934,936,938,940,942,944,946],{"class":189,"line":190},[187,900,239],{"class":238},[187,902,903],{"class":242}," guarded",[187,905,247],{"class":246},[187,907,243],{"class":201},[187,909,273],{"class":197},[187,911,912],{"class":254},"wrap",[187,914,258],{"class":257},[187,916,917],{"class":201},"openai",[187,919,205],{"class":197},[187,921,198],{"class":197},[187,923,337],{"class":264},[187,925,111],{"class":197},[187,927,342],{"class":201},[187,929,273],{"class":197},[187,931,347],{"class":201},[187,933,205],{"class":197},[187,935,352],{"class":264},[187,937,111],{"class":197},[187,939,218],{"class":217},[187,941,359],{"class":221},[187,943,362],{"class":217},[187,945,211],{"class":197},[187,947,289],{"class":257},[187,949,950,952,954,956,958,960,962,964],{"class":189,"line":228},[187,951,239],{"class":238},[187,953,312],{"class":242},[187,955,247],{"class":246},[187,957,317],{"class":193},[187,959,243],{"class":201},[187,961,273],{"class":197},[187,963,324],{"class":254},[187,965,328],{"class":257},[187,967,968,971,973,975,977,979,981,983,985,987,989,991,993],{"class":189,"line":235},[187,969,970],{"class":197},"  {",[187,972,337],{"class":264},[187,974,111],{"class":197},[187,976,342],{"class":201},[187,978,273],{"class":197},[187,980,347],{"class":201},[187,982,205],{"class":197},[187,984,352],{"class":264},[187,986,111],{"class":197},[187,988,218],{"class":217},[187,990,359],{"class":221},[187,992,362],{"class":217},[187,994,365],{"class":197},[187,996,997,1000,1002,1004,1006,1008,1010,1012,1014,1016,1018,1020,1023,1025],{"class":189,"line":292},[187,998,999],{"class":197},"  ()",[187,1001,375],{"class":374},[187,1003,903],{"class":201},[187,1005,273],{"class":197},[187,1007,383],{"class":201},[187,1009,273],{"class":197},[187,1011,388],{"class":201},[187,1013,273],{"class":197},[187,1015,393],{"class":254},[187,1017,258],{"class":257},[187,1019,261],{"class":197},[187,1021,1022],{"class":246}," ...",[187,1024,211],{"class":197},[187,1026,289],{"class":257},[187,1028,1029],{"class":189,"line":297},[187,1030,289],{"class":257},[72,1032,879,1033,1035],{},[108,1034,882],{}," replay queued requests when the budget resets. If the call was blocked, the caller sees the error — it's up to your code to retry.",[1037,1038,1039],"style",{},"html pre.shiki code .sBwTr, html code.shiki .sBwTr{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#1E754F;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .sCPop, html code.shiki .sCPop{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#E1E4E8}html pre.shiki code .sJ3TI, html code.shiki .sJ3TI{--shiki-light:#90A4AE;--shiki-default:#B07D48;--shiki-dark:#E1E4E8}html pre.shiki code .sFbhr, html code.shiki .sFbhr{--shiki-light:#39ADB5;--shiki-default:#B5695977;--shiki-dark:#9ECBFF}html pre.shiki code .sgGcy, html code.shiki .sgGcy{--shiki-light:#91B859;--shiki-default:#B56959;--shiki-dark:#9ECBFF}html pre.shiki code .sVLbc, html code.shiki .sVLbc{--shiki-light:#9C3EDA;--shiki-default:#AB5959;--shiki-dark:#F97583}html pre.shiki code .szVFR, html code.shiki .szVFR{--shiki-light:#90A4AE;--shiki-default:#B07D48;--shiki-dark:#79B8FF}html pre.shiki code .sX7bk, html code.shiki .sX7bk{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#F97583}html pre.shiki code .szqSR, html code.shiki .szqSR{--shiki-light:#39ADB5;--shiki-default:#AB5959;--shiki-dark:#F97583}html pre.shiki code .sThQN, html code.shiki .sThQN{--shiki-light:#6182B8;--shiki-default:#59873A;--shiki-dark:#B392F0}html pre.shiki code .srl0I, html code.shiki .srl0I{--shiki-light:#90A4AE;--shiki-default:#999999;--shiki-dark:#E1E4E8}html pre.shiki code .ssyos, html code.shiki .ssyos{--shiki-light:#E53935;--shiki-default:#998418;--shiki-dark:#E1E4E8}html pre.shiki code .sK89Q, html code.shiki .sK89Q{--shiki-light:#E53935;--shiki-default:#999999;--shiki-dark:#E1E4E8}html pre.shiki code .s7IML, html code.shiki .s7IML{--shiki-light:#9C3EDA;--shiki-default:#999999;--shiki-dark:#F97583}html pre.shiki code .stoRT, html code.shiki .stoRT{--shiki-light:#E2931D;--shiki-default:#2E8F82;--shiki-dark:#B392F0}html pre.shiki code .skvGe, html code.shiki .skvGe{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#A0ADA0;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .sz88b, html code.shiki .sz88b{--shiki-light:#90A4AE;--shiki-default:#A65E2B;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sQMu7, html code.shiki .sQMu7{--shiki-light:#90A4AE;--shiki-default:#393A34;--shiki-dark:#E1E4E8}html pre.shiki code .sQONO, html code.shiki .sQONO{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#393A34;--shiki-default-font-style:inherit;--shiki-dark:#E1E4E8;--shiki-dark-font-style:inherit}html pre.shiki code .swwt3, html code.shiki .swwt3{--shiki-light:#6182B8;--shiki-default:#393A34;--shiki-dark:#E1E4E8}html pre.shiki code .smADk, html code.shiki .smADk{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#B07D48;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html pre.shiki code .sSROA, html code.shiki .sSROA{--shiki-light:#E53935;--shiki-default:#393A34;--shiki-dark:#E1E4E8}",{"title":183,"searchDepth":228,"depth":228,"links":1041},[1042,1043,1044,1045,1046,1047],{"id":66,"depth":228,"text":67},{"id":102,"depth":228,"text":103},{"id":142,"depth":228,"text":143},{"id":175,"depth":228,"text":176},{"id":580,"depth":228,"text":581},{"id":870,"depth":228,"text":1048},"What guardedCall does not do","Stop a runaway customer from blowing up your AI bill.","md",{},{"icon":46},{"title":43,"description":1049},"NjB8gULOCg8N3b8beNhDpg6QIYhqjNYnAaETC_-2PXM",[1056,1058],{"title":38,"path":39,"stem":40,"description":1057,"icon":41,"children":-1},"How Margint computes cost from tokens, and how we stay in sync with provider price changes.",{"title":48,"path":49,"stem":50,"description":1059,"icon":53,"children":-1},"Read Margint data from your agents, your scripts, your IDE.",1777838731206]