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