208

Already Reported

2xx Success

ELI5

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

Server perspective

Use 208 inside WebDAV multi-status results when a bound resource was already reported earlier in the same response.

When to use

  • 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

How to respond

  • 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

Headers to consider

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

Response body

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

Server-side 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

Examples

WebDAV collection with repeated bindings

Request:PROPFIND https://api.example.test/collection/ # Headers Depth: infinity DAV: bind
Response:207 Multi-Status # Headers Content-Type: application/xml; charset=utf-8 # Body <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>

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.

References

Related Status Codes