# 208 Already Reported

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

**Family:** 2xx Success

## Rationale

WebDAV optimization: inside a multi-status response, this binding was already reported earlier.

## In Plain Terms

The server is saying, 'I already told you about this item earlier in the same detailed report, so I’m not repeating it.'

## Description

The HTTP 208 Already Reported status code is used inside a DAV multi-status response to avoid repeating information about the same resource when multiple bindings point to it.

## Server Perspective

### Usage
- Return 208 to reduce duplication in binding-aware DAV responses
- Use it only for repeated descendants in a Depth: infinity traversal after the earlier detailed result was already sent in the same multi-status body
- WebDAV collection responses that would otherwise repeat the same resource multiple times
- Binding-aware DAV responses where a resource was already described earlier in the same multi-status body
- Depth: infinity PROPFIND responses where repeated collection bindings would otherwise duplicate descendants

### Implementation
- Make sure the earlier report is complete enough for the client to rely on
- Emit 208 only inside the surrounding DAV multi-status XML rather than as a standalone success response
- Prefer 508 Loop Detected instead when the client did not advertise bind support and a loop would otherwise be exposed

### Common Headers
- No status-specific header is required; the surrounding 207 multi-status response carries the body contract.

### Body
- 208 appears within the XML multi-status structure rather than as a typical standalone JSON API result

### Pitfalls
- Do not use 208 as a generic 'duplicate item' response for ordinary APIs
- Do not emit 208 unless the resource really was already reported in the same response
- Do not send 208 as the top-level HTTP status line for the whole response
- As a normal top-level success response for a mainstream REST endpoint
- Outside a 207 Multi-Status body where there is no prior report to reference
- When the client still needs the full first report for that resource

## Client Perspective

### Pitfalls
- Do not interpret 208 as a standalone success with its own new payload

## Examples

### WebDAV collection with repeated bindings

The top-level response is 207 Multi-Status, but one repeated binding is marked 208 inside the XML body so the server does not duplicate descendants.

**Request:**
```
PROPFIND https://api.example.test/collection/
Depth: infinity
DAV: bind
```

**Response:**
```
207 Multi-Status
Content-Type: application/xml; charset=utf-8

<multistatus xmlns="DAV:"><response><href>/collection/</href><propstat><status>HTTP/1.1 200 OK</status></propstat></response><response><href>/collection/alias/</href><propstat><status>HTTP/1.1 208 Already Reported</status></propstat></response></multistatus>
```

## Related Codes

- [207 Multi-Status](/docs/207.md)
- [508 Loop Detected](/docs/508.md)

