[{"data":1,"prerenderedAt":88},["ShallowReactive",2],{"doc:\u002Fgetting-started\u002Ferrors":3},{"page":4,"toc":85},{"path":5,"title":6,"description":7,"blocks":8},"\u002Fgetting-started\u002Ferrors","Errors","HTTP status codes, machine-readable error envelopes, and retry strategies.",[9,12,20,25,80,83],{"type":10,"text":11},"p","Every non-`2xx` response returns a JSON object with an `error` key containing a stable `code` string and a human-readable `message`. Branch on `error.code` in your application logic.",{"type":13,"samples":14},"code",[15],{"label":16,"lang":17,"code":18,"html":19},"400 Bad Request","json","{\n  \"error\": {\n    \"code\": \"invalid_ip\",\n    \"message\": \"'999.0.0.1' is not a valid IPv4 or IPv6 address.\"\n  }\n}","\u003Cpre class=\"shiki ipscope\" style=\"background-color:var(--shiki-background);color:var(--shiki-foreground)\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">  \"error\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-foreground)\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">    \"code\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"invalid_ip\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-token-keyword)\">    \"message\"\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-punctuation)\">:\u003C\u002Fspan>\u003Cspan style=\"color:var(--shiki-token-string-expression)\"> \"'999.0.0.1' is not a valid IPv4 or IPv6 address.\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">  }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:var(--shiki-foreground)\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",{"type":21,"level":22,"text":23,"id":24},"heading",2,"Status codes and error codes","status-codes-and-error-codes",{"type":26,"columns":27,"rows":32},"table",[28,29,30,31],"HTTP","Code","Meaning","Retry?",[33,38,41,44,48,52,55,59,63,68,72,76],[34,35,36,37],"`400`","`invalid_ip`","The IP address in the path or batch array is malformed.","No",[34,39,40,37],"`invalid_cidr`","The CIDR prefix in `\u002Fv1\u002Fnetwork\u002F{cidr}` is malformed.",[34,42,43,37],"`invalid_fields`","An unknown `field_families` value was requested.",[34,45,46,47],"`batch_too_large`","The batch array exceeds 100 addresses.","No, split into chunks of 100",[49,50,51,37],"`401`","`missing_api_key`","No API key was supplied.",[49,53,54,37],"`invalid_api_key`","The API key is unknown or revoked.",[56,57,58,37],"`403`","`forbidden_field_family`","A requested field family is not included in the key’s plan.",[60,61,62,37],"`404`","`not_found`","The path does not match any endpoint.",[64,65,66,67],"`429`","`rate_limited`","Per-second burst limit exceeded. Wait `Retry-After` seconds.","Yes, with backoff",[64,69,70,71],"`quota_exceeded`","Monthly quota reached and prepaid wallet auto-top-up is disabled.","After refill or reset",[73,74,75,67],"`500`","`internal_error`","Unexpected server fault.",[77,78,79,67],"`503`","`unavailable`","Node is draining or temporarily overloaded.",{"type":21,"level":22,"text":81,"id":82},"Retry discipline","retry-discipline",{"type":10,"text":84},"Retry only `429` (`rate_limited`), `500`, `502`, `503` and `504`, plus network timeouts. All [official server SDKs](\u002Fsdks) implement exponential backoff with jitter and honour the `Retry-After` header out of the box.",[86,87],{"id":24,"text":23,"level":22},{"id":82,"text":81,"level":22},1793226504196]