[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-nav-en":3,"docs-en-usage-and-balance\u002Frequest-usage":167,"$f46bqDyMIGnVmi5_ELOHu1hg55r_zX-KEnU3OmkbJYPs":1037},[4,52,69,92,142,159,163],{"title":5,"path":6,"stem":7,"children":8,"page":-1},"Getting Started","\u002Fgetting-started","1.getting-started",[9,12,30,44,48],{"title":10,"path":6,"stem":11},"About SilvaMux","1.getting-started\u002Findex",{"title":13,"path":14,"stem":15,"children":16,"page":-1},"Your First SilvaMux API Call","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F1.quick-start\u002Findex",[17,18,22,26],{"title":13,"path":14,"stem":15},{"title":19,"path":20,"stem":21},"Projects & Account Setup","\u002Fgetting-started\u002Fquick-start\u002Fproject-and-account","1.getting-started\u002F1.quick-start\u002F2.project-and-account",{"title":23,"path":24,"stem":25},"Get an API Key","\u002Fgetting-started\u002Fquick-start\u002Fapi-key","1.getting-started\u002F1.quick-start\u002F3.api-key",{"title":27,"path":28,"stem":29},"First Request","\u002Fgetting-started\u002Fquick-start\u002Ffirst-request","1.getting-started\u002F1.quick-start\u002F4.first-request",{"title":31,"path":32,"stem":33,"children":34,"page":43},"Models & Experience","\u002Fgetting-started\u002Fmodels-and-experience","1.getting-started\u002F2.models-and-experience",[35,39],{"title":36,"path":37,"stem":38},"Model Selection","\u002Fgetting-started\u002Fmodels-and-experience\u002Fmodel-selection","1.getting-started\u002F2.models-and-experience\u002F1.model-selection",{"title":40,"path":41,"stem":42},"Playground","\u002Fgetting-started\u002Fmodels-and-experience\u002Fplayground","1.getting-started\u002F2.models-and-experience\u002F2.playground",false,{"title":45,"path":46,"stem":47},"Rate Limits","\u002Fgetting-started\u002Frate-limits","1.getting-started\u002F3.rate-limits",{"title":49,"path":50,"stem":51},"FAQ","\u002Fgetting-started\u002Ffaq","1.getting-started\u002F4.faq",{"title":53,"path":54,"stem":55,"children":56,"page":43},"Billing","\u002Fbilling","2.billing",[57,61,65],{"title":58,"path":59,"stem":60},"Billing Overview","\u002Fbilling\u002Foverview","2.billing\u002F1.overview",{"title":62,"path":63,"stem":64},"Online Top-up","\u002Fbilling\u002Frecharge","2.billing\u002F2.recharge",{"title":66,"path":67,"stem":68},"Bills, Usage & Exports","\u002Fbilling\u002Fusage-export","2.billing\u002F3.usage-export",{"title":70,"path":71,"stem":72,"children":73,"page":43},"Coding Plan","\u002Fcoding-plan","3.coding-plan",[74,78],{"title":75,"path":76,"stem":77},"Coding Plan Overview","\u002Fcoding-plan\u002Foverview","3.coding-plan\u002F1.overview",{"title":79,"path":80,"stem":81,"children":82,"page":-1},"Personal","\u002Fcoding-plan\u002Fpersonal","3.coding-plan\u002F2.personal\u002Findex",[83,85,89],{"title":84,"path":80,"stem":81},"Pricing & Benefits",{"title":86,"path":87,"stem":88},"Quick Start","\u002Fcoding-plan\u002Fpersonal\u002Fquick-start","3.coding-plan\u002F2.personal\u002F2.quick-start",{"title":49,"path":90,"stem":91},"\u002Fcoding-plan\u002Fpersonal\u002Ffaq","3.coding-plan\u002F2.personal\u002F3.faq",{"title":93,"path":94,"stem":95,"children":96,"page":43},"Model APIs","\u002Fmodels","4.models",[97,130],{"title":98,"path":99,"stem":100,"children":101,"page":43},"Text Generation","\u002Fmodels\u002Fchat","4.models\u002F1.chat",[102,106,110,114,118,122,126],{"title":103,"path":104,"stem":105},"Overview","\u002Fmodels\u002Fchat\u002Foverview","4.models\u002F1.chat\u002F1.overview",{"title":107,"path":108,"stem":109},"OpenAI Compatible API","\u002Fmodels\u002Fchat\u002Fopenai","4.models\u002F1.chat\u002F2.openai",{"title":111,"path":112,"stem":113},"Anthropic Compatible","\u002Fmodels\u002Fchat\u002Fanthropic","4.models\u002F1.chat\u002F3.anthropic",{"title":115,"path":116,"stem":117},"Volcengine Compatible","\u002Fmodels\u002Fchat\u002Fvolcengine","4.models\u002F1.chat\u002F4.volcengine",{"title":119,"path":120,"stem":121},"Zhipu Compatible","\u002Fmodels\u002Fchat\u002Fzhipu","4.models\u002F1.chat\u002F5.zhipu",{"title":123,"path":124,"stem":125},"SilvaMux Unified Entry","\u002Fmodels\u002Fchat\u002Funified","4.models\u002F1.chat\u002F6.unified",{"title":127,"path":128,"stem":129},"Multimodal Input","\u002Fmodels\u002Fchat\u002Fmultimodal","4.models\u002F1.chat\u002F7.multimodal",{"title":131,"path":132,"stem":133,"children":134,"page":43},"Image Generation","\u002Fmodels\u002Fimages","4.models\u002F2.images",[135,138],{"title":103,"path":136,"stem":137},"\u002Fmodels\u002Fimages\u002Foverview","4.models\u002F2.images\u002F1.overview",{"title":139,"path":140,"stem":141},"Image Generation API","\u002Fmodels\u002Fimages\u002Fgeneration","4.models\u002F2.images\u002F2.generation",{"title":143,"path":144,"stem":145,"children":146,"page":43},"Usage & Balance","\u002Fusage-and-balance","5.usage-and-balance",[147,151,155],{"title":148,"path":149,"stem":150},"Query Balance","\u002Fusage-and-balance\u002Fbalance","5.usage-and-balance\u002F1.balance",{"title":152,"path":153,"stem":154},"Query Usage","\u002Fusage-and-balance\u002Fusage","5.usage-and-balance\u002F2.usage",{"title":156,"path":157,"stem":158},"Query Request Usage","\u002Fusage-and-balance\u002Frequest-usage","5.usage-and-balance\u002F3.request-usage",{"title":160,"path":161,"stem":162},"Error Codes","\u002Ferrors","6.errors",{"title":164,"path":165,"stem":166},"Documentation","\u002F","index",{"id":168,"title":156,"body":169,"description":1030,"extension":1031,"meta":1032,"navigation":337,"path":157,"rawbody":1033,"requiredFlags":1034,"seo":1035,"stem":158,"__hash__":1036},"docs_en\u002F5.usage-and-balance\u002F3.request-usage.md",{"type":170,"value":171,"toc":1022},"minimark",[172,176,189,204,209,212,222,226,231,236,255,259,612,615,852,959,963,1018],[173,174,156],"h1",{"id":175},"query-request-usage",[177,178,179,180,184,185,188],"p",{},"Returns the actual usage of a single request — token counts and cost — identified by its request ID (the ",[181,182,183],"code",{},"X-Request-Id"," response header value, prefixed with ",[181,186,187],{},"REQ-","). Useful for reconciling the real billing of a single call once it completes, e.g. asynchronous video generation tasks.",[177,190,191,192,195,196,199,200,203],{},"A request that failed over between providers produces multiple ledger entries: failed attempts are voided (",[181,193,194],{},"status"," is ",[181,197,198],{},"upstream_failed",", cost 0) and the final successful one is ",[181,201,202],{},"billed",". All entries are returned, ordered by creation time ascending.",[205,206,208],"h2",{"id":207},"authentication","Authentication",[177,210,211],{},"Put the API key in the request header:",[213,214,219],"pre",{"className":215,"code":217,"language":218},[216],"language-text","Authorization: Bearer sk_live_YOUR_API_KEY\n","text",[181,220,217],{"__ignoreMap":221},"",[205,223,225],{"id":224},"api","API",[227,228],"api-endpoint",{"method":229,"path":230},"GET","\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Frequest-usage",[232,233,235],"h3",{"id":234},"parameters","Parameters",[237,238,239,252],"ul",{},[240,241,242,245,246,248,249,251],"li",{},[181,243,244],{},"request_id",": required, the ",[181,247,183],{}," response header value (",[181,250,187],{}," prefixed).",[240,253,254],{},"Only requests belonging to the API key's organization can be queried; anything else returns 404.",[232,256,258],{"id":257},"examples","Examples",[260,261,262,306,381,456],"code-tabs",{},[263,264,266],"code-tab",{"label":265},"cURL",[213,267,271],{"className":268,"code":269,"language":270,"meta":221,"style":221},"language-bash shiki shiki-themes github-light github-dark","curl \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Frequest-usage?request_id=REQ-01M2JBYGGVY77KPRWNZFDFTWZR\" \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\"\n","bash",[181,272,273,290],{"__ignoreMap":221},[274,275,278,282,286],"span",{"class":276,"line":277},"line",1,[274,279,281],{"class":280},"sScJk","curl",[274,283,285],{"class":284},"sZZnC"," \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Frequest-usage?request_id=REQ-01M2JBYGGVY77KPRWNZFDFTWZR\"",[274,287,289],{"class":288},"sj4cs"," \\\n",[274,291,293,296,299,303],{"class":276,"line":292},2,[274,294,295],{"class":288},"  -H",[274,297,298],{"class":284}," \"Authorization: Bearer ",[274,300,302],{"class":301},"sVt8B","$SILVAMUX_API_KEY",[274,304,305],{"class":284},"\"\n",[263,307,309],{"label":308},"Python",[213,310,314],{"className":311,"code":312,"language":313,"meta":221,"style":221},"language-python shiki shiki-themes github-light github-dark","# pip install requests\nimport os\nimport requests\n\nresp = requests.get(\n    \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Frequest-usage\",\n    params={\"request_id\": \"REQ-01M2JBYGGVY77KPRWNZFDFTWZR\"},\n    headers={\"Authorization\": f\"Bearer {os.environ['SILVAMUX_API_KEY']}\"},\n)\nresp.raise_for_status()\nprint(resp.json()[\"ledgers\"])\n","python",[181,315,316,321,326,332,339,345,351,357,363,369,375],{"__ignoreMap":221},[274,317,318],{"class":276,"line":277},[274,319,320],{},"# pip install requests\n",[274,322,323],{"class":276,"line":292},[274,324,325],{},"import os\n",[274,327,329],{"class":276,"line":328},3,[274,330,331],{},"import requests\n",[274,333,335],{"class":276,"line":334},4,[274,336,338],{"emptyLinePlaceholder":337},true,"\n",[274,340,342],{"class":276,"line":341},5,[274,343,344],{},"resp = requests.get(\n",[274,346,348],{"class":276,"line":347},6,[274,349,350],{},"    \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Frequest-usage\",\n",[274,352,354],{"class":276,"line":353},7,[274,355,356],{},"    params={\"request_id\": \"REQ-01M2JBYGGVY77KPRWNZFDFTWZR\"},\n",[274,358,360],{"class":276,"line":359},8,[274,361,362],{},"    headers={\"Authorization\": f\"Bearer {os.environ['SILVAMUX_API_KEY']}\"},\n",[274,364,366],{"class":276,"line":365},9,[274,367,368],{},")\n",[274,370,372],{"class":276,"line":371},10,[274,373,374],{},"resp.raise_for_status()\n",[274,376,378],{"class":276,"line":377},11,[274,379,380],{},"print(resp.json()[\"ledgers\"])\n",[263,382,384],{"label":383},"JavaScript",[213,385,389],{"className":386,"code":387,"language":388,"meta":221,"style":221},"language-javascript shiki shiki-themes github-light github-dark","\u002F\u002F Node 18+ (built-in fetch)\nconst requestId = \"REQ-01M2JBYGGVY77KPRWNZFDFTWZR\";\nconst query = new URLSearchParams({ request_id: requestId });\n\nconst resp = await fetch(\n  `https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Frequest-usage?${query}`,\n  {\n    headers: { Authorization: `Bearer ${process.env.SILVAMUX_API_KEY}` },\n  },\n);\n\nconst data = await resp.json();\nconsole.log(data.ledgers);\n","javascript",[181,390,391,396,401,406,410,415,420,425,430,435,440,444,450],{"__ignoreMap":221},[274,392,393],{"class":276,"line":277},[274,394,395],{},"\u002F\u002F Node 18+ (built-in fetch)\n",[274,397,398],{"class":276,"line":292},[274,399,400],{},"const requestId = \"REQ-01M2JBYGGVY77KPRWNZFDFTWZR\";\n",[274,402,403],{"class":276,"line":328},[274,404,405],{},"const query = new URLSearchParams({ request_id: requestId });\n",[274,407,408],{"class":276,"line":334},[274,409,338],{"emptyLinePlaceholder":337},[274,411,412],{"class":276,"line":341},[274,413,414],{},"const resp = await fetch(\n",[274,416,417],{"class":276,"line":347},[274,418,419],{},"  `https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Frequest-usage?${query}`,\n",[274,421,422],{"class":276,"line":353},[274,423,424],{},"  {\n",[274,426,427],{"class":276,"line":359},[274,428,429],{},"    headers: { Authorization: `Bearer ${process.env.SILVAMUX_API_KEY}` },\n",[274,431,432],{"class":276,"line":365},[274,433,434],{},"  },\n",[274,436,437],{"class":276,"line":371},[274,438,439],{},");\n",[274,441,442],{"class":276,"line":377},[274,443,338],{"emptyLinePlaceholder":337},[274,445,447],{"class":276,"line":446},12,[274,448,449],{},"const data = await resp.json();\n",[274,451,453],{"class":276,"line":452},13,[274,454,455],{},"console.log(data.ledgers);\n",[263,457,459],{"label":458},"Go",[213,460,464],{"className":461,"code":462,"language":463,"meta":221,"style":221},"language-go shiki shiki-themes github-light github-dark","\u002F\u002F Standard library only\npackage main\n\nimport (\n    \"fmt\"\n    \"io\"\n    \"net\u002Fhttp\"\n    \"os\"\n)\n\nfunc main() {\n    url := \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Frequest-usage?request_id=REQ-01M2JBYGGVY77KPRWNZFDFTWZR\"\n\n    req, err := http.NewRequest(\"GET\", url, nil)\n    if err != nil {\n        panic(err)\n    }\n    req.Header.Set(\"Authorization\", \"Bearer \"+os.Getenv(\"SILVAMUX_API_KEY\"))\n\n    resp, err := http.DefaultClient.Do(req)\n    if err != nil {\n        panic(err)\n    }\n    defer resp.Body.Close()\n\n    body, _ := io.ReadAll(resp.Body)\n    fmt.Println(string(body))\n}\n","go",[181,465,466,471,476,480,485,490,495,500,505,509,513,518,523,527,533,539,545,551,557,562,568,573,578,583,589,594,600,606],{"__ignoreMap":221},[274,467,468],{"class":276,"line":277},[274,469,470],{},"\u002F\u002F Standard library only\n",[274,472,473],{"class":276,"line":292},[274,474,475],{},"package main\n",[274,477,478],{"class":276,"line":328},[274,479,338],{"emptyLinePlaceholder":337},[274,481,482],{"class":276,"line":334},[274,483,484],{},"import (\n",[274,486,487],{"class":276,"line":341},[274,488,489],{},"    \"fmt\"\n",[274,491,492],{"class":276,"line":347},[274,493,494],{},"    \"io\"\n",[274,496,497],{"class":276,"line":353},[274,498,499],{},"    \"net\u002Fhttp\"\n",[274,501,502],{"class":276,"line":359},[274,503,504],{},"    \"os\"\n",[274,506,507],{"class":276,"line":365},[274,508,368],{},[274,510,511],{"class":276,"line":371},[274,512,338],{"emptyLinePlaceholder":337},[274,514,515],{"class":276,"line":377},[274,516,517],{},"func main() {\n",[274,519,520],{"class":276,"line":446},[274,521,522],{},"    url := \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Frequest-usage?request_id=REQ-01M2JBYGGVY77KPRWNZFDFTWZR\"\n",[274,524,525],{"class":276,"line":452},[274,526,338],{"emptyLinePlaceholder":337},[274,528,530],{"class":276,"line":529},14,[274,531,532],{},"    req, err := http.NewRequest(\"GET\", url, nil)\n",[274,534,536],{"class":276,"line":535},15,[274,537,538],{},"    if err != nil {\n",[274,540,542],{"class":276,"line":541},16,[274,543,544],{},"        panic(err)\n",[274,546,548],{"class":276,"line":547},17,[274,549,550],{},"    }\n",[274,552,554],{"class":276,"line":553},18,[274,555,556],{},"    req.Header.Set(\"Authorization\", \"Bearer \"+os.Getenv(\"SILVAMUX_API_KEY\"))\n",[274,558,560],{"class":276,"line":559},19,[274,561,338],{"emptyLinePlaceholder":337},[274,563,565],{"class":276,"line":564},20,[274,566,567],{},"    resp, err := http.DefaultClient.Do(req)\n",[274,569,571],{"class":276,"line":570},21,[274,572,538],{},[274,574,576],{"class":276,"line":575},22,[274,577,544],{},[274,579,581],{"class":276,"line":580},23,[274,582,550],{},[274,584,586],{"class":276,"line":585},24,[274,587,588],{},"    defer resp.Body.Close()\n",[274,590,592],{"class":276,"line":591},25,[274,593,338],{"emptyLinePlaceholder":337},[274,595,597],{"class":276,"line":596},26,[274,598,599],{},"    body, _ := io.ReadAll(resp.Body)\n",[274,601,603],{"class":276,"line":602},27,[274,604,605],{},"    fmt.Println(string(body))\n",[274,607,609],{"class":276,"line":608},28,[274,610,611],{},"}\n",[177,613,614],{},"Response:",[213,616,620],{"className":617,"code":618,"language":619,"meta":221,"style":221},"language-json shiki shiki-themes github-light github-dark","{\n  \"request_id\": \"REQ-01M2JBYGGVY77KPRWNZFDFTWZR\",\n  \"ledgers\": [\n    {\n      \"request_model\": \"deepseek-v4-pro\",\n      \"project_name\": \"Default Project\",\n      \"status\": \"billed\",\n      \"tokens\": {\n        \"prompt_tokens\": 85,\n        \"cached_tokens\": 0,\n        \"billable_prompt_tokens\": 85,\n        \"completion_tokens\": 10,\n        \"total_tokens\": 95\n      },\n      \"generated_artifacts\": 0,\n      \"is_stream\": false,\n      \"first_token_latency_ms\": 0,\n      \"total_latency_ms\": 1358,\n      \"original_cost\": \"0.001035\",\n      \"cost_points\": \"0.001035\",\n      \"created_at\": \"2026-09-15T11:06:32.861800Z\"\n    }\n  ]\n}\n","json",[181,621,622,627,641,649,654,666,678,690,698,710,722,733,745,755,760,771,783,794,806,818,829,839,843,848],{"__ignoreMap":221},[274,623,624],{"class":276,"line":277},[274,625,626],{"class":301},"{\n",[274,628,629,632,635,638],{"class":276,"line":292},[274,630,631],{"class":288},"  \"request_id\"",[274,633,634],{"class":301},": ",[274,636,637],{"class":284},"\"REQ-01M2JBYGGVY77KPRWNZFDFTWZR\"",[274,639,640],{"class":301},",\n",[274,642,643,646],{"class":276,"line":328},[274,644,645],{"class":288},"  \"ledgers\"",[274,647,648],{"class":301},": [\n",[274,650,651],{"class":276,"line":334},[274,652,653],{"class":301},"    {\n",[274,655,656,659,661,664],{"class":276,"line":341},[274,657,658],{"class":288},"      \"request_model\"",[274,660,634],{"class":301},[274,662,663],{"class":284},"\"deepseek-v4-pro\"",[274,665,640],{"class":301},[274,667,668,671,673,676],{"class":276,"line":347},[274,669,670],{"class":288},"      \"project_name\"",[274,672,634],{"class":301},[274,674,675],{"class":284},"\"Default Project\"",[274,677,640],{"class":301},[274,679,680,683,685,688],{"class":276,"line":353},[274,681,682],{"class":288},"      \"status\"",[274,684,634],{"class":301},[274,686,687],{"class":284},"\"billed\"",[274,689,640],{"class":301},[274,691,692,695],{"class":276,"line":359},[274,693,694],{"class":288},"      \"tokens\"",[274,696,697],{"class":301},": {\n",[274,699,700,703,705,708],{"class":276,"line":365},[274,701,702],{"class":288},"        \"prompt_tokens\"",[274,704,634],{"class":301},[274,706,707],{"class":288},"85",[274,709,640],{"class":301},[274,711,712,715,717,720],{"class":276,"line":371},[274,713,714],{"class":288},"        \"cached_tokens\"",[274,716,634],{"class":301},[274,718,719],{"class":288},"0",[274,721,640],{"class":301},[274,723,724,727,729,731],{"class":276,"line":377},[274,725,726],{"class":288},"        \"billable_prompt_tokens\"",[274,728,634],{"class":301},[274,730,707],{"class":288},[274,732,640],{"class":301},[274,734,735,738,740,743],{"class":276,"line":446},[274,736,737],{"class":288},"        \"completion_tokens\"",[274,739,634],{"class":301},[274,741,742],{"class":288},"10",[274,744,640],{"class":301},[274,746,747,750,752],{"class":276,"line":452},[274,748,749],{"class":288},"        \"total_tokens\"",[274,751,634],{"class":301},[274,753,754],{"class":288},"95\n",[274,756,757],{"class":276,"line":529},[274,758,759],{"class":301},"      },\n",[274,761,762,765,767,769],{"class":276,"line":535},[274,763,764],{"class":288},"      \"generated_artifacts\"",[274,766,634],{"class":301},[274,768,719],{"class":288},[274,770,640],{"class":301},[274,772,773,776,778,781],{"class":276,"line":541},[274,774,775],{"class":288},"      \"is_stream\"",[274,777,634],{"class":301},[274,779,780],{"class":288},"false",[274,782,640],{"class":301},[274,784,785,788,790,792],{"class":276,"line":547},[274,786,787],{"class":288},"      \"first_token_latency_ms\"",[274,789,634],{"class":301},[274,791,719],{"class":288},[274,793,640],{"class":301},[274,795,796,799,801,804],{"class":276,"line":553},[274,797,798],{"class":288},"      \"total_latency_ms\"",[274,800,634],{"class":301},[274,802,803],{"class":288},"1358",[274,805,640],{"class":301},[274,807,808,811,813,816],{"class":276,"line":559},[274,809,810],{"class":288},"      \"original_cost\"",[274,812,634],{"class":301},[274,814,815],{"class":284},"\"0.001035\"",[274,817,640],{"class":301},[274,819,820,823,825,827],{"class":276,"line":564},[274,821,822],{"class":288},"      \"cost_points\"",[274,824,634],{"class":301},[274,826,815],{"class":284},[274,828,640],{"class":301},[274,830,831,834,836],{"class":276,"line":570},[274,832,833],{"class":288},"      \"created_at\"",[274,835,634],{"class":301},[274,837,838],{"class":284},"\"2026-09-15T11:06:32.861800Z\"\n",[274,840,841],{"class":276,"line":575},[274,842,550],{"class":301},[274,844,845],{"class":276,"line":580},[274,846,847],{"class":301},"  ]\n",[274,849,850],{"class":276,"line":585},[274,851,611],{"class":301},[853,854,855,868],"table",{},[856,857,858],"thead",{},[859,860,861,865],"tr",{},[862,863,864],"th",{},"Field",[862,866,867],{},"Description",[869,870,871,881,891,901,919,929,939,949],"tbody",{},[859,872,873,878],{},[874,875,876],"td",{},[181,877,244],{},[874,879,880],{},"The queried request ID",[859,882,883,888],{},[874,884,885],{},[181,886,887],{},"ledgers",[874,889,890],{},"All ledger entries produced by this request, ordered by creation time ascending",[859,892,893,898],{},[874,894,895],{},[181,896,897],{},"ledgers[].request_model",[874,899,900],{},"The model name as supplied in the request",[859,902,903,908],{},[874,904,905],{},[181,906,907],{},"ledgers[].status",[874,909,910,912,913,915,916],{},[181,911,202],{}," \u002F ",[181,914,198],{}," (voided, cost 0) \u002F ",[181,917,918],{},"pending",[859,920,921,926],{},[874,922,923],{},[181,924,925],{},"ledgers[].tokens",[874,927,928],{},"Token usage breakdown",[859,930,931,936],{},[874,932,933],{},[181,934,935],{},"ledgers[].generated_artifacts",[874,937,938],{},"Artifact count for async tasks (video\u002Fimage)",[859,940,941,946],{},[874,942,943],{},[181,944,945],{},"ledgers[].original_cost",[874,947,948],{},"Cost before discount",[859,950,951,956],{},[874,952,953],{},[181,954,955],{},"ledgers[].cost_points",[874,957,958],{},"Actual charged cost after discount",[205,960,962],{"id":961},"error-handling","Error Handling",[853,964,965,977],{},[856,966,967],{},[859,968,969,972,975],{},[862,970,971],{},"HTTP",[862,973,974],{},"Code",[862,976,867],{},[869,978,979,992,1005],{},[859,980,981,984,989],{},[874,982,983],{},"401",[874,985,986],{},[181,987,988],{},"INVALID_TOKEN",[874,990,991],{},"API key missing or invalid",[859,993,994,997,1002],{},[874,995,996],{},"404",[874,998,999],{},[181,1000,1001],{},"REQUEST_USAGE_NOT_FOUND",[874,1003,1004],{},"Request ID not found, or not owned by the API key's organization",[859,1006,1007,1010,1013],{},[874,1008,1009],{},"422",[874,1011,1012],{},"—",[874,1014,1015,1017],{},[181,1016,244],{}," parameter missing",[1019,1020,1021],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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":221,"searchDepth":292,"depth":292,"links":1023},[1024,1025,1029],{"id":207,"depth":292,"text":208},{"id":224,"depth":292,"text":225,"children":1026},[1027,1028],{"id":234,"depth":328,"text":235},{"id":257,"depth":328,"text":258},{"id":961,"depth":292,"text":962},"Query the actual usage (tokens and cost) of a single request by request ID using an API key.","md",{},"---\ntitle: Query Request Usage\ndescription: Query the actual usage (tokens and cost) of a single request by request ID using an API key.\n---\n\n# Query Request Usage\n\nReturns the actual usage of a single request — token counts and cost — identified by its request ID (the `X-Request-Id` response header value, prefixed with `REQ-`). Useful for reconciling the real billing of a single call once it completes, e.g. asynchronous video generation tasks.\n\nA request that failed over between providers produces multiple ledger entries: failed attempts are voided (`status` is `upstream_failed`, cost 0) and the final successful one is `billed`. All entries are returned, ordered by creation time ascending.\n\n## Authentication\n\nPut the API key in the request header:\n\n```\nAuthorization: Bearer sk_live_YOUR_API_KEY\n```\n\n## API\n\n::api-endpoint{path=\"\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Frequest-usage\" method=\"GET\"}\n::\n\n### Parameters\n\n- `request_id`: required, the `X-Request-Id` response header value (`REQ-` prefixed).\n- Only requests belonging to the API key's organization can be queried; anything else returns 404.\n\n### Examples\n\n::code-tabs\n:::code-tab{label=\"cURL\"}\n```bash\ncurl \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Frequest-usage?request_id=REQ-01M2JBYGGVY77KPRWNZFDFTWZR\" \\\n  -H \"Authorization: Bearer $SILVAMUX_API_KEY\"\n```\n:::\n:::code-tab{label=\"Python\"}\n```python\n# pip install requests\nimport os\nimport requests\n\nresp = requests.get(\n    \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Frequest-usage\",\n    params={\"request_id\": \"REQ-01M2JBYGGVY77KPRWNZFDFTWZR\"},\n    headers={\"Authorization\": f\"Bearer {os.environ['SILVAMUX_API_KEY']}\"},\n)\nresp.raise_for_status()\nprint(resp.json()[\"ledgers\"])\n```\n:::\n:::code-tab{label=\"JavaScript\"}\n```javascript\n\u002F\u002F Node 18+ (built-in fetch)\nconst requestId = \"REQ-01M2JBYGGVY77KPRWNZFDFTWZR\";\nconst query = new URLSearchParams({ request_id: requestId });\n\nconst resp = await fetch(\n  `https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Frequest-usage?${query}`,\n  {\n    headers: { Authorization: `Bearer ${process.env.SILVAMUX_API_KEY}` },\n  },\n);\n\nconst data = await resp.json();\nconsole.log(data.ledgers);\n```\n:::\n:::code-tab{label=\"Go\"}\n```go\n\u002F\u002F Standard library only\npackage main\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net\u002Fhttp\"\n\t\"os\"\n)\n\nfunc main() {\n\turl := \"https:\u002F\u002Fwww.silvamux.com\u002Fapi\u002Fbusiness\u002Fv1\u002Fcustomer\u002Frequest-usage?request_id=REQ-01M2JBYGGVY77KPRWNZFDFTWZR\"\n\n\treq, err := http.NewRequest(\"GET\", url, nil)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treq.Header.Set(\"Authorization\", \"Bearer \"+os.Getenv(\"SILVAMUX_API_KEY\"))\n\n\tresp, err := http.DefaultClient.Do(req)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tdefer resp.Body.Close()\n\n\tbody, _ := io.ReadAll(resp.Body)\n\tfmt.Println(string(body))\n}\n```\n:::\n::\n\nResponse:\n\n```json\n{\n  \"request_id\": \"REQ-01M2JBYGGVY77KPRWNZFDFTWZR\",\n  \"ledgers\": [\n    {\n      \"request_model\": \"deepseek-v4-pro\",\n      \"project_name\": \"Default Project\",\n      \"status\": \"billed\",\n      \"tokens\": {\n        \"prompt_tokens\": 85,\n        \"cached_tokens\": 0,\n        \"billable_prompt_tokens\": 85,\n        \"completion_tokens\": 10,\n        \"total_tokens\": 95\n      },\n      \"generated_artifacts\": 0,\n      \"is_stream\": false,\n      \"first_token_latency_ms\": 0,\n      \"total_latency_ms\": 1358,\n      \"original_cost\": \"0.001035\",\n      \"cost_points\": \"0.001035\",\n      \"created_at\": \"2026-09-15T11:06:32.861800Z\"\n    }\n  ]\n}\n```\n\n| Field | Description |\n|---|---|\n| `request_id` | The queried request ID |\n| `ledgers` | All ledger entries produced by this request, ordered by creation time ascending |\n| `ledgers[].request_model` | The model name as supplied in the request |\n| `ledgers[].status` | `billed` \u002F `upstream_failed` (voided, cost 0) \u002F `pending` |\n| `ledgers[].tokens` | Token usage breakdown |\n| `ledgers[].generated_artifacts` | Artifact count for async tasks (video\u002Fimage) |\n| `ledgers[].original_cost` | Cost before discount |\n| `ledgers[].cost_points` | Actual charged cost after discount |\n\n## Error Handling\n\n| HTTP | Code | Description |\n|---|---|---|\n| 401 | `INVALID_TOKEN` | API key missing or invalid |\n| 404 | `REQUEST_USAGE_NOT_FOUND` | Request ID not found, or not owned by the API key's organization |\n| 422 | — | `request_id` parameter missing |\n",[],{"title":156,"description":1030},"pgW4AgSspTthFr3wIr-pQUoysz2z4mk8P9w_TT9XFbY",{"found":337,"operationId":1038,"summary":1039,"description":1040,"method":229,"path":230,"publiclyDiscoverable":337,"security":1041,"parameters":1044,"requestBody":1055,"responses":1059},"customer-request-usage","Get actual usage for a single request","Return the ledgers (tokens + cost) produced by one gateway request, identified by the request_id query parameter (the X-Request-Id response header value, REQ-...). Fields match the dashboard ledger view. A request that failed over between providers produces multiple ledgers (voided attempts + the final billed one). API key only.",{"schemes":1042,"optional":43},[1043],"apikey",[1045,1049,1052],{"name":1046,"type":1047,"required":337,"description":1048},"Authorization","string · header","Bearer API Key (sk_live_...)",{"name":1050,"type":1047,"required":43,"description":1051},"X-Organization-Id","Not required for API key auth",{"name":244,"type":1053,"required":337,"description":1054},"string · query","Request ID from the X-Request-Id response header (REQ-...)",{"present":43,"required":43,"description":221,"contentType":221,"type":1056,"fields":1057,"variants":1058},"any",[],[],[1060,1127],{"status":1061,"description":1062,"contentType":1063,"type":1064,"fields":1065},"200","OK","application\u002Fjson","CustomerRequestUsageResponse",[1066,1070,1073,1077,1081,1085,1088,1092,1095,1098,1101,1104,1107,1110,1113,1116,1119,1122,1125],{"name":1067,"type":1068,"required":43,"description":1069},"$schema","string (uri)","A URL to the JSON Schema for this object.",{"name":887,"type":1071,"required":337,"description":1072},"array\u003CCustomerRequestUsageEntry>","Ledgers produced by this request, ordered by created_at asc",{"name":1074,"type":1075,"required":337,"description":1076},"ledgers.cost_points","string","Cost in points after discount",{"name":1078,"type":1079,"required":337,"description":1080},"ledgers.created_at","string (date-time)","Ledger creation time (RFC3339)",{"name":1082,"type":1083,"required":337,"description":1084},"ledgers.first_token_latency_ms","integer (int64)","Time to first token in ms (streamed requests; 0 = unrecorded)",{"name":1086,"type":1083,"required":337,"description":1087},"ledgers.generated_artifacts","Generated artifact count (video\u002Fimage async tasks)",{"name":1089,"type":1090,"required":337,"description":1091},"ledgers.is_stream","boolean","Whether the request was streamed",{"name":1093,"type":1075,"required":337,"description":1094},"ledgers.original_cost","Cost in points before discount",{"name":1096,"type":1075,"required":337,"description":1097},"ledgers.project_name","Project name",{"name":1099,"type":1075,"required":337,"description":1100},"ledgers.request_model","Model name as supplied in the request",{"name":1102,"type":1075,"required":337,"description":1103},"ledgers.status","Ledger status (billed \u002F upstream_failed \u002F pending)",{"name":1105,"type":1106,"required":337,"description":221},"ledgers.tokens","RequestTokens",{"name":1108,"type":1083,"required":337,"description":1109},"ledgers.tokens.billable_prompt_tokens","Billable prompt tokens (prompt + cache creation)",{"name":1111,"type":1083,"required":337,"description":1112},"ledgers.tokens.cached_tokens","Cache-read prompt tokens",{"name":1114,"type":1083,"required":337,"description":1115},"ledgers.tokens.completion_tokens","Completion tokens",{"name":1117,"type":1083,"required":337,"description":1118},"ledgers.tokens.prompt_tokens","Prompt tokens (uncached)",{"name":1120,"type":1083,"required":337,"description":1121},"ledgers.tokens.total_tokens","Total tokens",{"name":1123,"type":1083,"required":337,"description":1124},"ledgers.total_latency_ms","Total request latency in ms (0 = unrecorded)",{"name":244,"type":1075,"required":337,"description":1126},"Gateway request ID (X-Request-Id response header)",{"status":1128,"description":1129,"contentType":1130,"type":1131,"fields":1132},"default","Error","application\u002Fproblem+json","ErrorModel",[1133,1134,1137,1141,1144,1147,1150,1153,1155,1158],{"name":1067,"type":1068,"required":43,"description":1069},{"name":1135,"type":1075,"required":43,"description":1136},"detail","A human-readable explanation specific to this occurrence of the problem.",{"name":1138,"type":1139,"required":43,"description":1140},"errors","array\u003CErrorDetail>","Optional list of individual error details",{"name":1142,"type":1075,"required":43,"description":1143},"errors.location","Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",{"name":1145,"type":1075,"required":43,"description":1146},"errors.message","Error message text",{"name":1148,"type":1056,"required":43,"description":1149},"errors.value","The value at the given location",{"name":1151,"type":1068,"required":43,"description":1152},"instance","A URI reference that identifies the specific occurrence of the problem.",{"name":194,"type":1083,"required":43,"description":1154},"HTTP status code",{"name":1156,"type":1075,"required":43,"description":1157},"title","A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",{"name":1159,"type":1068,"required":43,"description":1160,"defaultValue":1161},"type","A URI reference to human-readable documentation for the error.","about:blank"]