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