Skip to content

207 Multi-Status

WebDAV response carrying an XML body with a separate status for each resource affected by the request.

Status

HTTP/1.1 207 Multi-Status

Details

  • Category: 2xx
  • Status: Standard. Registered with IANA and defined by a current standards-track RFC.
  • Specification: RFC 4918 §11.1
  • Cacheable: Not cacheable
  • Response body: Allowed
  • Retry: Retry only after changing the request

One WebDAV request can touch many resources, and they will not all end the same way. 207 wraps the individual outcomes in a DAV:multistatus XML document, one DAV:response element per URL, each with its own status line.

The 207 on the status line itself carries no success or failure meaning. A request in which every member failed still returns 207, so a client must parse the body to know what actually happened.

Headers

  • Content-Type: Must be application/xml or text/xml. The body is a DAV:multistatus document.

Common causes

  • A PROPFIND enumerated a collection and reported per-member properties.
  • A COPY, MOVE, or DELETE across a collection succeeded for some members and failed for others.

Usage notes

For clients

  • Parse every DAV:response element. Do not infer success from the 207 alone.
  • Retry only the members that reported a retryable failure, not the whole operation.

For servers

  • Include a status for every member so clients can reconcile state precisely.
  • Use DAV:responsedescription to explain non-obvious failures.

Examples

Enumerating a WebDAV collection

HTTP request

PROPFIND /dav/team/ HTTP/1.1
Host: files.example.com
Depth: 1

HTTP response

HTTP/1.1 207 Multi-Status
Content-Type: application/xml; charset=utf-8

<?xml version="1.0"?>
<D:multistatus xmlns:D="DAV:">
  <D:response>
    <D:href>/dav/team/notes.txt</D:href>
    <D:status>HTTP/1.1 200 OK</D:status>
  </D:response>
  <D:response>
    <D:href>/dav/team/locked.txt</D:href>
    <D:status>HTTP/1.1 423 Locked</D:status>
  </D:response>
</D:multistatus>

Specifications

See also