[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-nav-en":3,"docs-en-errors":163},[4,52,69,92,142,155,159],{"title":5,"path":6,"stem":7,"children":8,"page":-1},"Getting Started","\u002Fgetting-started","1.getting-started",[9,12,30,44,48],{"title":10,"path":6,"stem":11},"About SilvaMux","1.getting-started\u002Findex",{"title":13,"path":14,"stem":15,"children":16,"page":-1},"Your First SilvaMux API Call","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F1.quick-start\u002Findex",[17,18,22,26],{"title":13,"path":14,"stem":15},{"title":19,"path":20,"stem":21},"Projects & Account Setup","\u002Fgetting-started\u002Fquick-start\u002Fproject-and-account","1.getting-started\u002F1.quick-start\u002F2.project-and-account",{"title":23,"path":24,"stem":25},"Get an API Key","\u002Fgetting-started\u002Fquick-start\u002Fapi-key","1.getting-started\u002F1.quick-start\u002F3.api-key",{"title":27,"path":28,"stem":29},"First Request","\u002Fgetting-started\u002Fquick-start\u002Ffirst-request","1.getting-started\u002F1.quick-start\u002F4.first-request",{"title":31,"path":32,"stem":33,"children":34,"page":43},"Models & Experience","\u002Fgetting-started\u002Fmodels-and-experience","1.getting-started\u002F2.models-and-experience",[35,39],{"title":36,"path":37,"stem":38},"Model Selection","\u002Fgetting-started\u002Fmodels-and-experience\u002Fmodel-selection","1.getting-started\u002F2.models-and-experience\u002F1.model-selection",{"title":40,"path":41,"stem":42},"Playground","\u002Fgetting-started\u002Fmodels-and-experience\u002Fplayground","1.getting-started\u002F2.models-and-experience\u002F2.playground",false,{"title":45,"path":46,"stem":47},"Rate Limits","\u002Fgetting-started\u002Frate-limits","1.getting-started\u002F3.rate-limits",{"title":49,"path":50,"stem":51},"FAQ","\u002Fgetting-started\u002Ffaq","1.getting-started\u002F4.faq",{"title":53,"path":54,"stem":55,"children":56,"page":43},"Billing","\u002Fbilling","2.billing",[57,61,65],{"title":58,"path":59,"stem":60},"Billing Overview","\u002Fbilling\u002Foverview","2.billing\u002F1.overview",{"title":62,"path":63,"stem":64},"Online Top-up","\u002Fbilling\u002Frecharge","2.billing\u002F2.recharge",{"title":66,"path":67,"stem":68},"Bills, Usage & Exports","\u002Fbilling\u002Fusage-export","2.billing\u002F3.usage-export",{"title":70,"path":71,"stem":72,"children":73,"page":43},"Coding Plan","\u002Fcoding-plan","3.coding-plan",[74,78],{"title":75,"path":76,"stem":77},"Coding Plan Overview","\u002Fcoding-plan\u002Foverview","3.coding-plan\u002F1.overview",{"title":79,"path":80,"stem":81,"children":82,"page":-1},"Personal","\u002Fcoding-plan\u002Fpersonal","3.coding-plan\u002F2.personal\u002Findex",[83,85,89],{"title":84,"path":80,"stem":81},"Pricing & Benefits",{"title":86,"path":87,"stem":88},"Quick Start","\u002Fcoding-plan\u002Fpersonal\u002Fquick-start","3.coding-plan\u002F2.personal\u002F2.quick-start",{"title":49,"path":90,"stem":91},"\u002Fcoding-plan\u002Fpersonal\u002Ffaq","3.coding-plan\u002F2.personal\u002F3.faq",{"title":93,"path":94,"stem":95,"children":96,"page":43},"Model APIs","\u002Fmodels","4.models",[97,130],{"title":98,"path":99,"stem":100,"children":101,"page":43},"Text Generation","\u002Fmodels\u002Fchat","4.models\u002F1.chat",[102,106,110,114,118,122,126],{"title":103,"path":104,"stem":105},"Overview","\u002Fmodels\u002Fchat\u002Foverview","4.models\u002F1.chat\u002F1.overview",{"title":107,"path":108,"stem":109},"OpenAI Compatible API","\u002Fmodels\u002Fchat\u002Fopenai","4.models\u002F1.chat\u002F2.openai",{"title":111,"path":112,"stem":113},"Anthropic Compatible","\u002Fmodels\u002Fchat\u002Fanthropic","4.models\u002F1.chat\u002F3.anthropic",{"title":115,"path":116,"stem":117},"Volcengine Compatible","\u002Fmodels\u002Fchat\u002Fvolcengine","4.models\u002F1.chat\u002F4.volcengine",{"title":119,"path":120,"stem":121},"Zhipu Compatible","\u002Fmodels\u002Fchat\u002Fzhipu","4.models\u002F1.chat\u002F5.zhipu",{"title":123,"path":124,"stem":125},"SilvaMux Unified Entry","\u002Fmodels\u002Fchat\u002Funified","4.models\u002F1.chat\u002F6.unified",{"title":127,"path":128,"stem":129},"Multimodal Input","\u002Fmodels\u002Fchat\u002Fmultimodal","4.models\u002F1.chat\u002F7.multimodal",{"title":131,"path":132,"stem":133,"children":134,"page":43},"Image Generation","\u002Fmodels\u002Fimages","4.models\u002F2.images",[135,138],{"title":103,"path":136,"stem":137},"\u002Fmodels\u002Fimages\u002Foverview","4.models\u002F2.images\u002F1.overview",{"title":139,"path":140,"stem":141},"Image Generation API","\u002Fmodels\u002Fimages\u002Fgeneration","4.models\u002F2.images\u002F2.generation",{"title":143,"path":144,"stem":145,"children":146,"page":43},"Usage & Balance","\u002Fusage-and-balance","5.usage-and-balance",[147,151],{"title":148,"path":149,"stem":150},"Query Balance","\u002Fusage-and-balance\u002Fbalance","5.usage-and-balance\u002F1.balance",{"title":152,"path":153,"stem":154},"Query Usage","\u002Fusage-and-balance\u002Fusage","5.usage-and-balance\u002F2.usage",{"title":156,"path":157,"stem":158},"Error Codes","\u002Ferrors","6.errors",{"title":160,"path":161,"stem":162},"Documentation","\u002F","index",{"id":164,"title":156,"body":165,"description":871,"extension":872,"meta":873,"navigation":874,"path":157,"rawbody":875,"requiredFlags":876,"seo":877,"stem":158,"__hash__":878},"docs_en\u002F6.errors.md",{"type":166,"value":167,"toc":861},"minimark",[168,172,176,181,188,268,271,275,278,486,491,530,534,571,574,626,630,633,678,685,761,772,776,839,843,857],[169,170,156],"h1",{"id":171},"error-codes",[173,174,175],"p",{},"SilvaMux's error format depends on the API type. This page summarizes the common error format, model-call error codes, and retry advice.",[177,178,180],"h2",{"id":179},"gateway-api-errors-model-calls","Gateway API Errors (Model Calls)",[173,182,183,184,187],{},"The error format of chat, image, and video model APIs is determined by the model protocol, rendered in one of four shapes — OpenAI \u002F Anthropic \u002F Gemini \u002F Volcengine — with a unified ",[185,186,185],"code",{}," string.",[189,190,195],"pre",{"className":191,"code":192,"language":193,"meta":194,"style":194},"language-json shiki shiki-themes github-light github-dark","{\n  \"error\": {\n    \"message\": \"Detailed error message\",\n    \"type\": \"gateway_error\",\n    \"code\": \"ERROR_CODE\"\n  }\n}\n","json","",[185,196,197,206,216,232,245,256,262],{"__ignoreMap":194},[198,199,202],"span",{"class":200,"line":201},"line",1,[198,203,205],{"class":204},"sVt8B","{\n",[198,207,209,213],{"class":200,"line":208},2,[198,210,212],{"class":211},"sj4cs","  \"error\"",[198,214,215],{"class":204},": {\n",[198,217,219,222,225,229],{"class":200,"line":218},3,[198,220,221],{"class":211},"    \"message\"",[198,223,224],{"class":204},": ",[198,226,228],{"class":227},"sZZnC","\"Detailed error message\"",[198,230,231],{"class":204},",\n",[198,233,235,238,240,243],{"class":200,"line":234},4,[198,236,237],{"class":211},"    \"type\"",[198,239,224],{"class":204},[198,241,242],{"class":227},"\"gateway_error\"",[198,244,231],{"class":204},[198,246,248,251,253],{"class":200,"line":247},5,[198,249,250],{"class":211},"    \"code\"",[198,252,224],{"class":204},[198,254,255],{"class":227},"\"ERROR_CODE\"\n",[198,257,259],{"class":200,"line":258},6,[198,260,261],{"class":204},"  }\n",[198,263,265],{"class":200,"line":264},7,[198,266,267],{"class":204},"}\n",[173,269,270],{},"When the model side returns 4xx\u002F5xx, SilvaMux passes the error response through after sanitization, preserving the HTTP status code; no charges are incurred in that case.",[177,272,274],{"id":273},"gateway-api-error-codes","Gateway API Error Codes",[173,276,277],{},"Chat, image, and video model calls share the following error codes:",[279,280,281,297],"table",{},[282,283,284],"thead",{},[285,286,287,291,294],"tr",{},[288,289,290],"th",{},"Code",[288,292,293],{},"HTTP",[288,295,296],{},"Description",[298,299,300,318,330,342,354,367,380,393,406,424,437,449,461,473],"tbody",{},[285,301,302,308,311],{},[303,304,305],"td",{},[185,306,307],{},"MODEL_REQUIRED",[303,309,310],{},"400",[303,312,313,314,317],{},"Request body missing the ",[185,315,316],{},"model"," field",[285,319,320,325,327],{},[303,321,322],{},[185,323,324],{},"MODEL_NOT_FOUND",[303,326,310],{},[303,328,329],{},"Model does not exist or is unavailable",[285,331,332,337,339],{},[303,333,334],{},[185,335,336],{},"INVALID_REQUEST",[303,338,310],{},[303,340,341],{},"Invalid request parameters",[285,343,344,349,351],{},[303,345,346],{},[185,347,348],{},"INVALID_REQUEST_BODY",[303,350,310],{},[303,352,353],{},"Failed to parse the request body",[285,355,356,361,364],{},[303,357,358],{},[185,359,360],{},"UNAUTHORIZED",[303,362,363],{},"401",[303,365,366],{},"Authentication failed (invalid API key\u002FJWT)",[285,368,369,374,377],{},[303,370,371],{},[185,372,373],{},"MODEL_ACCESS_DENIED",[303,375,376],{},"403",[303,378,379],{},"Organization lacks the permission flags required by the model",[285,381,382,387,390],{},[303,383,384],{},[185,385,386],{},"INSUFFICIENT_BALANCE",[303,388,389],{},"402",[303,391,392],{},"Insufficient balance",[285,394,395,400,403],{},[303,396,397],{},[185,398,399],{},"PRE_DEDUCT_FAILED",[303,401,402],{},"400\u002F402",[303,404,405],{},"Pre-deduction failed (bad parameters = 400, storage failure = 402)",[285,407,408,413,416],{},[303,409,410],{},[185,411,412],{},"RATE_LIMITED",[303,414,415],{},"429",[303,417,418,419,423],{},"Rate limit hit (see ",[420,421,45],"a",{"href":422},"\u002Fen\u002Fdocs\u002Fgetting-started\u002Frate-limits",")",[285,425,426,431,434],{},[303,427,428],{},[185,429,430],{},"UPSTREAM_UNAVAILABLE",[303,432,433],{},"502",[303,435,436],{},"Failed to send the request to the model side",[285,438,439,444,446],{},[303,440,441],{},[185,442,443],{},"UPSTREAM_HTTP_ERROR",[303,445,433],{},[303,447,448],{},"Model side returned 4xx\u002F5xx",[285,450,451,456,458],{},[303,452,453],{},[185,454,455],{},"UPSTREAM_PROVIDER_ERROR",[303,457,433],{},[303,459,460],{},"Model-side business error",[285,462,463,468,470],{},[303,464,465],{},[185,466,467],{},"UPSTREAM_INVALID_RESPONSE",[303,469,433],{},[303,471,472],{},"Model-side response could not be parsed",[285,474,475,480,483],{},[303,476,477],{},[185,478,479],{},"INTERNAL",[303,481,482],{},"500",[303,484,485],{},"Internal error",[487,488,490],"h3",{"id":489},"image-generation-only","Image Generation Only",[279,492,493,503],{},[282,494,495],{},[285,496,497,499,501],{},[288,498,290],{},[288,500,293],{},[288,502,296],{},[298,504,505,518],{},[285,506,507,512,515],{},[303,508,509],{},[185,510,511],{},"REQUEST_TOO_LARGE",[303,513,514],{},"413",[303,516,517],{},"Request body exceeds 64MB",[285,519,520,525,527],{},[303,521,522],{},[185,523,524],{},"CONCURRENCY_LIMIT_EXCEEDED",[303,526,415],{},[303,528,529],{},"Image generation concurrency cap",[487,531,533],{"id":532},"video-tasks-only","Video & Tasks Only",[279,535,536,546],{},[282,537,538],{},[285,539,540,542,544],{},[288,541,290],{},[288,543,293],{},[288,545,296],{},[298,547,548,560],{},[285,549,550,555,557],{},[303,551,552],{},[185,553,554],{},"INVALID_CALLBACK_URL",[303,556,310],{},[303,558,559],{},"Invalid callback URL",[285,561,562,566,568],{},[303,563,564],{},[185,565,524],{},[303,567,415],{},[303,569,570],{},"Video generation concurrency cap",[173,572,573],{},"Task cancellation errors:",[279,575,576,586],{},[282,577,578],{},[285,579,580,582,584],{},[288,581,293],{},[288,583,290],{},[288,585,296],{},[298,587,588,601,614],{},[285,589,590,593,598],{},[303,591,592],{},"404",[303,594,595],{},[185,596,597],{},"NOT_FOUND",[303,599,600],{},"Task not found",[285,602,603,606,611],{},[303,604,605],{},"409",[303,607,608],{},[185,609,610],{},"INVALID_STATE",[303,612,613],{},"Task is not in the queued state",[285,615,616,618,623],{},[303,617,433],{},[303,619,620],{},[185,621,622],{},"UPSTREAM_CANCEL_FAILED",[303,624,625],{},"Model-side cancellation failed",[177,627,629],{"id":628},"billing-business-api-errors-management-apis","Billing \u002F Business API Errors (Management APIs)",[173,631,632],{},"Account, billing, and proprietary asset management APIs use an RFC 7807-style body:",[189,634,636],{"className":191,"code":635,"language":193,"meta":194,"style":194},"{\n  \"status\": 400,\n  \"detail\": \"Detailed error message\",\n  \"type\": \"tag:hub,2026-03:ERROR_CODE\"\n}\n",[185,637,638,642,653,664,674],{"__ignoreMap":194},[198,639,640],{"class":200,"line":201},[198,641,205],{"class":204},[198,643,644,647,649,651],{"class":200,"line":208},[198,645,646],{"class":211},"  \"status\"",[198,648,224],{"class":204},[198,650,310],{"class":211},[198,652,231],{"class":204},[198,654,655,658,660,662],{"class":200,"line":218},[198,656,657],{"class":211},"  \"detail\"",[198,659,224],{"class":204},[198,661,228],{"class":227},[198,663,231],{"class":204},[198,665,666,669,671],{"class":200,"line":234},[198,667,668],{"class":211},"  \"type\"",[198,670,224],{"class":204},[198,672,673],{"class":227},"\"tag:hub,2026-03:ERROR_CODE\"\n",[198,675,676],{"class":200,"line":247},[198,677,267],{"class":204},[173,679,680,681,684],{},"Validation errors include an ",[185,682,683],{},"errors"," array:",[189,686,688],{"className":191,"code":687,"language":193,"meta":194,"style":194},"{\n  \"status\": 422,\n  \"detail\": \"validation failed\",\n  \"type\": \"tag:hub,2026-03:VALIDATION_FAILED\",\n  \"errors\": [{\"location\": \"body.email\", \"message\": \"required\"}]\n}\n",[185,689,690,694,705,716,727,757],{"__ignoreMap":194},[198,691,692],{"class":200,"line":201},[198,693,205],{"class":204},[198,695,696,698,700,703],{"class":200,"line":208},[198,697,646],{"class":211},[198,699,224],{"class":204},[198,701,702],{"class":211},"422",[198,704,231],{"class":204},[198,706,707,709,711,714],{"class":200,"line":218},[198,708,657],{"class":211},[198,710,224],{"class":204},[198,712,713],{"class":227},"\"validation failed\"",[198,715,231],{"class":204},[198,717,718,720,722,725],{"class":200,"line":234},[198,719,668],{"class":211},[198,721,224],{"class":204},[198,723,724],{"class":227},"\"tag:hub,2026-03:VALIDATION_FAILED\"",[198,726,231],{"class":204},[198,728,729,732,735,738,740,743,746,749,751,754],{"class":200,"line":247},[198,730,731],{"class":211},"  \"errors\"",[198,733,734],{"class":204},": [{",[198,736,737],{"class":211},"\"location\"",[198,739,224],{"class":204},[198,741,742],{"class":227},"\"body.email\"",[198,744,745],{"class":204},", ",[198,747,748],{"class":211},"\"message\"",[198,750,224],{"class":204},[198,752,753],{"class":227},"\"required\"",[198,755,756],{"class":204},"}]\n",[198,758,759],{"class":200,"line":258},[198,760,267],{"class":204},[173,762,763,764,767,768,771],{},"Error codes of the customer query APIs (balance\u002Fusage) are listed in ",[420,765,148],{"href":766},"\u002Fen\u002Fdocs\u002Fusage-and-balance\u002Fbalance"," and ",[420,769,152],{"href":770},"\u002Fen\u002Fdocs\u002Fusage-and-balance\u002Fusage",".",[177,773,775],{"id":774},"retry-advice","Retry Advice",[279,777,778,788],{},[282,779,780],{},[285,781,782,785],{},[288,783,784],{},"HTTP status",[288,786,787],{},"Advice",[298,789,790,797,804,811,818,825,832],{},[285,791,792,794],{},[303,793,310],{},[303,795,796],{},"Do not retry; fix the request parameters",[285,798,799,801],{},[303,800,363],{},[303,802,803],{},"Do not retry; check your credentials",[285,805,806,808],{},[303,807,389],{},[303,809,810],{},"Do not retry; top up first",[285,812,813,815],{},[303,814,376],{},[303,816,817],{},"Do not retry; contact an administrator",[285,819,820,822],{},[303,821,415],{},[303,823,824],{},"Retry after waiting; exponential backoff recommended",[285,826,827,829],{},[303,828,482],{},[303,830,831],{},"Retrying is fine; wait 1–5 seconds between attempts",[285,833,834,836],{},[303,835,433],{},[303,837,838],{},"Retrying is fine; the model side is temporarily unavailable",[177,840,842],{"id":841},"request-ids","Request IDs",[173,844,845,846,849,850,853,854,856],{},"Every response carries an ",[185,847,848],{},"X-Request-Id"," header (format ",[185,851,852],{},"REQ-xxxx","). Provide this ID when troubleshooting. You may also set your own ",[185,855,848],{}," on requests; the system keeps it.",[858,859,860],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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":194,"searchDepth":208,"depth":208,"links":862},[863,864,868,869,870],{"id":179,"depth":208,"text":180},{"id":273,"depth":208,"text":274,"children":865},[866,867],{"id":489,"depth":218,"text":490},{"id":532,"depth":218,"text":533},{"id":628,"depth":208,"text":629},{"id":774,"depth":208,"text":775},{"id":841,"depth":208,"text":842},"Error formats, model-call and management API error codes, retry advice, and request IDs.","md",{},true,"---\ntitle: Error Codes\ndescription: Error formats, model-call and management API error codes, retry advice, and request IDs.\n---\n\n# Error Codes\n\nSilvaMux's error format depends on the API type. This page summarizes the common error format, model-call error codes, and retry advice.\n\n## Gateway API Errors (Model Calls)\n\nThe error format of chat, image, and video model APIs is determined by the model protocol, rendered in one of four shapes — OpenAI \u002F Anthropic \u002F Gemini \u002F Volcengine — with a unified `code` string.\n\n```json\n{\n  \"error\": {\n    \"message\": \"Detailed error message\",\n    \"type\": \"gateway_error\",\n    \"code\": \"ERROR_CODE\"\n  }\n}\n```\n\nWhen the model side returns 4xx\u002F5xx, SilvaMux passes the error response through after sanitization, preserving the HTTP status code; no charges are incurred in that case.\n\n## Gateway API Error Codes\n\nChat, image, and video model calls share the following error codes:\n\n| Code | HTTP | Description |\n| --- | --- | --- |\n| `MODEL_REQUIRED` | 400 | Request body missing the `model` field |\n| `MODEL_NOT_FOUND` | 400 | Model does not exist or is unavailable |\n| `INVALID_REQUEST` | 400 | Invalid request parameters |\n| `INVALID_REQUEST_BODY` | 400 | Failed to parse the request body |\n| `UNAUTHORIZED` | 401 | Authentication failed (invalid API key\u002FJWT) |\n| `MODEL_ACCESS_DENIED` | 403 | Organization lacks the permission flags required by the model |\n| `INSUFFICIENT_BALANCE` | 402 | Insufficient balance |\n| `PRE_DEDUCT_FAILED` | 400\u002F402 | Pre-deduction failed (bad parameters = 400, storage failure = 402) |\n| `RATE_LIMITED` | 429 | Rate limit hit (see [Rate Limits](\u002Fen\u002Fdocs\u002Fgetting-started\u002Frate-limits)) |\n| `UPSTREAM_UNAVAILABLE` | 502 | Failed to send the request to the model side |\n| `UPSTREAM_HTTP_ERROR` | 502 | Model side returned 4xx\u002F5xx |\n| `UPSTREAM_PROVIDER_ERROR` | 502 | Model-side business error |\n| `UPSTREAM_INVALID_RESPONSE` | 502 | Model-side response could not be parsed |\n| `INTERNAL` | 500 | Internal error |\n\n### Image Generation Only\n\n| Code | HTTP | Description |\n| --- | --- | --- |\n| `REQUEST_TOO_LARGE` | 413 | Request body exceeds 64MB |\n| `CONCURRENCY_LIMIT_EXCEEDED` | 429 | Image generation concurrency cap |\n\n### Video & Tasks Only\n\n| Code | HTTP | Description |\n| --- | --- | --- |\n| `INVALID_CALLBACK_URL` | 400 | Invalid callback URL |\n| `CONCURRENCY_LIMIT_EXCEEDED` | 429 | Video generation concurrency cap |\n\nTask cancellation errors:\n\n| HTTP | Code | Description |\n| --- | --- | --- |\n| 404 | `NOT_FOUND` | Task not found |\n| 409 | `INVALID_STATE` | Task is not in the queued state |\n| 502 | `UPSTREAM_CANCEL_FAILED` | Model-side cancellation failed |\n\n## Billing \u002F Business API Errors (Management APIs)\n\nAccount, billing, and proprietary asset management APIs use an RFC 7807-style body:\n\n```json\n{\n  \"status\": 400,\n  \"detail\": \"Detailed error message\",\n  \"type\": \"tag:hub,2026-03:ERROR_CODE\"\n}\n```\n\nValidation errors include an `errors` array:\n\n```json\n{\n  \"status\": 422,\n  \"detail\": \"validation failed\",\n  \"type\": \"tag:hub,2026-03:VALIDATION_FAILED\",\n  \"errors\": [{\"location\": \"body.email\", \"message\": \"required\"}]\n}\n```\n\nError codes of the customer query APIs (balance\u002Fusage) are listed in [Query Balance](\u002Fen\u002Fdocs\u002Fusage-and-balance\u002Fbalance) and [Query Usage](\u002Fen\u002Fdocs\u002Fusage-and-balance\u002Fusage).\n\n## Retry Advice\n\n| HTTP status | Advice |\n| --- | --- |\n| 400 | Do not retry; fix the request parameters |\n| 401 | Do not retry; check your credentials |\n| 402 | Do not retry; top up first |\n| 403 | Do not retry; contact an administrator |\n| 429 | Retry after waiting; exponential backoff recommended |\n| 500 | Retrying is fine; wait 1–5 seconds between attempts |\n| 502 | Retrying is fine; the model side is temporarily unavailable |\n\n## Request IDs\n\nEvery response carries an `X-Request-Id` header (format `REQ-xxxx`). Provide this ID when troubleshooting. You may also set your own `X-Request-Id` on requests; the system keeps it.\n",[],{"title":156,"description":871},"pgqDYTjVHk7P0T7RtRxMTs0Ku1OYf1_bCjMcfLjIxdI"]