# 203 Non-Authoritative Information

> https://http-status.org/docs/203

**Family:** 2xx Success

## Rationale

The request succeeded, but the returned representation was modified by a transforming proxy.

## In Plain Terms

The request worked, but the response may have been adjusted by something in the middle, like a proxy, before it reached you.

## Description

The HTTP 203 Non-Authoritative Information status code indicates that the request succeeded, but the enclosed representation was modified from the origin server's 200 OK response by a transforming proxy.

## Server Perspective

### Usage
- Return 203 when an intermediary rewrites, adapts, or transforms the representation
- Use it to help clients understand that the payload is derived from a 200 response but not identical to it
- Transforming proxies that rewrite or optimize the origin response
- Intermediaries that adapt content and want to be explicit that the payload is not byte-for-byte authoritative
- Systems where the client should know a middle layer changed the original representation

### Implementation
- Preserve normal response metadata where possible and document proxy transformations clearly
- Use 200 instead when the origin server itself is intentionally returning that representation

### Common Headers
- No status-specific header is required; preserve or document metadata affected by the intermediary transformation.

### Body
- Return the transformed representation in the response body

### Pitfalls
- Do not use 203 for ordinary application responses from the origin server
- Do not hide important data loss or semantic changes without making the transformation clear
- Origin servers returning their own authoritative representation
- Unmodified successful responses that should simply be 200 OK
- Application-level data shaping performed by the origin service itself

## Client Perspective

### Pitfalls
- Do not assume a 203 payload is byte-identical to the origin server's response

## Examples

### Proxy-compressed HTML response with transformations

A transforming intermediary changed the origin's response and signals that the payload is not exactly what the origin sent.

**Request:**
```
GET https://api.example.test/news
```

**Response:**
```
203 Non-Authoritative Information
Content-Type: text/html; charset=utf-8

<html><body>Transformed content</body></html>
```

## Related Codes

- [200 OK](/docs/200.md)
- [204 No Content](/docs/204.md)
- [304 Not Modified](/docs/304.md)

