DevToolsmith

HTTP 203 Non-Authoritative Information

HTTP 203 Non-Authoritative Information means a proxy changed the response it received from the origin server. The request was received, understood and accepted.

Class
2xx Success
Standard
RFC 9110
Cacheable by default
Yes
Safe to retry
Not applicable: this isn’t an error
Go constant
http.StatusNonAuthoritativeInfo

What HTTP 203 means

A transforming proxy can return 203 instead of 200 to signal that the body or headers were modified, for example compressed images or injected content. It is rarely seen in practice; most proxies just pass 200 through.

Retrying

Not applicable: this isn’t an error.

Example response

HTTP/1.1 203 Non-Authoritative Information
Date: Wed, 21 Oct 2026 10:30:00 GMT
Content-Type: application/json

How to return 203

Node.js (Express)
res.status(203).json(result);
Python (FastAPI)
@app.post("/items", status_code=203)
def create_item(item: Item):
    return item
Go (net/http)
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusNonAuthoritativeInfo)
json.NewEncoder(w).Encode(result)

Related status codes

  • 200 OK : The request succeeded and the response contains the result.

Other 2xx status codes

200 OK · 201 Created · 202 Accepted · 204 No Content · 205 Reset Content · 206 Partial Content · 207 Multi-Status

See the full list of HTTP status codes.

Sources

Spotted a mistake? Email hello@devtoolsmith.com and we’ll fix it.

Frequently asked questions

What does HTTP 203 Non-Authoritative Information mean?

HTTP 203 Non-Authoritative Information means a proxy changed the response it received from the origin server. A transforming proxy can return 203 instead of 200 to signal that the body or headers were modified, for example compressed images or injected content. It is rarely seen in practice; most proxies just pass 200 through.