[{"data":1,"prerenderedAt":674},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fapi-and-mcp":54,"\u002Fdocs\u002Fapi-and-mcp-surround":670},[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":48,"body":56,"description":664,"extension":665,"meta":666,"navigation":667,"path":49,"seo":668,"stem":50,"__hash__":669},"docs\u002F1.docs\u002F4.api-and-mcp\u002F1.index.md",{"type":57,"value":58,"toc":654},"minimark",[59,63,68,71,75,83,130,138,143,215,226,244,248,261,265,280,560,574,577,589,593,647,650],[60,61,62],"p",{},"The same margin data you see in the dashboard is exposed two other ways: a stable REST API for scripts and backends, and an MCP server for agents and AI-aware IDEs.",[64,65,67],"h2",{"id":66},"why-this-exists","Why this exists",[60,69,70],{},"Once margin is wired into your team's decision flow, you want it inside the tools that make decisions — not only in a browser tab. That's the API. For LLM agents that write code or operate systems on your behalf, that's MCP.",[64,72,74],{"id":73},"public-api","Public API",[60,76,77,78,82],{},"All endpoints live under ",[79,80,81],"code",{},"\u002Fapi\u002Fv1\u002F"," and authenticate with a bearer token:",[84,85,90],"pre",{"className":86,"code":87,"language":88,"meta":89,"style":89},"language-bash shiki shiki-themes material-theme-lighter vitesse-light github-dark","curl -H \"Authorization: Bearer $MARGINT_API_KEY\" \\\n  https:\u002F\u002Fapp.margint.dev\u002Fapi\u002Fv1\u002Fcosts\u002Foverview?range=7d\n","bash","",[79,91,92,124],{"__ignoreMap":89},[93,94,97,101,105,109,113,117,120],"span",{"class":95,"line":96},"line",1,[93,98,100],{"class":99},"s8WwD","curl",[93,102,104],{"class":103},"s13qF"," -H",[93,106,108],{"class":107},"sFbhr"," \"",[93,110,112],{"class":111},"sgGcy","Authorization: Bearer ",[93,114,116],{"class":115},"sYZ0c","$MARGINT_API_KEY",[93,118,119],{"class":107},"\"",[93,121,123],{"class":122},"sz88b"," \\\n",[93,125,127],{"class":95,"line":126},2,[93,128,129],{"class":111},"  https:\u002F\u002Fapp.margint.dev\u002Fapi\u002Fv1\u002Fcosts\u002Foverview?range=7d\n",[60,131,132,133,137],{},"Your key is the same one the SDK uses — create it in ",[134,135,136],"strong",{},"Settings → API Keys",".",[139,140,142],"h3",{"id":141},"endpoints","Endpoints",[144,145,146,162],"table",{},[147,148,149],"thead",{},[150,151,152,156,159],"tr",{},[153,154,155],"th",{},"Method",[153,157,158],{},"Path",[153,160,161],{},"Purpose",[163,164,165,179,191,203],"tbody",{},[150,166,167,171,176],{},[168,169,170],"td",{},"GET",[168,172,173],{},[79,174,175],{},"\u002Fapi\u002Fv1\u002Fcustomers",[168,177,178],{},"List customers with cost, MRR, margin",[150,180,181,183,188],{},[168,182,170],{},[168,184,185],{},[79,186,187],{},"\u002Fapi\u002Fv1\u002Fcustomers\u002F{externalId}",[168,189,190],{},"Single-customer detail + per-feature breakdown",[150,192,193,195,200],{},[168,194,170],{},[168,196,197],{},[79,198,199],{},"\u002Fapi\u002Fv1\u002Fcosts\u002Foverview",[168,201,202],{},"Workspace totals and unprofitable-customer count",[150,204,205,207,212],{},[168,206,170],{},[168,208,209],{},[79,210,211],{},"\u002Fapi\u002Fv1\u002Fbudgets\u002Fcheck?customer=...",[168,213,214],{},"Is this customer still within budget?",[60,216,217,218,221,222,225],{},"Rate limit: 120 requests \u002F minute per key. Responses carry ",[79,219,220],{},"X-RateLimit-*"," and ",[79,223,224],{},"X-Request-Id"," headers so you can correlate retries with logs.",[60,227,228,229,236,237,137],{},"Interactive reference with every field documented: ",[230,231,235],"a",{"href":232,"rel":233},"https:\u002F\u002Fapp.margint.dev\u002Fdocs\u002Fapi",[234],"nofollow","app.margint.dev\u002Fdocs\u002Fapi",". Raw spec: ",[230,238,241],{"href":239,"rel":240},"https:\u002F\u002Fapp.margint.dev\u002Fapi\u002Fv1\u002Fopenapi.json",[234],[79,242,243],{},"\u002Fapi\u002Fv1\u002Fopenapi.json",[139,245,247],{"id":246},"versioning","Versioning",[60,249,250,253,254,257,258,260],{},[79,251,252],{},"\u002Fv1\u002F"," is additive-only. We add new fields and endpoints — we don't rename or remove. Breaking changes ship as ",[79,255,256],{},"\u002Fv2\u002F"," while ",[79,259,252],{}," keeps running.",[64,262,264],{"id":263},"mcp-server","MCP server",[60,266,267,268,273,274,279],{},"Install ",[230,269,272],{"href":270,"rel":271},"https:\u002F\u002Fclaude.ai\u002Fdownload",[234],"Claude Desktop",", ",[230,275,278],{"href":276,"rel":277},"https:\u002F\u002Fcursor.com",[234],"Cursor",", or any MCP-aware client. Then drop this into its config:",[281,282,283,442],"code-group",{},[84,284,288],{"className":285,"code":286,"filename":272,"language":287,"meta":89,"style":89},"language-json shiki shiki-themes material-theme-lighter vitesse-light github-dark","{\n    \"mcpServers\": {\n        \"margint\": {\n            \"command\": \"npx\",\n            \"args\": [\"-y\", \"@margint-ai\u002Fmcp\"],\n            \"env\": { \"MARGINT_API_KEY\": \"m_live_your_key_here\" }\n        }\n    }\n}\n","json",[79,289,290,296,314,330,354,389,424,430,436],{"__ignoreMap":89},[93,291,292],{"class":95,"line":96},[93,293,295],{"class":294},"sCPop","{\n",[93,297,298,302,306,308,311],{"class":95,"line":126},[93,299,301],{"class":300},"sUXsP","    \"",[93,303,305],{"class":304},"sW6VZ","mcpServers",[93,307,119],{"class":300},[93,309,310],{"class":294},":",[93,312,313],{"class":294}," {\n",[93,315,317,320,324,326,328],{"class":95,"line":316},3,[93,318,319],{"class":300},"        \"",[93,321,323],{"class":322},"sWDkf","margint",[93,325,119],{"class":300},[93,327,310],{"class":294},[93,329,313],{"class":294},[93,331,333,336,340,342,344,346,349,351],{"class":95,"line":332},4,[93,334,335],{"class":300},"            \"",[93,337,339],{"class":338},"s9K96","command",[93,341,119],{"class":300},[93,343,310],{"class":294},[93,345,108],{"class":107},[93,347,348],{"class":111},"npx",[93,350,119],{"class":107},[93,352,353],{"class":294},",\n",[93,355,357,359,362,364,366,369,371,374,376,379,381,384,386],{"class":95,"line":356},5,[93,358,335],{"class":300},[93,360,361],{"class":338},"args",[93,363,119],{"class":300},[93,365,310],{"class":294},[93,367,368],{"class":294}," [",[93,370,119],{"class":107},[93,372,373],{"class":111},"-y",[93,375,119],{"class":107},[93,377,378],{"class":294},",",[93,380,108],{"class":107},[93,382,383],{"class":111},"@margint-ai\u002Fmcp",[93,385,119],{"class":107},[93,387,388],{"class":294},"],\n",[93,390,392,394,397,399,401,404,406,410,412,414,416,419,421],{"class":95,"line":391},6,[93,393,335],{"class":300},[93,395,396],{"class":338},"env",[93,398,119],{"class":300},[93,400,310],{"class":294},[93,402,403],{"class":294}," {",[93,405,108],{"class":300},[93,407,409],{"class":408},"s70y0","MARGINT_API_KEY",[93,411,119],{"class":300},[93,413,310],{"class":294},[93,415,108],{"class":107},[93,417,418],{"class":111},"m_live_your_key_here",[93,420,119],{"class":107},[93,422,423],{"class":294}," }\n",[93,425,427],{"class":95,"line":426},7,[93,428,429],{"class":294},"        }\n",[93,431,433],{"class":95,"line":432},8,[93,434,435],{"class":294},"    }\n",[93,437,439],{"class":95,"line":438},9,[93,440,441],{"class":294},"}\n",[84,443,444],{"className":285,"code":286,"filename":278,"language":287,"meta":89,"style":89},[79,445,446,450,462,474,492,520,548,552,556],{"__ignoreMap":89},[93,447,448],{"class":95,"line":96},[93,449,295],{"class":294},[93,451,452,454,456,458,460],{"class":95,"line":126},[93,453,301],{"class":300},[93,455,305],{"class":304},[93,457,119],{"class":300},[93,459,310],{"class":294},[93,461,313],{"class":294},[93,463,464,466,468,470,472],{"class":95,"line":316},[93,465,319],{"class":300},[93,467,323],{"class":322},[93,469,119],{"class":300},[93,471,310],{"class":294},[93,473,313],{"class":294},[93,475,476,478,480,482,484,486,488,490],{"class":95,"line":332},[93,477,335],{"class":300},[93,479,339],{"class":338},[93,481,119],{"class":300},[93,483,310],{"class":294},[93,485,108],{"class":107},[93,487,348],{"class":111},[93,489,119],{"class":107},[93,491,353],{"class":294},[93,493,494,496,498,500,502,504,506,508,510,512,514,516,518],{"class":95,"line":356},[93,495,335],{"class":300},[93,497,361],{"class":338},[93,499,119],{"class":300},[93,501,310],{"class":294},[93,503,368],{"class":294},[93,505,119],{"class":107},[93,507,373],{"class":111},[93,509,119],{"class":107},[93,511,378],{"class":294},[93,513,108],{"class":107},[93,515,383],{"class":111},[93,517,119],{"class":107},[93,519,388],{"class":294},[93,521,522,524,526,528,530,532,534,536,538,540,542,544,546],{"class":95,"line":391},[93,523,335],{"class":300},[93,525,396],{"class":338},[93,527,119],{"class":300},[93,529,310],{"class":294},[93,531,403],{"class":294},[93,533,108],{"class":300},[93,535,409],{"class":408},[93,537,119],{"class":300},[93,539,310],{"class":294},[93,541,108],{"class":107},[93,543,418],{"class":111},[93,545,119],{"class":107},[93,547,423],{"class":294},[93,549,550],{"class":95,"line":426},[93,551,429],{"class":294},[93,553,554],{"class":95,"line":432},[93,555,435],{"class":294},[93,557,558],{"class":95,"line":438},[93,559,441],{"class":294},[60,561,562,563,566,567,570,571,137],{},"Claude Desktop config lives at ",[79,564,565],{},"~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json"," (macOS) or ",[79,568,569],{},"%APPDATA%\\Claude\\claude_desktop_config.json"," (Windows). Cursor's is at ",[79,572,573],{},"~\u002F.cursor\u002Fmcp.json",[60,575,576],{},"Restart the client and ask it real questions:",[578,579,580,583,586],"blockquote",{},[60,581,582],{},"Which customers lost me money this week?",[60,584,585],{},"Show me cust_acme's margin over 90 days and break it down by feature.",[60,587,588],{},"Is cust_acme still within their budget for the chat feature?",[139,590,592],{"id":591},"tools-exposed","Tools exposed",[144,594,595,605],{},[147,596,597],{},[150,598,599,602],{},[153,600,601],{},"Tool",[153,603,604],{},"What it does",[163,606,607,617,627,637],{},[150,608,609,614],{},[168,610,611],{},[79,612,613],{},"margint_list_customers",[168,615,616],{},"Top 100 customers by margin, worst first.",[150,618,619,624],{},[168,620,621],{},[79,622,623],{},"margint_get_customer",[168,625,626],{},"Detail + per-feature breakdown for one customer.",[150,628,629,634],{},[168,630,631],{},[79,632,633],{},"margint_cost_overview",[168,635,636],{},"Workspace totals over a rolling window.",[150,638,639,644],{},[168,640,641],{},[79,642,643],{},"margint_check_budget",[168,645,646],{},"Self-gate for agents before making an LLM call.",[60,648,649],{},"Every response includes a one-line summary so the calling model can answer most questions without parsing the full payload.",[651,652,653],"style",{},"html pre.shiki code .s8WwD, html code.shiki .s8WwD{--shiki-light:#E2931D;--shiki-default:#59873A;--shiki-dark:#B392F0}html pre.shiki code .s13qF, html code.shiki .s13qF{--shiki-light:#91B859;--shiki-default:#A65E2B;--shiki-dark:#79B8FF}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 .sYZ0c, html code.shiki .sYZ0c{--shiki-light:#90A4AE;--shiki-default:#B56959;--shiki-dark:#E1E4E8}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 .sCPop, html code.shiki .sCPop{--shiki-light:#39ADB5;--shiki-default:#999999;--shiki-dark:#E1E4E8}html pre.shiki code .sUXsP, html code.shiki .sUXsP{--shiki-light:#39ADB5;--shiki-default:#99841877;--shiki-dark:#79B8FF}html pre.shiki code .sW6VZ, html code.shiki .sW6VZ{--shiki-light:#9C3EDA;--shiki-default:#998418;--shiki-dark:#79B8FF}html pre.shiki code .sWDkf, html code.shiki .sWDkf{--shiki-light:#E2931D;--shiki-default:#998418;--shiki-dark:#79B8FF}html pre.shiki code .s9K96, html code.shiki .s9K96{--shiki-light:#F76D47;--shiki-default:#998418;--shiki-dark:#79B8FF}html pre.shiki code .s70y0, html code.shiki .s70y0{--shiki-light:#E53935;--shiki-default:#998418;--shiki-dark:#79B8FF}",{"title":89,"searchDepth":126,"depth":126,"links":655},[656,657,661],{"id":66,"depth":126,"text":67},{"id":73,"depth":126,"text":74,"children":658},[659,660],{"id":141,"depth":316,"text":142},{"id":246,"depth":316,"text":247},{"id":263,"depth":126,"text":264,"children":662},[663],{"id":591,"depth":316,"text":592},"Read Margint data from your agents, your scripts, your IDE.","md",{},{"icon":53},{"title":48,"description":664},"bTfySytMOG2AoNDLgU1-3qqs5DbM3aC3Vgp3flsKi-c",[671,673],{"title":43,"path":44,"stem":45,"description":672,"icon":46,"children":-1},"Stop a runaway customer from blowing up your AI bill.",null,1777838731206]