[{"data":1,"prerenderedAt":349},["ShallowReactive",2],{"blog-\u002Fblog\u002Fwhy-agents-shouldnt-manage-api-keys":3,"blog-related-\u002Fblog\u002Fwhy-agents-shouldnt-manage-api-keys":181},{"id":4,"title":5,"author":6,"body":7,"category":167,"date":168,"description":169,"draft":170,"extension":171,"image":167,"meta":172,"navigation":173,"path":174,"readTime":167,"seo":175,"stem":176,"tags":177,"__hash__":180},"blog\u002Fblog\u002Fwhy-agents-shouldnt-manage-api-keys.md","Why agents shouldn't manage API keys","Monid",{"type":8,"value":9,"toc":162},"minimark",[10,15,19,22,26,29,125,128,132,155,158],[11,12,14],"h2",{"id":13},"the-problem","The problem",[16,17,18],"p",{},"Agents today juggle dozens of vendor keys. Each provider has its own\nsignup, its own dashboard, its own rate limits, and its own billing\ncycle. The moment your agent needs a second data source, you're back in\na procurement loop — create an account, copy a key, paste it into a\nsecret store, hope the free tier covers your usage.",[16,20,21],{},"That doesn't scale to autonomous workflows.",[11,23,25],{"id":24},"a-better-abstraction","A better abstraction",[16,27,28],{},"Monid brokers the call on the agent's behalf. The agent describes what\nit needs, Monid routes to the right endpoint, meters the usage, and\ndebits a single shared balance. No per-vendor keys, no subscriptions,\nno human in the loop.",[30,31,36],"pre",{"className":32,"code":33,"language":34,"meta":35,"style":35},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const result = await monid.run(\"exa\", \"\u002Fsearch\", { query: \"openai news\" })\n\u002F\u002F → 18 articles · $0.01 debited from balance\n","ts","",[37,38,39,118],"code",{"__ignoreMap":35},[40,41,44,48,52,56,60,63,66,70,73,76,80,82,85,88,91,93,95,98,102,105,107,110,112,115],"span",{"class":42,"line":43},"line",1,[40,45,47],{"class":46},"spNyl","const",[40,49,51],{"class":50},"sTEyZ"," result ",[40,53,55],{"class":54},"sMK4o","=",[40,57,59],{"class":58},"s7zQu"," await",[40,61,62],{"class":50}," monid",[40,64,65],{"class":54},".",[40,67,69],{"class":68},"s2Zo4","run",[40,71,72],{"class":50},"(",[40,74,75],{"class":54},"\"",[40,77,79],{"class":78},"sfazB","exa",[40,81,75],{"class":54},[40,83,84],{"class":54},",",[40,86,87],{"class":54}," \"",[40,89,90],{"class":78},"\u002Fsearch",[40,92,75],{"class":54},[40,94,84],{"class":54},[40,96,97],{"class":54}," {",[40,99,101],{"class":100},"swJcz"," query",[40,103,104],{"class":54},":",[40,106,87],{"class":54},[40,108,109],{"class":78},"openai news",[40,111,75],{"class":54},[40,113,114],{"class":54}," }",[40,116,117],{"class":50},")\n",[40,119,121],{"class":42,"line":120},2,[40,122,124],{"class":123},"sHwdD","\u002F\u002F → 18 articles · $0.01 debited from balance\n",[16,126,127],{},"The agent never sees a provider key. We hold them, rotate them, and\npool capacity across providers so a throttle on one vendor falls through\nto the next-best option.",[11,129,131],{"id":130},"what-you-get-back","What you get back",[133,134,135,143,149],"ul",{},[136,137,138,142],"li",{},[139,140,141],"strong",{},"One balance"," for every tool, every provider.",[136,144,145,148],{},[139,146,147],{},"Pay-per-call"," pricing with no minimums.",[136,150,151,154],{},[139,152,153],{},"Typed, normalized responses"," so your agent can compare results by\nquality instead of by API quirk.",[16,156,157],{},"That's the whole pitch: stop managing keys, start shipping agents.",[159,160,161],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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);}",{"title":35,"searchDepth":120,"depth":120,"links":163},[164,165,166],{"id":13,"depth":120,"text":14},{"id":24,"depth":120,"text":25},{"id":130,"depth":120,"text":131},null,"2026-06-15","Handing an agent a drawer full of vendor keys is the wrong abstraction. One balance, brokered calls, and metered usage is the right one.",false,"md",{},true,"\u002Fblog\u002Fwhy-agents-shouldnt-manage-api-keys",{"title":5,"description":169},"blog\u002Fwhy-agents-shouldnt-manage-api-keys",[178,179],"agents","infrastructure","ioBYrMqXo7-E5hGjyHrG5-JUl7jIeFX0RZYu8WZ1itE",[182,283],{"id":4,"title":5,"author":6,"body":183,"category":167,"date":168,"description":169,"draft":170,"extension":171,"image":167,"meta":280,"navigation":173,"path":174,"readTime":167,"seo":281,"stem":176,"tags":282,"__hash__":180},{"type":8,"value":184,"toc":275},[185,187,189,191,193,195,253,255,257,271,273],[11,186,14],{"id":13},[16,188,18],{},[16,190,21],{},[11,192,25],{"id":24},[16,194,28],{},[30,196,197],{"className":32,"code":33,"language":34,"meta":35,"style":35},[37,198,199,249],{"__ignoreMap":35},[40,200,201,203,205,207,209,211,213,215,217,219,221,223,225,227,229,231,233,235,237,239,241,243,245,247],{"class":42,"line":43},[40,202,47],{"class":46},[40,204,51],{"class":50},[40,206,55],{"class":54},[40,208,59],{"class":58},[40,210,62],{"class":50},[40,212,65],{"class":54},[40,214,69],{"class":68},[40,216,72],{"class":50},[40,218,75],{"class":54},[40,220,79],{"class":78},[40,222,75],{"class":54},[40,224,84],{"class":54},[40,226,87],{"class":54},[40,228,90],{"class":78},[40,230,75],{"class":54},[40,232,84],{"class":54},[40,234,97],{"class":54},[40,236,101],{"class":100},[40,238,104],{"class":54},[40,240,87],{"class":54},[40,242,109],{"class":78},[40,244,75],{"class":54},[40,246,114],{"class":54},[40,248,117],{"class":50},[40,250,251],{"class":42,"line":120},[40,252,124],{"class":123},[16,254,127],{},[11,256,131],{"id":130},[133,258,259,263,267],{},[136,260,261,142],{},[139,262,141],{},[136,264,265,148],{},[139,266,147],{},[136,268,269,154],{},[139,270,153],{},[16,272,157],{},[159,274,161],{},{"title":35,"searchDepth":120,"depth":120,"links":276},[277,278,279],{"id":13,"depth":120,"text":14},{"id":24,"depth":120,"text":25},{"id":130,"depth":120,"text":131},{},{"title":5,"description":169},[178,179],{"id":284,"title":285,"author":6,"body":286,"category":167,"date":340,"description":341,"draft":170,"extension":171,"image":167,"meta":342,"navigation":173,"path":343,"readTime":167,"seo":344,"stem":345,"tags":346,"__hash__":348},"blog\u002Fblog\u002Fpay-per-call-pricing-for-agents.md","Pay-per-call pricing is the only model that fits agents",{"type":8,"value":287,"toc":335},[288,292,295,299,302,308,312,332],[11,289,291],{"id":290},"subscriptions-are-a-human-abstraction","Subscriptions are a human abstraction",[16,293,294],{},"A monthly seat assumes a person evaluates value, remembers the renewal,\nand cancels when it stops being worth it. Agents do none of that. Point\nan autonomous workflow at a seat-based tool and you either over-pay for\nidle capacity or hit a cliff mid-task.",[11,296,298],{"id":297},"meter-the-call-not-the-month","Meter the call, not the month",[16,300,301],{},"Monid prices every endpoint per call — sometimes per result. The agent\npays for exactly what it used, debited from one balance:",[303,304,305],"blockquote",{},[16,306,307],{},"If a provider fails to deliver, you aren't charged. We only meter\ncalls that return usable data to your agent.",[11,309,311],{"id":310},"why-this-matters-for-builders","Why this matters for builders",[133,313,314,320,326],{},[136,315,316,319],{},[139,317,318],{},"No idle spend."," An agent that runs twice this week costs you two\ncalls, not a month of seats.",[136,321,322,325],{},[139,323,324],{},"Composability."," Mixing ten providers in one workflow is ten line\nitems on one balance, not ten subscriptions to reconcile.",[136,327,328,331],{},[139,329,330],{},"Honest economics."," Per-qualified-lead, per-enriched-contact,\nper-scraped-page — the unit of billing matches the unit of work.",[16,333,334],{},"Agents are software that spends money on your behalf. The billing model\nshould be built for software, not for a human with a calendar reminder.",{"title":35,"searchDepth":120,"depth":120,"links":336},[337,338,339],{"id":290,"depth":120,"text":291},{"id":297,"depth":120,"text":298},{"id":310,"depth":120,"text":311},"2026-06-10","Subscriptions assume a human remembers to cancel. Agents don't. Metered, per-call pricing is the native billing model for autonomous software.",{},"\u002Fblog\u002Fpay-per-call-pricing-for-agents",{"title":285,"description":341},"blog\u002Fpay-per-call-pricing-for-agents",[347,178],"pricing","_qbqy8cVpPY_YGZILtYjAwpxzJELDMc6L2AQPf9vNow",1781653333809]