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